NON-Synthesizable VHDL/Clock Generator
만일 PC 에 사용될 회로의 일부분을 칩셋으로 설계할 경우 시스템 모델의 일부분을 분할하여 합성 가능한 수준의로 기술하며 이의 검증과정에서 이전 시스템 수준의 모델을 테스트 벤치로서 사용할수 있을것이다.
시뮬레이션 모델은 설계의 최종 결과에 대한 타이밍 관계만을 기술한다. 타이밍 특성은 VHDL의 delay에 의하여 간단하게 기술할수 있다. 다음은 타이밍 모델을 AFTER 에 의하여 쉽게 기술할수 있음을 보여준다.
LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY delay IS PORT ( a : OUT std_logic_vector(0 TO 3); en : IN std_logic; clk : OUT std_logic ); END delay; ARCHITECTURE behave OF delay IS SIGNAL clk_out : std_logic := '0'; BEGIN function_genenerator : PROCESS (en) BEGIN IF en='1' THEN a <= "0000", "0001" AFTER 20 ns, "0010" AFTER 40 ns, "0011" AFTER 60 ns, "0100" AFTER 80 ns, "0101" AFTER 100 ns, "0110" AFTER 120 ns, "0111" AFTER 140 ns, "1000" AFTER 160 ns, "1001" AFTER 180 ns, "1010" AFTER 200 ns, "1100" AFTER 220 ns; ELSE a <= "0000"; END IF; END PROCESS; clock_genenerator : PROCESS VARIABLE clk_time : INTEGER := 0; BEGIN WAIT FOR 10 ns; IF clk_out = '0' THEN clk_out <= '1'; ELSE clk_out <= '0'; END IF; END PROCESS; clk <= clk_out; END behave; |
위의 예는 Clock과 Function Generator이다.
시뮬레이션 결과는,
이와같은 모델은 합성되지 않는다. 이미 만들어진 라이브러리로 P&R 하는데 어떻게 임의의 delay를 갖는 primitive를 선택할 수 있겠는가? 위와 같은 모델은 테스트 벤치에 유용하게 사용할수 있다.
mailto:goodkook
CSA & VLSI Design Lab.