현재 위치는 - 분류정보망 - 안경정보 - SEG 코 성형술

SEG 코 성형술

도서관 IEEE

Ieee.std _ logic _1164.all;

Ieee.std _ logic _ unsigned.all;

엔티티 dtx 예

포트 (clk: instd _ logic;

Data_control: std_logic_vector(7 downto 0) 에서 :

Led _ addr: outstd _ logic _ vector (7 down to 0);

Seg7 _ data: outstd _ logic _ vector (6 down to 0));

끝;

Dtx 의 구조 중 하나는

Aaaa 유형은 배열 (0 ~ 3) 의 정수입니다. -AAA 값 범위는 0-3 입니다.

상수 a:aaaa:=(0, 1, 2,3); 즉, 0-3 범위의 AAA type A 가 정의되어 있습니다.

Type seg7_data_type 은 배열 (자연 범위<& gt) 의 std_logic_vector(6 에서 0 으로 감소) 입니다. -7 비트 배열 유형 seg7_data_type 을 정의합니다.

상수 seg7 _ data _ table: seg7 _ data _ type (0 ~ 8): = ("0000110/

"1100110", "11 "0000111","111 -numberseg7 _ data _ type 유형의 number seg7_data_table 을 정의하며 범위는 0-8 입니다.

유형 led_addr_type 은 배열 (자연 범위<& gt) 의 std_logic_vector(7 에서 0 으로 감소) 입니다. -8 비트 배열 유형 led_addr_type 을 정의합니다.

상수 led_addr_table:led_addr_type(0 ~ 7):=("0000000 1 ","000000/kk

"00001000", "00010000", "00100000", "0/kloc -led_addr_type 번호가 0-8 인 led_addr_table 을 정의합니다.

시작

프로세스 (시계)

변수 개수: 정수 범위 0 ~ 7: = 0; 정수 개수를 정의하고 0 으로 초기화합니다.

시작

If (clk' event and clk ='1') then-시계 상승 에지의 트리거 조건을 결정합니다.

개수: = 개수+1; -카운트 더하기 1

Led _ addr & lt=led_addr_table (수); -led_addr_table 배열에서 해당 count 값을 찾아 led_addr 출력에 할당합니다. Count=0 이면 led_addr=0000000 1 입니다.

If (data _ control (count) ='1') then-data _ control 이 유효한지 여부를 결정합니다 (이 문장의 구문에 문제가 있어야 함).

Seg7 _ data & lt = seg7 _ data _ table (count); -seg7_data_table 배열에서 count 에 해당하는 값을 찾아 seg7_data 출력에 할당합니다. Count=0 인 경우 seg7 _ data = 0000110 입니다.

기타

Seg7 _ data & lt = seg7 _ data _ table (8); -data_control 이 유효하지 않은 경우 seg7_data 에 값 0000000 을 지정합니다.

끝 if;

끝 if;

프로세스를 종료합니다. 과정이 끝나다

끝;