[BCD 7-segment decoder]
<7-segment란?>
위 그림처럼 8개의 LED(a, b, c, d, e, f, g, dot) 합쳐놓은 것을 말하며, 각 LED를 on하여 숫자 또는 문자를 표현한다.
<7-segment coding>
4 bit의 입력으로 출력할 수 있는 경우의 수
→ 2⁴(=16) 가지(0~9, A~F)
case를 써주지도 않고, default도 안 만들어주면, LATCH가 만들어진다. → 주의할 것
※ 분주기
(2진수에서 다음 bit의 주기는 이전 bit 주기의 2배)
위 코드를 예로 들면,
i) 1 clk rising edge일 때, clk_div = clk_div +1
즉, clk 1주기 동안 clk_div[0]는 1회 rising/falling 한다.
→ clk의 주기는 clk_div[0]의 주기의 1/2
ii) clk_div[25] 는 clk의 주기의 2^26배가 되므로 8ns x 2^26 = 0.56 [sec]
∴ count는 약 0.56초마다 실행된다.
<Connect FPGA board with Segment display>
tip) 한 번에 주석처리 하는 단축키 : [Ctrl + /]
저번처럼 open target → auto connect → program device까지 해주면,
정상적으로 잘 작동하는 것을 볼 수 있다.
<Bread board를 활용한 실습>
Display board 를 활용한 실습은 순서대로 연결하면 되기에 쉽게 동작시킬 수 있었다.
port 배정에 대해 좀 더 심화적으로 이해하기 위해 Bread board를 사용하여 실습하였다.
위의 핀 정보를 보면, display board 처럼 순서대로 설정되어 있지 않으므로 Chipkit의 포트를 새로 배정해줘야 한다.
O O O O O O O O ㅁ ㅁ ㅁ ㅁ
b a f e d dp c g com4 com3 com2 com1
io7 io6 io5 io4 io3 io2 io1 io0 io11 io10 io9 io8
현재 위와 같이 연결되어 있으므로 일치하는 port에 seg_7를 다음과 같이 배정해주면 된다.
(선을 바꿔줘도 되는데, 그럼 지저분하므로 비추)
port를 배정해주고 programing해주면, 아래와 같이 결과가 출력된다.
※ Common Cathod / Anode type
[Common Cathode type]
모든 LED의 공통 단자가 GND에 물려 있어, 각 단자에 Vcc를 연결할 때 불이 들어오는 방식
= 각 단자에 1을 주면 불 켜짐
[Common Anode type]
모든 LED의 공통 단자가 Vcc에 물려 있어, 각 단자에 GND를 연결할 때 불이 들어오는 방식
= 각 단자에 0주면 불 켜짐
'# Semiconductor > [Semicon Academy]' 카테고리의 다른 글
[Harman 세미콘 아카데미] 5일차 - Demux, 코드변환기 (0) | 2023.06.23 |
---|---|
[Harman 세미콘 아카데미] 4일차 - Encoder 설계, MUX, LUT (0) | 2023.06.22 |
[Harman 세미콘 아카데미] 3일차 - Cora z7 setting, Decoder (0) | 2023.06.21 |
[Harman 세미콘 아카데미] 3일차 - 가산기,비교기, 인코더/디코더 (0) | 2023.06.21 |
[Harman 세미콘 아카데미] 2일차 - 보수체계, Testbench, Delay (0) | 2023.06.20 |