如果符合下列條件,Quartus II 軟體版本 4.1 和 4.1 SP1 出現問題,因此無法產生控制邏輯:
- 在合成過程中,您會即時推斷lpm_counter兆功能,或是從 HDL 代碼推斷出lpm_counter兆功能
- 您設計的計數器同時使用非同步預設和同步清除訊號
- 您會編譯針對Stratix®、Stratix GX、Cyclone®、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 '1');
elsif rising_edge(clk) then
if (clr = '1') then
counter '0');
else
counter