>source

는 VHDL을 사용하여 FPGA 디자인의 새로운 기능을 사용하고 테스트 벤치 시뮬레이션의 문제에 갇혀 있습니다. 내 모델을 시뮬레이션하려고 할 때마다 (Testbench 작성자가 테스트 벤치가 주어 졌는가) 나는 다음과 같은 오류를 얻을 수 있습니다. 미친:

오류 : (VSIM-3173) 엔티티 > 'C : /intelfpga_lite/progetto_dsp/simulation/modelsim/rtl_work.progetto_dsp_top_vhd_t> St '는 아키텍처가 없습니다.

My Model은 간단한 위상 주파수 검출기 (PFD)이며 다른 모든 입력 신호에서 동작을 시뮬레이트하는 것입니다.

다음에 내 테스트 벤치 code를 게시하면 자동 생성 된 code에서 변경 한 유일한 방법은 A와 B 신호가 추가 된 것입니다 (다른 주파수를 가진 클록 신호처럼 만든 것).

--Generated on "05/02/2021 16:58:30"
--Vhdl Test Bench template for design  :  progetto_dsp_top
--
--Simulation tool : ModelSim-Altera (VHDL)
--
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY progetto_dsp_top_vhd_tst IS
END progetto_dsp_top_vhd_tst;
ARCHITECTURE progetto_dsp_top_arch OF progetto_dsp_top_vhd_tst IS
--constants
constant period_A : time := 10 ps;
constant period_B : time := 20 ps;
--signals
SIGNAL A : STD_LOGIC := '0';
SIGNAL B : STD_LOGIC := '0';
SIGNAL High : STD_LOGIC : '1';
SIGNAL QA : STD_LOGIC;
SIGNAL QB : STD_LOGIC;
COMPONENT progetto_dsp_top
    PORT (
    A : IN STD_LOGIC;
    B : IN STD_LOGIC;
    High : IN STD_LOGIC;
    QA : OUT STD_LOGIC;
    QB : OUT STD_LOGIC
    );
END COMPONENT;
BEGIN
--signal A generation
process
    begin
        A <= '1';
        wait for period_A/2;
        A <= '0';
        wait for period_A/2;
        if end_sim_s= true then
            wait;                       --end of simulation
        end if;
    end process;
signal B generation
process
    begin
        B <= '1';
        wait for period_B/2;
        B <= '0';
        wait for period_B/2;
        if end_sim_s= true then
            wait;                       --end of simulation
        end if;
    end process;
    i1 : progetto_dsp_top
    PORT MAP (
--list connections between master ports and signals
    A=> A,
    B=> B,
    High=> High,
    QA=> QA,
    QB=> QB
    );
init : PROCESS
--variable declarations
BEGIN
        --code that executes only once
WAIT;
END PROCESS init;
always : PROCESS
--optional sensitivity list
--(        )
--variable declarations
BEGIN
        --code executes for every event on sensitivity list
WAIT;
END PROCESS always;
END progetto_dsp_top_arch;

신호 높음 : std_logic : '1'; 신호가 높아야합니다 : std_logic := '1'; 기본값은 복합 구분 기호에 '='가 누락되었습니다.= 초기 값을 제공합니다. 신호 B 세대는 의견이어야합니다. end_sim_s는 선언되지 않았거나 지정되지 않았습니다. 오류가있는 아키텍처가 작업 라이브러리에 저장되지 않습니다. 이 중 적어도 하나는 디자인을 컴파일 할 때 콘솔의 오류로 표시되어야합니다.

user11551202021-05-05 03:10:16

당신보다는 아주 많이 일했습니다! 또는 오히려 시뮬레이션이 시작되었지만 결과는 모델이해야 할 일이 아닙니다 : 위상 검출기가 없습니다. 저는 매우 나쁜 VHDL 프로그래머 (소프트웨어 회사에서 일하고이 프로젝트가 대학을위한 것이므로) PFD를위한 code를 보내는 경우, 제발 봐 줄 수 있습니까? :)

gianluca162021-05-04 14:57:36

내가 가진 문제는 출력 신호가 정의되지 않고 왜 그런지 모르겠다는 것입니다.

gianluca162021-05-04 15:08:58
  • 이전 html : TextArea 요소에 새 줄을 추가하는 방법?
  • 다음 python : 링크를 클릭하고 데이터베이스 (Django)에 저장하는 방법은 무엇입니까?