저희 회사 FPGA 장비의 7-Segment 는 대부분 7-Segment에 대한 Data 라인을 연결하고, common 단자를 Scanning 하는 방법으로 제어하는 구조를 따르고 있습니다.
이렇게 하는 이유는 8개의 7-Segment 를 제어하기 위해서는 각 7-Segment 마다 8개의 데이터라인씩 총 64개의 데이터라인이 필요한데, 공통되는 데이터 라인을 연결하고 각 7-Segment의 common 단자를 제어할 경우에는 데이터 라인 8개와 common 단자 8개 이렇게 총 16개의 핀만 사용하면 되기 때문입니다.
물론 이렇게 사용하기 위해서는 각각을 선택해 주는 7-Segment Driver 로직을 설계해 주어야 합니다.
이에 대해서는 장비의 사용자 설명서에 설명이 되어 있습니다.
간단하게 설명드리면, 약 1kHz의 클럭 입력을 받아 0~7까지 카운트하는 로직을 설계하고 아래와 같이 구성해 주면 됩니다.
seg_com <= "1111" when rstn = '0' else
"01111111" when cnt_fnd = 0 else
"10111111" when cnt_fnd = 1 else
"11011111" when cnt_fnd = 2 else
"11101111" when cnt_fnd = 3 else
"11110111" when cnt_fnd = 4 else
"11111011" when cnt_fnd = 5 else
"11111101" when cnt_fnd = 6 else
"11111110" when cnt_fnd = 7 else
"11111111";
seg_data <= d_a when cnt_fnd = 0 else
d_b when cnt_fnd = 1 else
d_c when cnt_fnd = 2 else
d_d when cnt_fnd = 3 else
d_e when cnt_fnd = 3 else
d_f when cnt_fnd = 3 else
d_g when cnt_fnd = 3 else
d_h when cnt_fnd = 3 else
x"00";
위에서 seg_com은 7-Segment 의 Common 단자를 말하며, seg_data는 7-Segment 의 데이터 라인을 의미합니다.
d_a~d_h는 각 segment 위치에 따라 데이터를 전달해 주는 부분이며, 질문하신 내용에서는 led_hh, led_hl, led_mh, .. 등을 연결해 주시면 됩니다.
많은 도움이 되시길 바랍니다.
좋은 하루 되세요.
>
이건 디지털 시계 소스 인데요 여기서 top을 이용해
hbe-combo ep1k100qc208-3 을 이용해 구현하려 합니다
근데 top에 핀 설정 중에 LED 세그먼트(LED_HH, LED_HL, LED_MH 등)이 7비트라서 빈번호 설정하기가
조금 애매한데요... 어떻게 해야되는지 좀 알려주실수 있을까요?;
그리고 7-SEGMENT 아래 LED를 구현하려면 어떤 것에 핀번호를 설정해야되는지 궁금합니다.
만약 이소스에 그 LED에 관한 소스가 없다면 그것도 추가해주시면 안될가요..
죄송합니다 너무 많은 질문을 했네요..
수고하시고요 답변기다리겠습니다., |