Q&A Home > 고객지원 > 기술지원 > Q&A
[re]VHDL을 이용한 STOPWATCH설계.
카테고리FPGA/SoC
작성자HB_SoC 아이피121.183.237.172
작성일09-12-09 14:14 조회수4101
파일
아래에서 질문한 것과 내용이 같아 복사해서 올려드립니다.

직접적으로 대답을 해 드리지 못하고, 관련된 사항을 말씀드리겠습니다.


----

저희 회사 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


입니다. 부탁드립니다.
이상입니다.


다음글 VHDL을 이용한 STOPWATCH설계.
이전글 XM-Bulverde Eboot질문입니다.

댓글 등록은 로그인 하신후 이용하실 수 있습니다.