修复语句不可合成,因为它在NOT(时钟边缘)条件下不保持其值

时间:2018-05-08 08:16:30

标签: vhdl fpga synthesize

--Signal declaration
architecture Behavioral of Traffic_Light_Change is
signal State_A: STD_LOGIC;
signal segmentA : STD_LOGIC_VECTOR (0 to 6);
signal segmentB : STD_LOGIC_VECTOR (0 to 6);
signal counter : integer range 0 to 50000000:= 0;
signal State_T: std_logic;
begin
-- Switching anodes
anode_switching: process (clk_in, segmentA, segmentB)
begin 
if(rising_edge(clk_in)) then */ Line 78 error */ 
    State_A <= '1'; 
elsif(falling_edge(clk_in)) then
    State_A <= '0';
end if;
end process anode_switching;

您好我在尝试合成代码时遇到此错误。 “78行语句不可综合,因为它在NOT(时钟边缘)条件下不能保持其值。”我在这里做错了什么导致这种情况发生?

1 个答案:

答案 0 :(得分:0)

综合是将HDL代码转换为硬件的过程。您的代码无法转换为硬件,因为State_A在时钟的两个边沿都发生了变化。你会如何在硬件中实现这种行为?

请参阅my answer here