文章 ID: 000074592 內容類型: 疑難排解 最近查看日期: 2012 年 09 月 04 日

為什麼 Quartus II 軟體無法正確合成 SystemVerilog 中已簽名的陣列變數?

環境

  • Intel® Quartus® II 訂閱版
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    由於 Quartus® II 軟體的問題,SystemVerilog 中已簽名的陣列變數可能無法正確合成。如果索引範圍未明確指定,將一維陣列變數指派至已簽名的陣列變數時,可能會出現此問題。

    例如,Quartus II 軟體可能會錯誤地合成下列代碼:

    logic clk;
    logic signed [3:0][31:0] packed_array_variable;
    logic signed [31:0] array_variable;

    always_ff @ (posedge clk)
        packed_array_variable[0]
    解決方法

    為了解決這個問題,在將一維陣列變數指派給大量陣列變數時,明確宣告索引範圍。

    例如,在上述代碼中,將最後一行變更為:

        packed_array_variable[0][31:0]

    相關產品

    本文章適用於 1 產品

    Intel® 可程式裝置

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。