VHDL时钟分频器在板上工作,但在模拟中失败
我目前正在尝试使用VHDL设计一个交通灯控制器,我正在Altera EPM240T100C5上编程,该控制器带有一个用于显示交通灯的自定义扩展板。由于电路板上最慢的时钟设置仍然比我想要的快,我需要编写一个时钟除法器,我这样做: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 :
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'在此过程中,可以为tempdivideclk的变量声明提供默认值“0”或“1”<代码>变量tempdividedclk:std_逻辑:='0'代码>