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;
프로세스를 종료합니다. 과정이 끝나다
끝;