为什么Quartus®II4.1和4.1 SP1中的计数器控制逻辑生成错误?-Altera-Intel社区-FPGA CPLD-ChipDebug

为什么Quartus®II4.1和4.1 SP1中的计数器控制逻辑生成错误?

如果满足以下条件,则由于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; 
请登录后发表评论

    没有回复内容