아래에서 질문한 것과 내용이 같아 복사해서 올려드립니다.
직접적으로 대답을 해 드리지 못하고, 관련된 사항을 말씀드리겠습니다.
----
저희 회사 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, .. 등을 연결해 주시면 됩니다.
많은 도움이 되시길 바랍니다.
좋은 하루 되세요.
>
안녕하세요. 대학 2학년 학생입니다.
다름이 아니라,, 제가 Quartus2 vhdl을 이용하여 스탑워치를 제작중입니다.
질문의 요지는 device family에서 FLEX10K10PLD칩)의 핀을 cyclone2의 핀으로 변환해서 HBE-COMBO 2
로 나타내는데 막히고 있습니다.
죄송하지만 알려주시면 감사하겠습니다.
FLEX10K10핀
|
signal 이름
|
입출력상태
|
FLEX10K10
|
|
PIN
|
외부연결
|
|
clk
|
in
|
79
|
내부 clock
|
|
start_stop
|
in
|
122
|
keypad1
|
|
clear
|
in
|
44
|
keypad0
|
|
msec10a_dec{0..6}
|
out
|
86,85,83,75-73,71
|
seg8_0-seg8_6
|
|
msec10b_dec{0..6}
|
out
|
95-92,90-88
|
seg7_0-seg7_6
|
|
sec10_dec{0..6}
|
out
|
104-99,97
|
seg6_0-seg6_6
|
|
sec6_dec{0..6}
|
out
|
164-158
|
seg5_0-seg5_6
|
입니다. 부탁드립니다.
이상입니다. |