SlideShare a Scribd company logo
- 1 -
제출일 : 2011.10.28
[Team Project]
Alarmed Digital Clock 구현
5조
20800204
노 동 기
20800577
장 호 상
- 2 -
- 목 차 -
1. 설계 주제 ------------------------------------- pg.3
2. 설계 사양 ------------------------------------- pg.3
3. 상세기능 설명 ------------------------------------- pg.4
4. 설계 과정 Top Schematic ----------------------- pg.5
① Core_alarmclk
a. time_count ------------------------------------- pg.6
b. alarm_cnt ------------------------------------- pg.8
c. controller ------------------------------------- pg.9
d. comparator ------------------------------------- pg.11
e. led_output ------------------------------------- pg.12
f. Etc ------------------------------------- pg.13
존슨카운터 , dss4_drv, mux_8bit_2, mux_4bit_2
② debounce_pulse ------------------------------------ pg.14
③ CLK Controller ------------------------------------ pg.14
④ clk_div100 ------------------------------------- pg.15
⑤ 전체적인 흐름 ------------------------------------- pg.16
5. 설계 검증 ------------------------------------- pg.17
6. 오류 및 수정 ------------------------------------- pg.17
7. 설계를 마치고.. ------------------------------------- pg.18
8. 역할 분담 ------------------------------------- pg.19
- 3 -
1. 설계 주제
Xilinx ISE Design Suite 13.2 를 이용하여 Alarmed digital clock을 구현해 보고 NEXYS2
board 에 구현된 프로그램을 올려본다.
2. 설계 사양
① 시, 분, 초까지 표시 가능
- 24시간 형태로 표시 ex)14:24:12
② 시간을 조정할 수 있게 설계
③ 알람 기능
- 알람을 시, 분 단위까지 설정할 수 있도록 설계
- 알람 설정한 시간이 되면 신호를 줄 수 있게 설계
④ 입력단자
모드설정(MODE) : BTN2
시,분 설정(SEL): BTN1
숫자 증가(INC): BTN0
Reset(RST): BTN3
System Clock 50MHz(CLK)
CLK주기 조절키 : SW1, SW0
⑤ 출력단자
분,초: 4-digit 7-segment (DISP1)
시: LED (LD5~LD4, LD3~LD0)
Alarm 표시: LED 사용 (LD7~LD0)
현재 동작 모드 표시: LED 2개
(LD7~LD6, 00:시계모드, 01: 시간설정모드, 10: 알람설정모드, 11: 알람모드)
- 4 -
3. 상세기능 설명
① Reset 기능
RST 키를 누르면 무조건 시계모드로 동작하고, 현재 시간과 alarm 시간은 00:00:00 가 됨.
② 모드 설정
MODE키를 누를 때마다 “시계모드”→“시간 설정모드”→“알람시간 설정모드”→
“시계모드”로 설정이 바뀜
③ 각 모드 설명
a. "시계모드"
정상적으로 시계가 동작하는 모드
b. "시간 설정모드”와 “알람시간 설정모드”
SEL을 눌러 설정할 단위 선택(시, 분, 초(시간 설정 모드만 지원))
처음에는 시, SEL를 누를 때마다 시 → 분 →초 로 바뀜.
INC를 누르면 해당 시간/분 증가
c."알람모드" : 따로 State가 있지 않고 알람을 설정하면 알람모드가 됨.
알람 시간은 시/분까지만 설정
현재 시간과 알람 설정 시간이 일치하면 8개의 LED를 사용하여 알람 표시
(LED에는 Johnson counter를 이용하여 출력)
④ CLK 조절키(SW1, SW0)
테스트를 위해 CLK을 빠르게 조정할 수 있는 키를 만들어 두었다.
- 5 -
4. 설계 과정
Top Schematic
① Core_alarmclk
- 6 -
a. time_count : 시간을 count 하는 Block
“hour” symbol은 시 단위를 count 하는 block 이며, mod24(0~23까지 count 하는 counter)을
이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 hren(hour enable)이 1일 때, count 되
도록 하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 hr_sel이 모두 1일 때 count 되게 설계
하였다.
"mod_60" symbol은 분 단위를 count 하는 block이며 CD4RE(10진count)와 mod6(0~5까지 count
하는 counter)를 이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 min_en이 1일 때,
count 되도록 하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 min_sel이 모두 1일 때 count
되게 설계하였다.
core_alarmclk 안의 time_count 내부 구조
hour 내부 구조
mod_60 내부구조
- 7 -
"mod_60s" symbol은 초를 count 하는 block이며 CD4RE(10진count)와 mod6(0~5까지 count 하는
counter)를 이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 1hz clk에 맞게 count 되게
하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 sec_sel이 모두 1일 때 count 되게 설계하였
다.
mod_60s 내부구조
- 8 -
b. alarm_cnt : 알람시간을 설정하고 설정한 시간을 저장해 놓는 block
“alarm_hr” symbol은 알람의 시 단위를 count 하는 block 이며, mod24(0~23까지 count 하는
counter)을 이용해 만들었다. CE 단자에 3-input AND gate를 이용, alarm_set, hr_sel, inc 가 모두 1
일 때 count 되게 설계하였다.
“alarm_min” symbol은 알람의 분 단위를 count 하는 block 이며,CD4RE(10진count)와
mod6(0~5까지 count 하는 counter)를 이용해 만들었다. CE 단자에 3-input AND gate를 이용,
alarm_set, min_sel, inc 가 모두 1일 때 count 되게 설계하였다.
core_alarmclk 안의 alarm_cnt 내부 구조
alarm_hr 내부구조
alarm_min 내부구조
- 9 -
c. controller : 동작 모드(시계, 시간설정, 알람 설정)를 결정하고, 시간설정과 알람 설정 모드에서는
시, 분, 초 중 현재 변경하고자 하는 부분을 인식한다.
FSM을 작성하여, Verilog로 구현하였다.
모드를 설정하는 "mode_ctrl"과 시, 분, 초 중 변경하고자 하는 부분을 알려주는
“sel_ctrl”로 나눠서 작성했다.
위의 State diagram을 verilog로 작성한 결과이다. S00(clk_mod)로 시작하여, mode_key가 1이
되면, S10(time_set)으로 상태가 변한다. S10이 된 상태에서 다시 mode_key가 1이 되면,
S20(alarm_set)으로 변하다. S20이 된 상태에서 mode_key가 1이 되면, 다시 시작점(S00)로 돌아가며,
mode_key가 0일 때는 상태가 변하지 않는다.
core_alarmclk 안의 controller 내부 구조
mode_ctrl
- 10 -
위의 State diagram을 verilog로 작성한 결과이다. S0에서 시작하고, 어떤 sate든지 clk_mod가
1이면 S0로 돌아가 대기한다. SO에서 clk_mod가 0이면 S1(hr_sel)로 이동한다. S1에서는 sel가 1이면
S2(min_sel)로, 0이면 제자리에 머문다. S2에서는 sel가 1이고 alarm_set이 1이면 S1(hr_sel)로 이동하
고, sel가 1이고 time_set이 1이면 S3(sec_sel)로 이동하고 나머지 경우엔 제자리에 머문다.
S3에서는 sel가 1이거나 mode_key가 1이면 S1(hr_sel)으로 이동하고 나머지 경우엔 제자리에 머문다.
sel_ctrl
S1
S2S3
S0
- 11 -
d. comparator : 알람을 설정했을 때, 알람 설정된 시간과 시계의 시간을 비교해서 같으면 "EQ"신호를
보내 주는 Block 이다.
시의 10자리 비교
시의 1자리 비교
분의 10자리 비교
분의 1자리 비교
다 같으면 EQ 신호 출력
- 12 -
e. led_output
LED(7:0)는 존슨카운터(CJ8RE) 의 출력을
받아들이는 입력이다.
아래 쪽 두 mux는 eq가 0이면 time_set과
alarm_set을 출력하여 mode를 led로 나타내
준다. eq가 1일 때는 존슨카운터로부터 들
어오는 입력을 출력하게 설계했다.
위의 6개의 mux는 eq가 0일 때는 시간
이 출력되고, eq가 1일 때는 존슨카운터로
부터 들어오는 입력을 출력하게 설계했다.
시의 10 자리 출력 선택
시의 1 자리 출력 선택
mux_8bit 내부구조
- 13 -
f. Etc
알람 신호(알람 설정시간과 시간이 일치한다는 신호) 출력을 위한 counter
0000000->1000000->1100000->1110000->1111000->1111100->1111110->1111111->0111111->0011111
->0001111->0000111->0000011->0000001->0000000 반복
4bit 신호를 7segment display로 출력해주는 symbol이다. 위의 block은 시간(time_count)의 분
과 초를 출력하고, 아래의 block은 알람시간(alarm_cnt)의 분을 출력한다.
2:1 mux 8개를 연결해서 만든 8bit mux
alarm_set이 1이면 시간의 segment 신호를
0이면, 알람 시간의 segment 신호를 출력해준다.
2:1 mux 4개를 연결해서 만든 4bit mux
alarm_set이 1이면 시간의 an 신호를 0이면 알람
시간의 an 신호를 출력해준다.
존슨카운터
DSS4_DRV
mux
- 14 -
② debounce_pulse
Push button의 입력을 noise를 제거하고 single_pulse로 출력하기 위해 사용하는 block
아래의 회로는 CLK 1주기 동안 KEY_OUT을 HIGH로 출력하는 회로이다.
③ CLK Controller
검증을 위해서 실제 시간보다 CLK 주기를 빠르게 주어야 할 때가 있다.
1Hz(CE1), 10Hz(CE10), 100Hz(CE100), 500Hz(CE500) 중 원하는 CLK을 골라서 출력 할 수 있게
해주는 Block을 4:1 MUX로 구현했다.
- 15 -
④ clk_div100
시스템 CLK(50MHz)을 나누어서 낮은 주기의 CLK을 만드는 Block
CD4RE(10진카운터)를 cascading해서 디자인 하였다. 50MHz 시스템 CLK을 넣어 나온 TC(CEO)는
한번 10진 카운터를 지날 때 마다, 1/10씩 주기가 줄어든다.
- 16 -
⑤ 전체적인 흐름
외부에서 주는 신호는 mode 변경하는 신호, 숫자를 증가시키는 inc 신호, 자리를 변경해주는
sel 신호가 있다. mode 키를 누를 때마다 time_set, alarm_set 신호를 controller에서 발생 시켜주고
이에 따라 작동모드가 변경된다. time_set이나 alarm_set이 HIGH 일 때, sel 신호로 자리를 변경할 수
있으며(시, 분 , 초), inc로 해당 자리를 증가 시킬 수 있다.
발생할 수 있는 출력은 time(시간), alarm(알람 시간) eq(알람 시간 = 시간 일 때 발생) 이며,
output controller에 의해 선택되어, 7segment나 led를 통해 출력 된다.
simple flowchart
- 17 -
MODE SEL INC 출 력
S0(time) X X 시간이 출력된다.
S1(time_set)
시 자리 HIGH “시”자리가 올라간다.
분 자리 HIGH “분”자리가 올라간다.
초 자리 HIGH “초”자리가 올라간다.
S2(alarm_set)
시 자리 HIGH “시”자리가 올라간다.
분 자리 HIGH “분”자리가 올라간다.
time_count = alarm_cnt led 가 모두 깜빡인다.
5. 설계 검증
① 시계모드 검증
00:00:00부터 23:59:59 까지 정상적으로 카운트 되었으며 23:59:59 다음에 00:00:00으로 돌아
가는 것을 확인 하였다.
② 시간설정 모드 검증
MODE를 한번 눌렀을 때, 시간 설정모드로 넘어 갔으며, 이때 SEL키와 INC키를 통해 자리 변환
과 해당 자리를 증가할 수 있음을 검증하였다.
③ 알람설정 모드 검증
시간설정 모드에서 MODE키를 눌렀을 때 알람 설정모드로 넘어갔다. 이때 시간과 분 단위를 SEL
키와 INC 키를 이용해 조정할 수 있었으며, 00:01으로 설정하고 알람이 LED로 출력 되는 것을 검증하였
다.
6. 오류 및 수정
하위 module들을 만들고 나서 그 다음에 top module을 만드는 계층적 설계를 이용하였다. 그런
데 이때 top module을 다 구성하고 나서 만약 하위 module로 가서 어떤 내용을 수정하면 자동으로 저장
되지 않고 일일이 symbol update를 해줘야 해서 상당히 손이 많이 갔었다. 그리고 제대로 업데이트가
되지 않을 때 오류도 많이 났었다.
symbol wizard를 사용하여서 symbol을 만들 때, 크기를 지정해줄 때 default값은 256으로 되어
있는데 여기에 32의 배수를 더한 숫자(ex. 288, 320)로 하지 않으면 wire가 symbol에 제대로 연결이 되
지 않는 현상이 일어났었다. symbol wizard로 생성한 symbol에 입출력 값이 잘 들어가지 않는 이유를
찾을 수가 없어서 TA에게 문의하였고 문제를 해결할 수 있었다.
처음에는 DSS4_DRV symbol을 1개만 사용하고, time_count와 alarm_cnt에서 나오는 분과 초의
입력 값을 그 전에 MUX를 이용하여서 넣었었는데, 논리는 맞는 듯 보였으나 이유를 알 수 없게 계속 제
대로 동작하지 않았다. 그래서 다른 방법으로 시도하였는데, DSS4_DRV symbol 2개를 사용하여서, 알람
모드일 때 분을 표시하는 것과 시간 모드일 때의 분과 초를 입력한 후 그 다음에 MUX를 사용하였다. 즉
MUX사용 순서를 바꾸기만 하였는데 alarm_set 신호에 따라 7-segment에 원하는 값이 출력되었다.
- 18 -
7. 설계를 마치고..
노 동 기
이번 Alarm clock 설계는 7주 동안 Xilinx에서 schematic tool에 대해 배운 내용의 총 집합이
었다. 처음 Xilinx tool에서 wire를 연결하는 내용부터 배우기 시작해서 이번 alarm clock 설계까지 상
당히 흥미롭고 재밌게 설계과제들을 수행해왔었던 것 같다. 그렇지만 처음에 설계사양을 봤을 때는 우
리가 배운걸로 할 수 있을까 라는 기분이 들어서 약간은 막막했었다. 하지만 이 설계사양이 우리가 원
하는 대로 구동되려면 무슨 모듈이 필요하고 어떤 식으로 논리를 수행하도록 해야 할까 차근차근 생각
해보면서 하나씩 구상해갔다. 간단히 예를 들면 ‘시간을 count 하는 모듈은 우리가 배운 counter를 이
용하여서 하면 되겠다.' 이런 식으로 필요한 module들을 생각하여서 Datapath를 구상해 가는 것은 상당
히 흥미로운 작업이었다. 이번 설계를 하면서 이러한 과정들, 설계사양이 있을 때 어떤 방법으로 어떻
게 하나하나 진행해나가야 하는지에 대하여 많이 연습하고 배운 것 같다. 그다음 controller를 구상하
였는데 사실 좀 어려움을 겪어서 교수님께서 제공해주신 FSM그림을 보고 참고하여서 controller를 만들
었다. 그리고 schematic뿐만 아니라 verilog도 제대로 배워서 설계에 적용해봐야겠다고 생각했다. 설계
프로젝트를 수행하는 내내 많은 시행착오와 수정작업을 거쳤고, 밤늦게까지 설계하는 날들이 많았다.
하지만 그만큼 디버깅하는 방법과 문제 해결방법에 대해 상당히 많이 배울 수 있었다. 내가 구상한대로
설계되었을 때의 그 기쁨들로도 이번 설계 프로젝트는 마냥 힘들었다고 말할 수 없을 거 같고, 상당히
보람차고 즐거웠다.
이번 설계프로젝트는 팀 프로젝트였는데, 서로의 의견을 나누고 어떻게 할지 구상한 후 할 일
을 나누는, 이런 것들 모두에 상당히 어려웠었다. 그리고 분할한 설계를 다시 합치는 데에도 상당히 많
은 시간이 걸렸다. 하지만 그만큼 같이 과제를 수행한다는 것 자체에 대해 여러모로 배울 수 있었고 생
각해볼 수 있는 기회였다.
장 호 상
처음에 설계과제를 받았을 때는 지금까지 배운 내용으로 쉽게 설계할 수 있을 거라고 생각했
다. Top Schematic을 설계하고 필요한 Block 들을 나눠서 설계해서 합칠 때 까지는 순조롭게 진행되었
다. 그러나 막상 각자 설계한 것을 하나로 합쳐서 실행했을 때 오류가 발생했다.
중요한 것은 어디서부터 어떻게 잘못 되었는지 찾아내기가 굉장히 어려웠다. 어떤 설계이든 이번 과제
와 같은 스케일은 한 번에 성공하길 바랄 수는 없는 것 같다.
그런대 설계하면서 배우는 것 보다, 오류를 발견하고 수정하면서 배우는 것이 확실히 내 것이 되는 것
같다. 인내심의 한계를 느껴가면서 최종적으로 설계를 마무리 했을 때의 희열은 어느 것과 바꿀 수 없
었다. 7주 동안 기본적인 툴의 사용법은 꽤나 익숙해 졌고, 어느 정도 수준의 설계는 할 수 있을 것 같
다. 7주 동안 상당히 일정이 빠듯하게 진행되었고, 수업시간에도 정해진 분량을 살짝 무리해서 빼려는
교수님의 열정(?) 때문에 고난의 시간이었다. 지금 와서 생각해보면 이런 시스템이 오히려 긴장감 있
고, 더 집중해서 교수님 말씀을 듣게 해주며, 같은 것을 배워도 빠르게 습득할 수 있게 해준 것 같다.
학기 시작할 때는 과연 잘 해 낼 수 있을지 의심이 들었지만, 7주라는 짧은 시간동안 많은 것
을 배웠고, 직접 손으로 해보고 눈으로 확인했기 때문에 오랫동안 기억에 남을 것 같다.
- 19 -
8.역할분담
노 동 기 : alarm_count, controller, led_output
장 호 상 : time_count, comparator, mux(4bit,8bit)
기타 나머지 block 들은 같이 설계하였습니다.

More Related Content

Viewers also liked

Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA Clubs
Peter Larkin
 
Metrifit
MetrifitMetrifit
Metrifit
Peter Larkin
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overview
Peter Larkin
 
Metrifit introduction presentation
Metrifit introduction presentationMetrifit introduction presentation
Metrifit introduction presentation
Peter Larkin
 
19.컴퓨터 네트워크 program homework
19.컴퓨터 네트워크 program homework19.컴퓨터 네트워크 program homework
19.컴퓨터 네트워크 program homework호상 장
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서호상 장
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality Overview
Peter Larkin
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team Sports
Peter Larkin
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조호상 장
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final호상 장
 

Viewers also liked (10)

Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA Clubs
 
Metrifit
MetrifitMetrifit
Metrifit
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overview
 
Metrifit introduction presentation
Metrifit introduction presentationMetrifit introduction presentation
Metrifit introduction presentation
 
19.컴퓨터 네트워크 program homework
19.컴퓨터 네트워크 program homework19.컴퓨터 네트워크 program homework
19.컴퓨터 네트워크 program homework
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality Overview
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team Sports
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final
 

Similar to 11.dsd alarmed clock

시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
내훈 정
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
영광 송
 
TestSDIC2016-2(answer)
TestSDIC2016-2(answer)TestSDIC2016-2(answer)
TestSDIC2016-2(answer)
Yong Heui Cho
 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command pattern
dragor0123
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
영광 송
 
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
ultrasuperrok
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
내훈 정
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
ultrasuperrok
 
TestBCD2016-1(Answer)
TestBCD2016-1(Answer)TestBCD2016-1(Answer)
TestBCD2016-1(Answer)
Yong Heui Cho
 
NO PARALLEL DML
NO PARALLEL DMLNO PARALLEL DML
NO PARALLEL DML
Kyung Sang Jang
 
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
ssuser011a5c
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Kiyoung Moon
 

Similar to 11.dsd alarmed clock (12)

시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
 
TestSDIC2016-2(answer)
TestSDIC2016-2(answer)TestSDIC2016-2(answer)
TestSDIC2016-2(answer)
 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command pattern
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
 
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
코딩테스트 합격자 되기 C++ 03장 시간 복잡도에 대한 강의를 진행했습니다.
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
 
TestBCD2016-1(Answer)
TestBCD2016-1(Answer)TestBCD2016-1(Answer)
TestBCD2016-1(Answer)
 
NO PARALLEL DML
NO PARALLEL DMLNO PARALLEL DML
NO PARALLEL DML
 
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
모션캡쳐를 이용한 잠금해제 기능 만들기추가.pptx
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
 

More from 호상 장

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529호상 장
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522호상 장
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515호상 장
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document호상 장
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual호상 장
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term호상 장
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame호상 장
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder호상 장
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티호상 장
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501호상 장
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417호상 장
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사호상 장
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327호상 장
 

More from 호상 장 (13)

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327
 

11.dsd alarmed clock

  • 1. - 1 - 제출일 : 2011.10.28 [Team Project] Alarmed Digital Clock 구현 5조 20800204 노 동 기 20800577 장 호 상
  • 2. - 2 - - 목 차 - 1. 설계 주제 ------------------------------------- pg.3 2. 설계 사양 ------------------------------------- pg.3 3. 상세기능 설명 ------------------------------------- pg.4 4. 설계 과정 Top Schematic ----------------------- pg.5 ① Core_alarmclk a. time_count ------------------------------------- pg.6 b. alarm_cnt ------------------------------------- pg.8 c. controller ------------------------------------- pg.9 d. comparator ------------------------------------- pg.11 e. led_output ------------------------------------- pg.12 f. Etc ------------------------------------- pg.13 존슨카운터 , dss4_drv, mux_8bit_2, mux_4bit_2 ② debounce_pulse ------------------------------------ pg.14 ③ CLK Controller ------------------------------------ pg.14 ④ clk_div100 ------------------------------------- pg.15 ⑤ 전체적인 흐름 ------------------------------------- pg.16 5. 설계 검증 ------------------------------------- pg.17 6. 오류 및 수정 ------------------------------------- pg.17 7. 설계를 마치고.. ------------------------------------- pg.18 8. 역할 분담 ------------------------------------- pg.19
  • 3. - 3 - 1. 설계 주제 Xilinx ISE Design Suite 13.2 를 이용하여 Alarmed digital clock을 구현해 보고 NEXYS2 board 에 구현된 프로그램을 올려본다. 2. 설계 사양 ① 시, 분, 초까지 표시 가능 - 24시간 형태로 표시 ex)14:24:12 ② 시간을 조정할 수 있게 설계 ③ 알람 기능 - 알람을 시, 분 단위까지 설정할 수 있도록 설계 - 알람 설정한 시간이 되면 신호를 줄 수 있게 설계 ④ 입력단자 모드설정(MODE) : BTN2 시,분 설정(SEL): BTN1 숫자 증가(INC): BTN0 Reset(RST): BTN3 System Clock 50MHz(CLK) CLK주기 조절키 : SW1, SW0 ⑤ 출력단자 분,초: 4-digit 7-segment (DISP1) 시: LED (LD5~LD4, LD3~LD0) Alarm 표시: LED 사용 (LD7~LD0) 현재 동작 모드 표시: LED 2개 (LD7~LD6, 00:시계모드, 01: 시간설정모드, 10: 알람설정모드, 11: 알람모드)
  • 4. - 4 - 3. 상세기능 설명 ① Reset 기능 RST 키를 누르면 무조건 시계모드로 동작하고, 현재 시간과 alarm 시간은 00:00:00 가 됨. ② 모드 설정 MODE키를 누를 때마다 “시계모드”→“시간 설정모드”→“알람시간 설정모드”→ “시계모드”로 설정이 바뀜 ③ 각 모드 설명 a. "시계모드" 정상적으로 시계가 동작하는 모드 b. "시간 설정모드”와 “알람시간 설정모드” SEL을 눌러 설정할 단위 선택(시, 분, 초(시간 설정 모드만 지원)) 처음에는 시, SEL를 누를 때마다 시 → 분 →초 로 바뀜. INC를 누르면 해당 시간/분 증가 c."알람모드" : 따로 State가 있지 않고 알람을 설정하면 알람모드가 됨. 알람 시간은 시/분까지만 설정 현재 시간과 알람 설정 시간이 일치하면 8개의 LED를 사용하여 알람 표시 (LED에는 Johnson counter를 이용하여 출력) ④ CLK 조절키(SW1, SW0) 테스트를 위해 CLK을 빠르게 조정할 수 있는 키를 만들어 두었다.
  • 5. - 5 - 4. 설계 과정 Top Schematic ① Core_alarmclk
  • 6. - 6 - a. time_count : 시간을 count 하는 Block “hour” symbol은 시 단위를 count 하는 block 이며, mod24(0~23까지 count 하는 counter)을 이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 hren(hour enable)이 1일 때, count 되 도록 하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 hr_sel이 모두 1일 때 count 되게 설계 하였다. "mod_60" symbol은 분 단위를 count 하는 block이며 CD4RE(10진count)와 mod6(0~5까지 count 하는 counter)를 이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 min_en이 1일 때, count 되도록 하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 min_sel이 모두 1일 때 count 되게 설계하였다. core_alarmclk 안의 time_count 내부 구조 hour 내부 구조 mod_60 내부구조
  • 7. - 7 - "mod_60s" symbol은 초를 count 하는 block이며 CD4RE(10진count)와 mod6(0~5까지 count 하는 counter)를 이용해 만들었다. CE 단자에 MUX를 이용해 time_set이 0일 때는 1hz clk에 맞게 count 되게 하였다. time_set이 1일 때(시간 조정 모드일 때)는 inc와 sec_sel이 모두 1일 때 count 되게 설계하였 다. mod_60s 내부구조
  • 8. - 8 - b. alarm_cnt : 알람시간을 설정하고 설정한 시간을 저장해 놓는 block “alarm_hr” symbol은 알람의 시 단위를 count 하는 block 이며, mod24(0~23까지 count 하는 counter)을 이용해 만들었다. CE 단자에 3-input AND gate를 이용, alarm_set, hr_sel, inc 가 모두 1 일 때 count 되게 설계하였다. “alarm_min” symbol은 알람의 분 단위를 count 하는 block 이며,CD4RE(10진count)와 mod6(0~5까지 count 하는 counter)를 이용해 만들었다. CE 단자에 3-input AND gate를 이용, alarm_set, min_sel, inc 가 모두 1일 때 count 되게 설계하였다. core_alarmclk 안의 alarm_cnt 내부 구조 alarm_hr 내부구조 alarm_min 내부구조
  • 9. - 9 - c. controller : 동작 모드(시계, 시간설정, 알람 설정)를 결정하고, 시간설정과 알람 설정 모드에서는 시, 분, 초 중 현재 변경하고자 하는 부분을 인식한다. FSM을 작성하여, Verilog로 구현하였다. 모드를 설정하는 "mode_ctrl"과 시, 분, 초 중 변경하고자 하는 부분을 알려주는 “sel_ctrl”로 나눠서 작성했다. 위의 State diagram을 verilog로 작성한 결과이다. S00(clk_mod)로 시작하여, mode_key가 1이 되면, S10(time_set)으로 상태가 변한다. S10이 된 상태에서 다시 mode_key가 1이 되면, S20(alarm_set)으로 변하다. S20이 된 상태에서 mode_key가 1이 되면, 다시 시작점(S00)로 돌아가며, mode_key가 0일 때는 상태가 변하지 않는다. core_alarmclk 안의 controller 내부 구조 mode_ctrl
  • 10. - 10 - 위의 State diagram을 verilog로 작성한 결과이다. S0에서 시작하고, 어떤 sate든지 clk_mod가 1이면 S0로 돌아가 대기한다. SO에서 clk_mod가 0이면 S1(hr_sel)로 이동한다. S1에서는 sel가 1이면 S2(min_sel)로, 0이면 제자리에 머문다. S2에서는 sel가 1이고 alarm_set이 1이면 S1(hr_sel)로 이동하 고, sel가 1이고 time_set이 1이면 S3(sec_sel)로 이동하고 나머지 경우엔 제자리에 머문다. S3에서는 sel가 1이거나 mode_key가 1이면 S1(hr_sel)으로 이동하고 나머지 경우엔 제자리에 머문다. sel_ctrl S1 S2S3 S0
  • 11. - 11 - d. comparator : 알람을 설정했을 때, 알람 설정된 시간과 시계의 시간을 비교해서 같으면 "EQ"신호를 보내 주는 Block 이다. 시의 10자리 비교 시의 1자리 비교 분의 10자리 비교 분의 1자리 비교 다 같으면 EQ 신호 출력
  • 12. - 12 - e. led_output LED(7:0)는 존슨카운터(CJ8RE) 의 출력을 받아들이는 입력이다. 아래 쪽 두 mux는 eq가 0이면 time_set과 alarm_set을 출력하여 mode를 led로 나타내 준다. eq가 1일 때는 존슨카운터로부터 들 어오는 입력을 출력하게 설계했다. 위의 6개의 mux는 eq가 0일 때는 시간 이 출력되고, eq가 1일 때는 존슨카운터로 부터 들어오는 입력을 출력하게 설계했다. 시의 10 자리 출력 선택 시의 1 자리 출력 선택 mux_8bit 내부구조
  • 13. - 13 - f. Etc 알람 신호(알람 설정시간과 시간이 일치한다는 신호) 출력을 위한 counter 0000000->1000000->1100000->1110000->1111000->1111100->1111110->1111111->0111111->0011111 ->0001111->0000111->0000011->0000001->0000000 반복 4bit 신호를 7segment display로 출력해주는 symbol이다. 위의 block은 시간(time_count)의 분 과 초를 출력하고, 아래의 block은 알람시간(alarm_cnt)의 분을 출력한다. 2:1 mux 8개를 연결해서 만든 8bit mux alarm_set이 1이면 시간의 segment 신호를 0이면, 알람 시간의 segment 신호를 출력해준다. 2:1 mux 4개를 연결해서 만든 4bit mux alarm_set이 1이면 시간의 an 신호를 0이면 알람 시간의 an 신호를 출력해준다. 존슨카운터 DSS4_DRV mux
  • 14. - 14 - ② debounce_pulse Push button의 입력을 noise를 제거하고 single_pulse로 출력하기 위해 사용하는 block 아래의 회로는 CLK 1주기 동안 KEY_OUT을 HIGH로 출력하는 회로이다. ③ CLK Controller 검증을 위해서 실제 시간보다 CLK 주기를 빠르게 주어야 할 때가 있다. 1Hz(CE1), 10Hz(CE10), 100Hz(CE100), 500Hz(CE500) 중 원하는 CLK을 골라서 출력 할 수 있게 해주는 Block을 4:1 MUX로 구현했다.
  • 15. - 15 - ④ clk_div100 시스템 CLK(50MHz)을 나누어서 낮은 주기의 CLK을 만드는 Block CD4RE(10진카운터)를 cascading해서 디자인 하였다. 50MHz 시스템 CLK을 넣어 나온 TC(CEO)는 한번 10진 카운터를 지날 때 마다, 1/10씩 주기가 줄어든다.
  • 16. - 16 - ⑤ 전체적인 흐름 외부에서 주는 신호는 mode 변경하는 신호, 숫자를 증가시키는 inc 신호, 자리를 변경해주는 sel 신호가 있다. mode 키를 누를 때마다 time_set, alarm_set 신호를 controller에서 발생 시켜주고 이에 따라 작동모드가 변경된다. time_set이나 alarm_set이 HIGH 일 때, sel 신호로 자리를 변경할 수 있으며(시, 분 , 초), inc로 해당 자리를 증가 시킬 수 있다. 발생할 수 있는 출력은 time(시간), alarm(알람 시간) eq(알람 시간 = 시간 일 때 발생) 이며, output controller에 의해 선택되어, 7segment나 led를 통해 출력 된다. simple flowchart
  • 17. - 17 - MODE SEL INC 출 력 S0(time) X X 시간이 출력된다. S1(time_set) 시 자리 HIGH “시”자리가 올라간다. 분 자리 HIGH “분”자리가 올라간다. 초 자리 HIGH “초”자리가 올라간다. S2(alarm_set) 시 자리 HIGH “시”자리가 올라간다. 분 자리 HIGH “분”자리가 올라간다. time_count = alarm_cnt led 가 모두 깜빡인다. 5. 설계 검증 ① 시계모드 검증 00:00:00부터 23:59:59 까지 정상적으로 카운트 되었으며 23:59:59 다음에 00:00:00으로 돌아 가는 것을 확인 하였다. ② 시간설정 모드 검증 MODE를 한번 눌렀을 때, 시간 설정모드로 넘어 갔으며, 이때 SEL키와 INC키를 통해 자리 변환 과 해당 자리를 증가할 수 있음을 검증하였다. ③ 알람설정 모드 검증 시간설정 모드에서 MODE키를 눌렀을 때 알람 설정모드로 넘어갔다. 이때 시간과 분 단위를 SEL 키와 INC 키를 이용해 조정할 수 있었으며, 00:01으로 설정하고 알람이 LED로 출력 되는 것을 검증하였 다. 6. 오류 및 수정 하위 module들을 만들고 나서 그 다음에 top module을 만드는 계층적 설계를 이용하였다. 그런 데 이때 top module을 다 구성하고 나서 만약 하위 module로 가서 어떤 내용을 수정하면 자동으로 저장 되지 않고 일일이 symbol update를 해줘야 해서 상당히 손이 많이 갔었다. 그리고 제대로 업데이트가 되지 않을 때 오류도 많이 났었다. symbol wizard를 사용하여서 symbol을 만들 때, 크기를 지정해줄 때 default값은 256으로 되어 있는데 여기에 32의 배수를 더한 숫자(ex. 288, 320)로 하지 않으면 wire가 symbol에 제대로 연결이 되 지 않는 현상이 일어났었다. symbol wizard로 생성한 symbol에 입출력 값이 잘 들어가지 않는 이유를 찾을 수가 없어서 TA에게 문의하였고 문제를 해결할 수 있었다. 처음에는 DSS4_DRV symbol을 1개만 사용하고, time_count와 alarm_cnt에서 나오는 분과 초의 입력 값을 그 전에 MUX를 이용하여서 넣었었는데, 논리는 맞는 듯 보였으나 이유를 알 수 없게 계속 제 대로 동작하지 않았다. 그래서 다른 방법으로 시도하였는데, DSS4_DRV symbol 2개를 사용하여서, 알람 모드일 때 분을 표시하는 것과 시간 모드일 때의 분과 초를 입력한 후 그 다음에 MUX를 사용하였다. 즉 MUX사용 순서를 바꾸기만 하였는데 alarm_set 신호에 따라 7-segment에 원하는 값이 출력되었다.
  • 18. - 18 - 7. 설계를 마치고.. 노 동 기 이번 Alarm clock 설계는 7주 동안 Xilinx에서 schematic tool에 대해 배운 내용의 총 집합이 었다. 처음 Xilinx tool에서 wire를 연결하는 내용부터 배우기 시작해서 이번 alarm clock 설계까지 상 당히 흥미롭고 재밌게 설계과제들을 수행해왔었던 것 같다. 그렇지만 처음에 설계사양을 봤을 때는 우 리가 배운걸로 할 수 있을까 라는 기분이 들어서 약간은 막막했었다. 하지만 이 설계사양이 우리가 원 하는 대로 구동되려면 무슨 모듈이 필요하고 어떤 식으로 논리를 수행하도록 해야 할까 차근차근 생각 해보면서 하나씩 구상해갔다. 간단히 예를 들면 ‘시간을 count 하는 모듈은 우리가 배운 counter를 이 용하여서 하면 되겠다.' 이런 식으로 필요한 module들을 생각하여서 Datapath를 구상해 가는 것은 상당 히 흥미로운 작업이었다. 이번 설계를 하면서 이러한 과정들, 설계사양이 있을 때 어떤 방법으로 어떻 게 하나하나 진행해나가야 하는지에 대하여 많이 연습하고 배운 것 같다. 그다음 controller를 구상하 였는데 사실 좀 어려움을 겪어서 교수님께서 제공해주신 FSM그림을 보고 참고하여서 controller를 만들 었다. 그리고 schematic뿐만 아니라 verilog도 제대로 배워서 설계에 적용해봐야겠다고 생각했다. 설계 프로젝트를 수행하는 내내 많은 시행착오와 수정작업을 거쳤고, 밤늦게까지 설계하는 날들이 많았다. 하지만 그만큼 디버깅하는 방법과 문제 해결방법에 대해 상당히 많이 배울 수 있었다. 내가 구상한대로 설계되었을 때의 그 기쁨들로도 이번 설계 프로젝트는 마냥 힘들었다고 말할 수 없을 거 같고, 상당히 보람차고 즐거웠다. 이번 설계프로젝트는 팀 프로젝트였는데, 서로의 의견을 나누고 어떻게 할지 구상한 후 할 일 을 나누는, 이런 것들 모두에 상당히 어려웠었다. 그리고 분할한 설계를 다시 합치는 데에도 상당히 많 은 시간이 걸렸다. 하지만 그만큼 같이 과제를 수행한다는 것 자체에 대해 여러모로 배울 수 있었고 생 각해볼 수 있는 기회였다. 장 호 상 처음에 설계과제를 받았을 때는 지금까지 배운 내용으로 쉽게 설계할 수 있을 거라고 생각했 다. Top Schematic을 설계하고 필요한 Block 들을 나눠서 설계해서 합칠 때 까지는 순조롭게 진행되었 다. 그러나 막상 각자 설계한 것을 하나로 합쳐서 실행했을 때 오류가 발생했다. 중요한 것은 어디서부터 어떻게 잘못 되었는지 찾아내기가 굉장히 어려웠다. 어떤 설계이든 이번 과제 와 같은 스케일은 한 번에 성공하길 바랄 수는 없는 것 같다. 그런대 설계하면서 배우는 것 보다, 오류를 발견하고 수정하면서 배우는 것이 확실히 내 것이 되는 것 같다. 인내심의 한계를 느껴가면서 최종적으로 설계를 마무리 했을 때의 희열은 어느 것과 바꿀 수 없 었다. 7주 동안 기본적인 툴의 사용법은 꽤나 익숙해 졌고, 어느 정도 수준의 설계는 할 수 있을 것 같 다. 7주 동안 상당히 일정이 빠듯하게 진행되었고, 수업시간에도 정해진 분량을 살짝 무리해서 빼려는 교수님의 열정(?) 때문에 고난의 시간이었다. 지금 와서 생각해보면 이런 시스템이 오히려 긴장감 있 고, 더 집중해서 교수님 말씀을 듣게 해주며, 같은 것을 배워도 빠르게 습득할 수 있게 해준 것 같다. 학기 시작할 때는 과연 잘 해 낼 수 있을지 의심이 들었지만, 7주라는 짧은 시간동안 많은 것 을 배웠고, 직접 손으로 해보고 눈으로 확인했기 때문에 오랫동안 기억에 남을 것 같다.
  • 19. - 19 - 8.역할분담 노 동 기 : alarm_count, controller, led_output 장 호 상 : time_count, comparator, mux(4bit,8bit) 기타 나머지 block 들은 같이 설계하였습니다.