현재 VHDL을 사용하여 교통 신호등 컨트롤러를 설계하려고합니다. 신호등을 표시하기위한 사용자 정의 확장 보드가있는 Altera EPM240T100C5에서 프로그래밍하고 있습니다.VHDL 클럭 분배기가 보드에서 작동하지만 시뮬레이션에는 실패합니다.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity clockdivider is
port
(
clkin : in std_logic;
dividedclk : out std_logic
);
end clockdivider;
architecture divider of clockdivider is
signal J : std_logic;
signal K : std_logic;
begin
J <= '1';
K <= '1';
process(clkin)
variable tempdividedclk : std_logic;
begin
if (rising_edge(clkin)) then
tempdividedclk := (NOT(tempdividedclk) AND J) OR (tempdividedclk AND (NOT(K)));
end if;
dividedclk <= '0';
dividedclk <= tempdividedclk;
end process;
END divider;
이 (ModelSim을 보드에 있지만, 시뮬레이터에서 잘 실행 : 보드에 설정 느린 클럭 내가 좋아하는 것보다 여전히 빠르다, 나는 나뿐만 그렇게 클럭 디바이더를 작성하는 데 필요한 것) "dividedclk"출력이 아무 것도 초기화하지 못합니다. 왜 누군가가 그 이유를 알고 있는지 궁금 해서요?
프로세스에서 tempdivideclk에 대한 변수 선언에 기본값 "0"또는 "1"을 제공 할 수 있습니다. '변수 tempdividedclk : std_logic : = '0';' – user1155120