A
alexma
Guest
때 프로그램의 FPGA를 개발 변환기 (TLC548I)에 연결하는 VHDL을 사용하여 문제가 있으면 오류가 밖으로 따라 나온 :
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (50) : 집합 표현을 스칼라 타입 std_logic 수없습니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (53) : std_logic로서 색인 형식 이름을 확인할 수없습니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (56) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (75) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (88) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (101) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (114) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (127) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (140) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (153) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (166) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.() 코드는 다음과 같습니다 불완전 :
라이브러리는 IEEE;
사용 ieee.std_logic_1164.all; - std_logic의 정의를 포함
엔티티 ADC가있다
포트 (입력, 클록 : std_logic에; ioclock, scl_out, sda_out, cselect : 아웃 std_logic;
출력 : inout std_logic);
엔티티 엔드 ADC를;
ADC의 아키텍처는 행동이다
입력 상태 (s0, 에스원, S2를, s3, S4는, s5, S6, S7, S8)입니다;
current_state, next_state 신호 : 상태;
신호 ioclk, SCL : std_logic : = '0 ';
신호가 sda를 : std_logic : = '1 ';
신호 cs : std_logic : = '1 ';
, ram_WE, ram_OE ram_CS 신호 : std_logic;
신호 addr : 정수 범위는 0에서 7;
시작
seq : 프로세스 (시계)입니다
시작
ioclock "= ioclk;
scl_out "= SCL;
sda_out "= sda를;
cs "= '1 '; - 초기 값
cselect "= cs;
ioclk "= 250 ns의 후 ioclk하지;
ioclock "= ioclk;
SCL "= 250 ns의 후에 SCL하지;
scl_out "= SCL;
cs "= '0 ';
cselect "= cs;
- 1400 ns의 기다; - 확실하지
current_state "= s0;
만약 falling_edge (시계) 다음
current_state "= next_state;
최종면;
최종 처리 seq;
co.kr 사이트 : (current_state, 고객, ioclk, addr, ram_CS, ram_WE, ram_OE) 과정입니다
ram_array 형식 배열 (0 7) std_ulogic_vector (7 downto 0)이다;
변수가 들어 mem : ram_array;
변수는 CNT의 갖는 : integer : = 0;
시작
출력 "= (다른 분들에게도 =" '부터 Z');
만약 ram_CS = '0 '를 클릭한 후
만약 ram_OE = '0 '를 클릭한 후
출력 "= 들어 mem (addr);
elsif ram_WE = '0 '를 클릭한 후
들어 mem (addr) : = 출력;
최종면;
최종면;
사건 current_state입니다
s0 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
한동안 (CNT의 = 12) 루프
만약 rising_edge (시계) 다음
CNT의 : = CNT의 1;
최종면;
최종 루프;
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 0;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S1은;
다른 next_state "= s0;
최종면;
에스원 때 = "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 1;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S2를;
다른 next_state "= S1은;
최종면;
S2를 할 때 = "
만약 (cs = '0 ') 및 (ioclk) = '0'를 클릭한 후
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 2;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= s3;
다른 next_state "= S2를;
최종면;
s3 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 3;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S4는;
다른 next_state "= s3;
최종면;
S4는 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 4;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= s5;
다른 next_state "= S4는;
최종면;
언제 s5 = "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 5;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S6;
다른 next_state "= s5;
최종면;
S6 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 6;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S7;
다른 next_state "= S6;
최종면;
S7 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 7;
들어 mem (addr) : = 출력; - 안 마무리
- next_state "= s0;
next_state "= S8;
cs "= '1 ';
cselect "= cs;
다른 next_state "= S7;
최종면;
S8 = 할 때 "
- 만약 SCL = 1 다음
- sda를 "= 0;
next_state "= s0;결국 사건;
엔드 프로세스 COM;
엔드 아키텍처 행동;
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (50) : 집합 표현을 스칼라 타입 std_logic 수없습니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (53) : std_logic로서 색인 형식 이름을 확인할 수없습니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (56) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (75) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (88) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (101) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (114) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (127) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (140) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (153) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.
** 오류 : H 조 : / D4/FPGA1/ADCmem.vhd (166) : 할당 대상 유형 std_ulogic_vector 표현 형식 std_logic 다릅니다.() 코드는 다음과 같습니다 불완전 :
라이브러리는 IEEE;
사용 ieee.std_logic_1164.all; - std_logic의 정의를 포함
엔티티 ADC가있다
포트 (입력, 클록 : std_logic에; ioclock, scl_out, sda_out, cselect : 아웃 std_logic;
출력 : inout std_logic);
엔티티 엔드 ADC를;
ADC의 아키텍처는 행동이다
입력 상태 (s0, 에스원, S2를, s3, S4는, s5, S6, S7, S8)입니다;
current_state, next_state 신호 : 상태;
신호 ioclk, SCL : std_logic : = '0 ';
신호가 sda를 : std_logic : = '1 ';
신호 cs : std_logic : = '1 ';
, ram_WE, ram_OE ram_CS 신호 : std_logic;
신호 addr : 정수 범위는 0에서 7;
시작
seq : 프로세스 (시계)입니다
시작
ioclock "= ioclk;
scl_out "= SCL;
sda_out "= sda를;
cs "= '1 '; - 초기 값
cselect "= cs;
ioclk "= 250 ns의 후 ioclk하지;
ioclock "= ioclk;
SCL "= 250 ns의 후에 SCL하지;
scl_out "= SCL;
cs "= '0 ';
cselect "= cs;
- 1400 ns의 기다; - 확실하지
current_state "= s0;
만약 falling_edge (시계) 다음
current_state "= next_state;
최종면;
최종 처리 seq;
co.kr 사이트 : (current_state, 고객, ioclk, addr, ram_CS, ram_WE, ram_OE) 과정입니다
ram_array 형식 배열 (0 7) std_ulogic_vector (7 downto 0)이다;
변수가 들어 mem : ram_array;
변수는 CNT의 갖는 : integer : = 0;
시작
출력 "= (다른 분들에게도 =" '부터 Z');
만약 ram_CS = '0 '를 클릭한 후
만약 ram_OE = '0 '를 클릭한 후
출력 "= 들어 mem (addr);
elsif ram_WE = '0 '를 클릭한 후
들어 mem (addr) : = 출력;
최종면;
최종면;
사건 current_state입니다
s0 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
한동안 (CNT의 = 12) 루프
만약 rising_edge (시계) 다음
CNT의 : = CNT의 1;
최종면;
최종 루프;
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 0;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S1은;
다른 next_state "= s0;
최종면;
에스원 때 = "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 1;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S2를;
다른 next_state "= S1은;
최종면;
S2를 할 때 = "
만약 (cs = '0 ') 및 (ioclk) = '0'를 클릭한 후
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 2;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= s3;
다른 next_state "= S2를;
최종면;
s3 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 3;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S4는;
다른 next_state "= s3;
최종면;
S4는 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 4;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= s5;
다른 next_state "= S4는;
최종면;
언제 s5 = "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 5;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S6;
다른 next_state "= s5;
최종면;
S6 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 6;
들어 mem (addr) : = 출력; - 안 마무리
next_state "= S7;
다른 next_state "= S6;
최종면;
S7 = 할 때 "
만약 (cs = '0 ') 및 (ioclk = '0') 다음
ram_CS "= '0 ';
ram_OE "= '1 ';
ram_WE "= '0 ';
addr "= 7;
들어 mem (addr) : = 출력; - 안 마무리
- next_state "= s0;
next_state "= S8;
cs "= '1 ';
cselect "= cs;
다른 next_state "= S7;
최종면;
S8 = 할 때 "
- 만약 SCL = 1 다음
- sda를 "= 0;
next_state "= s0;결국 사건;
엔드 프로세스 COM;
엔드 아키텍처 행동;