如果满足以下条件,则由于Quartus II软件4.1和4.1 SP1中的问题而错误地生成控制逻辑:
- 您实例化lpm_counter宏功能或在综合期间从您的HDL代码推断出lpm_counter宏功能
- 您的设计中的计数器使用异步预设和同步清除信号
- 您编译设计目标的Stratix®,的Stratix GX,旋风®,MAX®II,或者HardCopy Stratix器件
不正确的行为是由于lpm_counter宏功能的清除框实现的问题。如果您的设计中有一个同时使用异步预设和同步清除信号的计数器,请避免此问题,将lpm_counter.tdf文件从< Quartus II安装目录 > \ libraries \ megafunctions目录复制到项目目录。
从Quartus II软件版本4.2开始修复此问题。
以下是Quartus II软件4.1和4.1 SP1中错误实现的代码示例。在此示例中, clr
信号在最终实现中被删除。
process (clk, clr, preset) is begin if (preset = '0') then counter <= (others => '1'); elsif rising_edge(clk) then if (clr = '1') then counter <= (others => '0'); else counter <= counter + 1; end if; end if; end process;
process (clk, clr, preset) is begin if (preset = '0') then counter <= (others => '1'); elsif rising_edge(clk) then if (clr = '1') then counter <= (others => '0'); else counter <= counter + 1; end if; end if; end process;
没有回复内容