vhdl testbench 예제

테스트벤치는 분석된 시스템(테스트 중인 단위, UUT)에 대한 완전한 시뮬레이션 환경의 역할을 하는 VHDL의 사양입니다. 테스트벤치에는 UUT와 시뮬레이션에 대한 자극이 모두 포함되어 있습니다. 가장 먼저 해야 할 일은 테스트벤치의 엔터티를 정의하는 것입니다. 엔터티에는 모든 입력 신호와 출력 신호가 포함됩니다. 테스트벤치의 경우 입력 또는 출력 신호가 없는 경우가 많습니다. 모든 신호는 테스트벤치 내부에서 생성됩니다. 다음은 엔터티입니다: 이 코드에 대한 텐스트 벤치의 예를 제공할 수 있습니까?라이브러리 IEEE;사용 IEEE. STD_LOGIC_1164.ALL;IEEE 를 사용합니다. 숫자_STD.

ALL;use ieee.math_real.all;entity PID_Regler는 일반(data_width: 정수 := 14; intern_data_width: 정수 := 18); 포트(clk_i : std_logic; rst_i: std_logic; k_p : std_logic_vector(intern_data_width-1 downto 0); k_i : std_logic_vector(intern_data_width-1 downto 0); k_d : std_logic_vector(intern_data_width-1 downto 0); k_d : std_logic_vector(intern_data_width-1 downto 0); k_d : std_logic_vector-1 다운토; : std_logic_vector(data_width-1 downto 0); data_x_i : std_logic_vector(data_width-1 downto 0); data_y_o : out std_logic_vector (data_width-1 downto 0) ); 끝 PID_Regler;아키텍처 행동 w : std_logic_vector (data_width-1 downto 0);신호 x : std_logic_vector (data_width-1 downto 0); 신호 e : std_logic_vector_vector(데이터_로직 벡터_데이터)..] 너비-1 다운 토 0);신호 y : std_logic_vector (data_width-1 downto 0);신호 yp: std_logic_vector(intern_data_width-1 downto 0):= (기타 => `0`);신호 yi: std_logic_vector(intern_data_width-1 downto 0) := (다른 사람 => `0`)=..0 (intern_data_width-1 downto 0) := (다른 사람 => `0`); 신호 ealt : std_logic_vector (intern_data_width-1 downto 0)=신호 yi_alt (intern_data_width-1 downto 0) := (다른 사람 => `0`);beginReg 시작-맵펜 데르 에인게엔게우 <= data_w_i;x <= data_x_i; --Regeldifferentenze <= std_logic_vector(서명(w) - 서명(x)); 만약 rising_edge(clk_i)가 rst_i = `1`이라면 yp <= (다른 사람 => `0`); yi <= (다른 사람 => `0`); yd <= (다른 사람 => `0`); ealt <= (다른 사람 => `0`); y <= (다른 사람 => `0`); else –e <= std_logic_vector(signed(w) - 서명(x)); yp <= std_logic_vector(서명(k_p)**서명(e)); yi <= std_logic_vector(서명(yi_alt)+(서명(k_i)**서명(e)/10)); --yi_alt=yi yd <= std_logic_vector(서명된(k_d)*(서명(e)-서명(e))**10);; -- ealt=e <= std_logic_vector(서명(yp)+서명(yi)+서명(yd)); --y <= 크기 조정((yp + yi + yd)); ealt <= e; yi_alt <= yi; end if;end if;end process Regler;data_y_o <= y;end 행동; 우리가 자극 될 신호의 나머지 부분을 포함하는 추가 프로세스가 있습니다. 아래 코드를 살펴보고 신호를 r_ENABLE, r_SWITCH_1 및 r_SWITCH_2를 어떻게 자극하는지 확인합니다. 이 테스트벤치와 설계를 함께 컴파일하면 시뮬레이션을 실행할 수 있습니다. 시뮬레이션을 컴파일하고 시작하는 방법에 대한 세부 사항은 시뮬레이터에 따라 다릅니다. Modelim을 사용하지 않는 경우 이 부분을 직접 수행하는 방법에 대한 몇 가지 기본 지침을 찾아야 합니다. 아래로 스크롤하여 테스트벤치 코드와 시뮬레이션 실행 결과의 출력을 확인합니다. => 화살표가 오른쪽을 향하고 있음을 알 수 있습니다. 왼쪽의 신호는 소스 신호이며, 오른쪽의 신호는 대상 신호입니다.

또는 원하는 경우 왼쪽의 신호는 설계의 신호이며, 오른쪽신호는 테스트벤치의 신호입니다. 우리가 오른쪽에있는 신호를 자극하면, 우리의 LED 깜박임 디자인은 반응합니다. 자극해야 하는 신호는 모두 입력입니다. 하나의 출력(w_LED_DRIVE)은 자극되지 않습니다. 시뮬레이터에서 해당 신호를 모니터링하여 입력 변경 에 올바르게 응답하는지 확인합니다. 우리의 입력을 자극 시작하자! @Raphael : 실수를 지적 주셔서 감사합니다. 나는 xilinx ISE 버전 10.1.VHDL 어설션을 사용하여 지능형 테스트 벤치를 작성하는 데 사용됩니다.


Parse error: syntax error, unexpected ',' in /home/nickegge/public_html/wp-content/themes/minimatica/comments.php on line 68