7-Segment LED Controller 구현 Lecture #
학습목표 다양한실습을통해 VHDL 의응용능력을기른다 기본적인타이밍도의이해및응용능력을배양한다 주로사용되는출력장치인 FND(7 Segment) 의특성을이해한다
강의순서 7-Segment LED(FND) 장치 PXA55-FPGA FND 회로도구성 7-Segment LED Controller 설계 7-Segment LED Controller 테스트 3
Output Device 발광다이오드 (LED) LED(Light Emitting Diode) 화합물반도체의 PN접합다이오드로양단에전압의차를가하면빛을방출하는발광소자그림 (A) 와같이 개의다리가나와있는데긴쪽이애노드 (+) 이며짧은쪽이캐소드 (-) 이다 약.5V 정도의전압차가 개의다리양단에걸리면빛을방출하는데, 보통디지털소자의출력이 5V 이므로그림 (B) 와같이저항을직렬로 연결하여다이오드를보호한다 그림 (A) 그림 (B) 4
Output Device 7-Segment LED () 7-Segment LED FND 라고도불리는데, 숫자나문자를표시하는데사용되는 7 개의발광다이오드 (LED) 의모임 공통애노드 (Common Anode) 형 : 다이오드의애노드를공통단자로사용한다 애노드단자에 5V 를주고캐소드의각단자 a~g 까지 0V 를주면다이오드에전류가흐르게되어발광한다 다이오드의파손방지를위해저항을연결한다 Common Anode 형 5
Output Device 7-Segment LED () 7-Segment LED 공통캐소드 (Common Cathode) 형 : 다이오드의캐소드를공통단자로사용한다캐소드를접지시키고, 다이오드의애노드단자에 5V를주면전류가흐른다다이오드의파손방지를위해저항을연결한다 Common Cathode 형 6
Output Device 7-Segment LED Array () Common Cathode 형 7-Segment LED 4 ARRAY 7-Segment LED 가 4 개병렬로있는것 공통단자가캐소드형으로 com0, com, com, com3 로 4 개있으며, 애노드단자 a,b,c,d,e,f,g,dp 는공통으로사용한다 LED 를제어하기위한전체핀의개수를줄일수있는장점이있으나컨트롤은조금복잡해진다 7
Output Device 7-Segment LED Array () Common Cathode 형 7-Segment LED 4 ARRAY Com0=0, Com=Com=Com3= 인경우, 입력 a,b,c,d,e,f,g 중의어느하나가 이면가장왼쪽에해당되는 Segment LED 가발광한다 A B C D E F G DP R 0 R 0 R3 0 R4 0 R5 0 R6 0 R7 0 R8 0 D9 D7 A A D3 D3 G DP D8 D3 B G D7 D30 C F D0 D5 D A D4 D9 DP E D D6 F B D D8 E D D D9 B C D D3 A C D4 D5 D E D6 D8 F DP D7 D0 G B D D C D D3 D4 E F D5 D6 G DP COMMON0 COMMON COMMON COMMON3 8
Output Device 7-Segment LED Array (3) Common Cathode 형 7-Segment LED 의 4 개의제어 (Dynamic Display) 고정된방식이아닌순차적으로번갈아가면서 LED 를켜는방식으로제어 : 통상 초당 60 번이상켜지면항상켜지는것으로보이는잔상효과이용. 3 4 3 4 Com0=0 인경우첫번째의 7-segment LED 가켜짐 Com=0 인경우두번째의 7-segment LED 가켜짐 Com=0 인경우세번째의 7-segment LED 가켜짐 Com3=0 인경우네번째의 7-segment LED 가켜짐 Seg_out=00000 a=0,b=,c=,d=e=f=g=0을의미함. 9
Output Device 7-Segment LED Array (4) PXA55-FPGA Board 7-Segment LED 6 Array 0
Output Device 7-Segment LED Array (5) FND 를이용한데이터표현예 : Common Cathod 단자 Anode 단자
PXA55-FPGA FND 회로구성 ()
PXA55-FPGA FND 회로구성 () 3
PXA55-FPGA FND 회로구성 (3) 4
PXA55-FPGA FND 회로구성 (4) 5
7-Segment LED Controller 설계 () 7-Segment LED Controller 동작모드 단독모드 (FPGA Dip S/W off, on) 6 자리십진카운터동작을수행 Main clock 을분주하여 초단위로계수하고, 계수된값을십진 6 자리수로 FND array 를통해출력 연동모드 (FPGA Dip S/W on, on) PXA55-Pro3 main board 에서전송된 I/O 신호를받아 FND array 에출력 FPGA Dip S/W 설정에따라동작모드를결정 6
7-Segment LED Controller 설계 () 7-Segment LED Controller 구성 io_top.bdf - top-level block diagram file 7
7-Segment LED Controller 설계 (3) 7-Segment LED Controller 구성요소설계 fnd_6digit.vhd 단독동작모드를설계한 VHDL 파일 iom_mode.vhd 연동동작모드를설계한 VHDL 파일 mux_iom.vhd FPGA Dip S/W 설정에따라 I/O 을선택하는 multiplexing 기능을설계한 VHDL 파일 상기의 VHDL 파일소스는별도의유인물참조 8
Quartus II Project 파일생성 () New Project Wizard 를통한 Quartus II Project 생성하기 File 메뉴에서 New Project Wizard 를실행하여새로운프로젝트를생성 9
Quartus II Project 파일생성 () New Project Wizard Project 를설치할경로와프로젝트의이름과 top-level entity 이름을지정 0
Quartus II Project 파일생성 (3) New Project Wizard 오른쪽의그림은다음단계인설계된파일이있으면추가하는단계 추가할파일이프로젝트디렉토리에있다면 [ADD ALL] 버튼을클릭하면모두추가 [...] 버튼을클릭하여그림과같이 4 개의파일을추가 [Next] 버튼을눌러다음설정으로이동
Quartus II Project 파일생성 (4) New Project Wizard 3 EDA Tool 에대한설정을하는부분 Thirth party EDA tool 을사용한다면설정하고, 사용하지않는다면 [Next] 버튼을눌러다음설정으로이동
Quartus II Project 파일생성 (5) New Project Wizard 4 Device Family를설정하는부분 PXA55-FPGA보드는 Cyclone을사용 3
Quartus II Project 파일생성 (6) New Project Wizard 5 PXA55-FPGA 에는 EPCQ40C8 을사용하고있으므로해당 Device 를선택 오른쪽메뉴의 Filter 사용하면쉽게선택할수있다 4
Quartus II Project 파일생성 (7) New Project Wizard 6 지금까지설정을확인하는단계 프로젝트경로와프로젝트이름, top-level design entity 이름, 추가한파일의개수를확인 5
Quartus II Project 파일생성 (8) Project 생성 6
Quartus II Project 파일생성 (9) Pin Assignment Pin assignment 메뉴를이용하여 pin 정보입력 Pin Assign File 수정 - io_top.qps 파일을열어서옆그림에제시된정보를고려하여핀매핑에대한정보를수정 7
Quartus II Project 파일생성 (0) 8
Quartus II Project 파일생성 () 사용하지않는핀들에대한설정 Device 설정창에서 Device & Pin Options 을선택 9
Quartus II Project 파일생성 () Unused Pin 에대한설정 Reserve all unused pins에서 As Input, tri stated를선택외부에아무런영향을주지않기위함 30
Quartus II Project 파일생성 (3) Configuration 에대한설정 그림과같이 Configuration scheme 와 device 를설정 3
Quartus II Project 파일생성 (4) 기타설정 General 탭에서 Auto-restart configuration after error을선택 FPGA에서에러가발생하면자동으로다시 Configuration하게설정 3
Quartus II Project 파일생성 (5) Compilation 지금까지의설정이정상적으로이루어졌다면 Processing 메뉴에서 Start Compilation 을실행 컴파일이완료되면 Full compilation was successful 이라는메시지를보여주며컴파일이끝나게된다 33
Quartus II Project 파일생성 (6) Configuration 지금까지의과정이모두끝났다면 FPGA 로 Configuration 을하여야한다 Programmer 실행 - EPC 에다운로드하거나 FPGA 에 Configuration 하기위해서 Programmer 를실행 34
Quartus II Project 파일생성 (7) Configuration 파일불러오기 Byteblaster 케이블이 JTAG 포트에연결된상태에서 [Auto Detect] 를하면 EPC 와 EPC6 두개의장치를검출 <none> 를더블클릭하여 EPC 에는 io_top.pof 파일을, EPC6 에는 io_top.sof 파일을설정한다 35
Quartus II Project 파일생성 (8) Configuration Program/Configure 에체크옵션에체크를한다 [Start] 버튼을클릭하면체크한항목에대해서만 Download 및 Configuration 을수행한다 [Start] 버튼을클릭하여실행한다 36
7-Segment LED Controller 테스트 디바이스드라이버설치및테스트프로그램실행 FPGA Dip S/W 를 (on, on) 으로설정하여연동모드선택 디바이스드라이버와테스트프로그램을타겟보드에다운로드하고실행시킨다 # mknod /dev/fnds c 4 0 # insmod fnd_driver.o # chmod 777 test_fnd #./test_fnd <input data> 37