VHDL时钟分频器在板上工作,但在模拟中失败

VHDL时钟分频器在板上工作,但在模拟中失败,vhdl,clock,simulate,divider,intel-fpga,Vhdl,Clock,Simulate,Divider,Intel Fpga,我目前正在尝试使用VHDL设计一个交通灯控制器,我正在Altera EPM240T100C5上编程,该控制器带有一个用于显示交通灯的自定义扩展板。由于电路板上最慢的时钟设置仍然比我想要的快,我需要编写一个时钟除法器,我这样做: LIBRARY ieee; USE ieee.std_logic_1164.all; entity clockdivider is port ( clkin : in std_logic; dividedclk :

我目前正在尝试使用VHDL设计一个交通灯控制器,我正在Altera EPM240T100C5上编程,该控制器带有一个用于显示交通灯的自定义扩展板。由于电路板上最慢的时钟设置仍然比我想要的快,我需要编写一个时钟除法器,我这样做:

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;
ieee库;
使用ieee.std_logic_1164.all;
实体时钟分配器是
港口
(
clkin:标准逻辑;
dividedclk:输出标准逻辑
);
端时钟分频器;
时钟分频器的结构分频器是
信号J:std_逻辑;
信号K:std_逻辑;
开始

J在模拟开始时,“tempdividedclk”被初始化为“unitialized”。
当时钟边缘出现时,tempdividedclk将被分配到(非(U)和1)或(U和0),这是“未定义的”。要正确模拟,必须通过重置或仅在模拟级别初始化tempdividedclk。它在硅上工作,因为“U”状态将是1或0。

在模拟开始时,“tempdividedclk”被初始化为“unitialized”。
当时钟边缘出现时,tempdividedclk将被分配到(非(U)和1)或(U和0),这是“未定义的”。要正确模拟,必须通过重置或仅在模拟级别初始化tempdividedclk。它在硅上工作,因为“U”状态将是1或0。

在此过程中,tempdivideclk的变量声明可以提供默认值“0”或“1”<代码>变量tempdividedclk:std_逻辑:='0'变量tempdividedclk:std_逻辑:='0'