전자전기컴퓨터설계실험Ⅱ분반 : 문용삼 교수님주차 : 14주차과목 : 전자전기컴퓨터설계실험Ⅱ학과 : 전자전기컴퓨터공학부학번 : 2009440132이름 : 전상기-목차-1. Introduction1) Purpose of this Lab2) Essential background for this Lab2. Predata of this Lab1) Lab 1 of Digital Clock3. Summarize4. Reference1. Introduction1) Purpose of this Lab임의의 숫자나 알파벳, 기호 등을 TEXT LCD에 구현하고 더 나아가 Digital Clock을 설계할 수 있다. 그리고 Digital Clock에 표시되는 시간을 임의로 조정할 수 있도록 Code를 설계하여 TEXT LCD에 구현할 수 있다.2) Essential background for this Lab⦁ TEXT LCD 제어 명령TEXT LCD의 각 제어 명령어 상태에서 RW, RS, DB0~7(Upper/Lower bit)의 값에 따라 동작하는 역할이 다르고 제어 명령어 표에 나타나 있는 것처럼 I/D, S, S/C, R/L, IF, N, BF 등 Data bit에 포함된 Control bit으로 어떻게 작동하는지를 표현한다. 원하는 작업을 수행하기 위해 필요한 State를 만들고 그 State에 알맞은 RW, RS, DB0~7의 값을 설정해주는게 중요하다. 이 때, 알아두어야 할 것은 TEXT LCD의 State는 총 8개로 필요에 맞는 State를 만들어주어야 한다.2. Predata of this Labs1) Lab 1 Digital Clock3. Summarize이번 실험은 TEXT LCD에 Digital Clock을 표시하여 00:00:00을 나타내고 원하는 임의의 값으로 시, 분, 초를 조정할 수 있는 시계를 설계하는 것이었다. 설계원리를 설명하자면, 우선 Register의 값으로 시, 분, 초의 십의 자리와 일의 자리에 해당하는 CGRAM 값들을 경우에 따라 모두 선언해주었다. 예를 들면, 시의 십의 자릿수를 올린다고 가정해보자.Input hour_high;Reg correct_hour_high, cgr_hour_high;Parameter correct_mode=2’b00,Clock_mode=2’b01; 라고 Input과 Register, 그리고 state를 선언해주면,Correct_mode의 시의 십의 자릿수를 correct_hour_high라고 하고,Clock_mode의 시의 십의 자릿수를 ‘cgr_hour_high’라고 하면, 만약 ‘correct_mode’일 때, ‘hour_high’를 누르면 시의 십의 자리로 이동하고 이 때, ‘correct_ cgr_hour_high=cgr_hour_high’가 되어 현재 시간의 시의 십의 자리부터 setting을 할 수 있도록 설정하였다. 그리고 이어서 ‘count_up’을 누르면 ‘correct_ cgr_hour_high=correct_ cgr_hour_high+1;’의 동작을 하도록 설계하였고 다시 ‘clock’을 누르면 ‘clock_mode’로 돌아가 다시 ‘cgr_hour_high=correct_cgr_hour_high’가 되도록 설계하여 setting 된 시각부터 다시 시계가 작동하도록 설계하였다. 이것이 기본적인 설계 원리이다. 그리고 이 때 유의하여야 할 것은 시, 분, 초의 각 십의 자리와 일의 자리가 max로 count될 때, 상위 자릿수에 1을 더하고 기존 자릿수의 수는 0이 되어 recycle이 되는 경우를 올바르게 설정해주어야 한다. 그리고 TEXT LCD에 표현하는 CGRAM은 각 mode에 알맞은 register값을 넣어주면 되었다. Code 내 중요한 기능을 하는 부문은 ‘//…’를 이용하여 주석을 달아 놓았다.4. Reference Hyperlink http://club.uos.ac.kr - 제 14주차 강의교안
전자전기컴퓨터설계실험Ⅱ분반 : 문용삼 교수님주차 : 14주차과목 : 전자전기컴퓨터설계실험Ⅱ학과 : 전자전기컴퓨터공학부학번 : 2009440132이름 : 전상기-목차-1. Introduction1) Purpose of this Lab2) Essential background for this Lab2. Result of this Lab1) Measured data and description of Lab 1 (Digital Clock)3. Discussion4. Conclusion5. Reference1. Introduction1) Purpose of this Lab임의의 숫자나 알파벳, 기호 등을 TEXT LCD에 구현하고 더 나아가 Digital Clock을 설계할 수 있다. 그리고 Digital Clock에 표시되는 시간을 임의로 조정할 수 있도록 Code를 설계하여 TEXT LCD에 구현할 수 있다.2) Essential background for this Lab⦁ TEXT LCD 제어 명령TEXT LCD의 각 제어 명령어 상태에서 RW, RS, DB0~7(Upper/Lower bit)의 값에 따라 동작하는 역할이 다르고 제어 명령어 표에 나타나 있는 것처럼 I/D, S, S/C, R/L, IF, N, BF 등 Data bit에 포함된 Control bit으로 어떻게 작동하는지를 표현한다. 원하는 작업을 수행하기 위해 필요한 State를 만들고 그 State에 알맞은 RW, RS, DB0~7의 값을 설정해주는게 중요하다. 이 때, 알아두어야 할 것은 TEXT LCD의 State는 총 8개로 필요에 맞는 State를 만들어주어야 한다.2. Result of this Labs1) Measured data and description of Lab 1 (Digital Clock)00 : 00 : 00부터 시작하여 시계가 작동.Set time을 통해원하는 시간23 : 59 : 53을 입력.23 : 59 : 5623 : 59 : 5923 : 59 : 59에서00 : 00 : 00으로이상없이 넘어가는지확인.이어서 시계가 동작하는지 확인.00 : 00 : 023. Discussion이번 실험은 TEXT LCD에 시계를 구현하는 것 이외에도 원하는 시간을 입력하여 시, 분, 초를 조정할 수 있는 시계를 설계하는 것이었다. 기본 원리는 Pre report에 있는 동작 원리로 돌아가지만 실험을 하면서 또 한가지 중요한 점을 찾을 수 있었다. 그것은 CGRAM에 이은 DDRAM이다. DDRAM은 각 칸의 주소라고 볼 수 있었다. TEXT LCD는 수 개의 칸으로 이루어져 있고 각 칸마다 고유한 주소 즉, Address가 존재한다. 그러므로 시, 분, 초의 십의 자릿수와 일의 자릿수 칸의 고유한 DDRAM을 설정해주는 것이 필수였다. 그 부분은 code 내 Initial begin 부분에서 찾을 수 있었다. 각 표로 정리하자면DIGITALCLOCK00:00:0010*************1*************01*************010*************01*************010*************010*************011**************************1*************10*************10*************011*************10**************************11**************************1111각 칸의 DDRAM Address는 표와 같이 Match 될 수 있다. 이러한 DDRAM을 이용하여 손쉽게 시, 분, 초의 위치를 읽고 찾을 수 있었다.4. Conclusion마지막 실험이었던 TEXT LCD & DIGITAL CLOCK은 그 동안 실험해왔던 모든 이론을 총 집약시켜 만든 대단히 어려웠던 실험이었던 것 같다. 하지만 이것이 끝이 아니라 DIGITAL CLOCK에 이어 부가기능을 설계해야 한다. 하지만 그러한 기능은 parameter를 이용하여 원하는 동작을 하는 state를 선언하고 그에 알맞게 같은 원리를 사용하여 만들 수 있을 것 같다. 내가 해보고자 하는 부가기능은 AM, PM 변환 기능, Stop Watch 기능을 추가할 것이다.5. Reference Hyperlink http://club.uos.ac.kr - 제 14주차 강의교안
전자전기컴퓨터설계실험Ⅱ분반 : 문용삼 교수님주차 : 13주차과목 : 전자전기컴퓨터설계실험Ⅱ학과 : 전자전기컴퓨터공학부학번 : 2009440132이름 : 전상기-목차-1. Introduction1) Purpose of this Lab2) Essential background for this Lab2. Predata of this Lab1) Lab 1 of Digital Clock3. Summarize4. Reference1. Introduction1) Purpose of this Lab임의의 숫자나 알파벳, 기호 등을 TEXT LCD에 구현하고 더 나아가 Digital Clock을 설계할 수 있다. 그리고 Digital Clock에 표시되는 시간을 임의로 조정할 수 있도록 Code를 설계하여 TEXT LCD에 구현할 수 있다.2) Essential background for this Lab⦁ TEXT LCD 제어 명령TEXT LCD의 각 제어 명령어 상태에서 RW, RS, DB0~7(Upper/Lower bit)의 값에 따라 동작하는 역할이 다르고 제어 명령어 표에 나타나 있는 것처럼 I/D, S, S/C, R/L, IF, N, BF 등 Data bit에 포함된 Control bit으로 어떻게 작동하는지를 표현한다. 원하는 작업을 수행하기 위해 필요한 State를 만들고 그 State에 알맞은 RW, RS, DB0~7의 값을 설정해주는게 중요하다. 이 때, 알아두어야 할 것은 TEXT LCD의 State는 총 8개로 필요에 맞는 State를 만들어주어야 한다.2. Predata of this Labs1) Lab 1 of Digital Clockmodule final_project(RESETN,CLK,LCD_E,LCD_RS,LCD_RW,LCD_DATA,hour_up,min_up,sec_up,t);input RESETN, CLK;input [15:0]t;input hour_up, min_up, sec_up;output LCD_E,LCD_RS,LCD_RW;output [7:0] LCD_DATA;wire EN;EN e1 (CLK,(hour_up||min_up||sec_up),EN);reg LCD_RS, LCD_RW;reg [7:0] LCD_DATA;reg [3:0] STATE;parameter DELAY =3'b000,FUNCTION_SET=3'b001,ENTRY_MODE=3'b010,DISP_ONOFF=3'b011,LINE1=3'b100,LINE2=3'b101,DELAY_T=3'b110,COUNT=3'b111;integer CNT;integer CNT_100HZ;integer ha,hb,ma,mb,sa,sb;reg CLK_100HZ;reg [3:0]hour_high;reg [3:0]hour_low;reg [3:0]min_high;reg [3:0]min_low;reg [3:0]sec_high;reg [3:0]sec_low;reg [25:0]counter;always @(posedge CLK)beginif(RESETN==1'b0)beginhour_high
전자전기컴퓨터설계실험Ⅱ분반 : 문용삼 교수님주차 : 13주차과목 : 전자전기컴퓨터설계실험Ⅱ학과 : 전자전기컴퓨터공학부학번 : 2009440132이름 : 전상기-목차-1. Introduction1) Purpose of this Lab2) Essential background for this Lab2. Result of this Lab1) Measured data and description of Lab 1 (Digital Clock)3. Discussion4. Conclusion5. Reference1. Introduction1) Purpose of this Lab임의의 숫자나 알파벳, 기호 등을 TEXT LCD에 구현하고 더 나아가 Digital Clock을 설계할 수 있다. 그리고 Digital Clock에 표시되는 시간을 임의로 조정할 수 있도록 Code를 설계하여 TEXT LCD에 구현할 수 있다.2) Essential background for this Lab⦁ TEXT LCD 제어 명령TEXT LCD의 각 제어 명령어 상태에서 RW, RS, DB0~7(Upper/Lower bit)의 값에 따라 동작하는 역할이 다르고 제어 명령어 표에 나타나 있는 것처럼 I/D, S, S/C, R/L, IF, N, BF 등 Data bit에 포함된 Control bit으로 어떻게 작동하는지를 표현한다. 원하는 작업을 수행하기 위해 필요한 State를 만들고 그 State에 알맞은 RW, RS, DB0~7의 값을 설정해주는게 중요하다. 이 때, 알아두어야 할 것은 TEXT LCD의 State는 총 8개로 필요에 맞는 State를 만들어주어야 한다.2. Result of this Labs1) Measured data and description of Lab 1 (Digital Clock)1. 23시 59분 57초부터 시간이 지나 00시 00분 00초가 되는지 확인한 결과,23 : 59 : 5723 : 59 : 5900 : 00 : 0200 : 00 : 053. Discussion이번 실험은 시계를 Text LCD에 표현하는 것이었다. 이번 실험에서 가장 중요했던 이론은 바로 클럭분주였는데, 이는 임의의 주기와 시간을 갖는 Clock을 분주하여 사용자가 원하는 주기와 시간으로 바꾸어주는 역할은 한다.D F/F을 이용하여 결과값이 다시 입력값으로 입력되어 다음 결과를 도출하는 형식으로 되어 있고 동작원리를 살펴보면 임의의 CLK를 2분주하면 주기가 2배, 4분주하면 4배가 되는 현상을 볼 수 있다. 이를 이용하여 1Hz라는 주기를 생성하여 1초 동안에 TEXT LCD에 변해야하는 모든 것을 지정해줄 수 있었다.4. Conclusion이번 실험은 Digital Clock의 기본으로써 시간을 TEXT LCD에 표시하는 실험이었는데, 1초라는 CLK를 잡는 것이 관건이었다. 1Hz를 사용하지 않고 1kHz를 사용하여 분주를 하여야 했는데, 기본적인 분주개념이 잡혀있지 않으면 시계가 작동하지 않을 것이다.5. Reference Hyperlink http://club.uos.ac.kr - 제 13주차 강의교안
전자전기컴퓨터설계실험Ⅱ분반 : 문용삼 교수님주차 : 12주차과목 : 전자전기컴퓨터설계실험Ⅱ학과 : 전자전기컴퓨터공학부학번 : 2009440132이름 : 전상기-목차-1. Introduction1) Purpose of this Lab2) Essential background for this Lab2. Method1) Procedure of Lab 13. Predata of this Lab1) Lab 1 of Text LCD With Four Direction & Count4. Summarize5. Reference1. Introduction1) Purpose of this Lab임의의 숫자나 알파벳, 기호 등을 TEXT LCD에 구현하고 더 나아가 Cursor/Display의 Shift 및 Blink 동작, Write, Read, Reset 등 다양한 동작들을 TEXT LCD에 구현할 수 있다.2) Essential background for this Lab⦁ TEXT LCD 제어 명령TEXT LCD의 각 제어 명령어 상태에서 RW, RS, DB0~7(Upper/Lower bit)의 값에 따라 동작하는 역할이 다르고 제어 명령어 표에 나타나 있는 것처럼 I/D, S, S/C, R/L, IF, N, BF 등 Data bit에 포함된 Control bit으로 어떻게 작동하는지를 표현한다. 원하는 작업을 수행하기 위해 필요한 State를 만들고 그 State에 알맞은 RW, RS, DB0~7의 값을 설정해주는게 중요하다. 이 때, 알아두어야 할 것은 TEXT LCD의 State는 총 8개로 필요에 맞는 State를 만들어주어야 한다.2. Method1) Procedure of Lab 1① TEXT LCD에 학번과 이름을 나타내는 Logic을 설계하고 Verilog Code를 작성한다.② 필요한 State를 설정해주고 제어 명령표를 이용해 RW, RS, DB0~7의 값을 설정해준다.(Necessary State=Delay, Function_Set, Entry_mode, Disp_OnOff, Line1, Line2, Delay_t, Clear_Disp)③ State 이동 순서를 설정해준다.(Delay→Function_Set→Entry_mode→Disp_OnOff→Line1→Line2→Delay_t→Clear_Disp→Line1)Delay, Function_Set, Entry_mode, Disp_OnOff → Interface 제원 설정 및 Function Setting.Line1, Line2 → 1행과 2행에 표시되는 임의의 숫자, 문자 및 기호 등을 설정.Delay_t → 유지시간.Clear_Disp → 화면 초기화.작동 순서 → Interface 제원 설정 및 Function Setting을 하고 1행과 2행에 원하는 숫자, 문자, 기호를 Write하고 약간의 유지시간 동안 유지한다. 그리고 화면을 초기화 하고 다시 1행과 2행에 기존의 숫자, 문자, 기호를 다시 Write하고 같은 동작을 반복한다.④ Cursor_left, Curosr_Right, Cursor_Up, Cursor_Down, Up, Down의 Input을 설정해주고 각 Input에 맞게 동작하는 Logic을 설계한다.⑤ 각 Element에 알맞은 Pin number를 설정해주고 Configure Device(iMPACT)를 통해 FPGA에TEXT LCD를 Download하여 Programming한다.⑥ 실제로 장비를 구동시켜본 후, Prelab 결과인 Functional Simulation & Timing Simulation과 일치하는지 확인한다.3. Predata of this Labs1) Lab 1 of Text LCD With Four Direction & Count•••4. Summarize이번 실험은 기존에 해왔던 9번의 실험의 모든 개념을 집약시켜 놓은 동작회로이다. Text LCD에 원하는 문구를 표현하고 Cursor의 이동을 제어하여 4방위로 Shift가 가능하게 하였으며 Up/Down Count를 이용하여 계산도 가능하게 한 가장 어려운 회로이다. 실험 Code를 Simulation 돌렸을 때는 정확하게 작동이 안되었다. 이번 실험은 Combo 2 SE 기계로 실험을 해봐가며 실험을 해야할 것 같다.5. Reference Hyperlink http://club.uos.ac.kr - 제 4주차 강의교안