我一直在尝试将信号值分配给输出端口。当我模拟设计时,我得到正确的信号输出秒,但是一旦我将信号值分配给输出端口,它就会给我一个警告。此警告粘贴在下方。我已经尝试使用信号和输出保持std_logic
但仍然得到相同的错误。
我相信你的一个人会得到我的回答。
提前致谢。
FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修剪此FF / Latch。警告:Xst:1896 - 由于其他FF / Latch修整,FF / Latch在块中的常量值为0。
在优化过程中将修整此FF / Latch。
这是我的代码!
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity clock is
port ( CLKin: in std_logic;
CLKout: out std_logic);
end clock;
architecture arch of clock is
signal counter: integer:=0;
signal temp : std_logic := '1';
begin
process(CLKin,counter,temp)
begin
if(CLKin'event and CLKin='1') then
counter <=counter+1;
if (counter = 50000000) then
temp <= NOT temp;
counter<=0;
CLKout <= temp;
end if;
end if;
end process;
end arch;
答案 0 :(得分:0)
我认为这是因为你的:
signal counter: integer:=0;
signal temp : std_logic := '1';
合成期间忽略初始值
答案 1 :(得分:0)
我同意Serhii Cookie,这也是该工具试图警告你的内容。初始语句不合成²,用于合成的代码的正确版本必须包含具有此效果的复位信号。 所以你正在寻找类似的东西:
IF reset='0' THEN
-- Reset the counter and assign initial values
signal counter <= 0;
signal temp <= '1';
ELSIF rising_edge(clk) THEN
-- do the actual processing
END IF;
..在您的流程开始时。
²即它仅用于模拟和测试目的,因此被大多数综合工具所忽略。