文章 ID: 000078174 內容類型: 疑難排解 最近查看日期: 2014 年 10 月 13 日

為什麼通過FPGA邏輯將 HPS 周邊時鐘連接到外部引腳會導致 Quartus® 擬合錯誤?

環境

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

    以下 HPS 周邊頻率可路由至FPGA邏輯:

    • emac0_md_clk
    • emac0_gtx_clk
    • emac1_md_clk
    • emac1_gtx_clk
    • qspi_sclk_out
    • spim0_sclk_out
    • spim1_sclk_out
    • i2c0_clk
    • i2c1_clk
    • i2c2_clk
    • i2c3_clk

    由於 Quartus II 軟體版本 13.0 及更高版本存在問題,如果這些時鐘直接連接到外部 FPGA 引腳,Quartus® fit 可能會產生錯誤訊息。以下是連接到外部引腳的spim1_sclk_out信號示例:

    錯誤 (14566):由於與現有約束衝突,無法放置 1 個週邊元件(1 個自動升級的頻率驅動程式)

    錯誤 (175020):屬於 Arria V/Cyclone V 硬核處理器系統一部分的自動提升頻率驅動程式受到非法約束 ghrd_hps_0到區域 (92, 67) 到 (183, 137):區域中沒有有效位置

    資訊 (14596): 有關故障元件的資訊:

    資訊(175028):自動提升的時鐘驅動程式名稱:ghrd:soc_inst|ghrd_hps_0:hps_0|ghrd_hps_0_fpga_interfaces:fpga_interfaces|spim1_sclk_out[0]~CLKENA

    有關這些時鐘的更多資訊,請參閱《Cyclone® V 或 Arria® V 裝置手冊,第 3 卷:硬核處理器系統技術參考手冊》(HTTP://www.altera.com/literature/hb/cyclone-v/cv_5v4.pdf,第 27-12 頁)的「外設FPGA頻率」部分。

    解決方法

    為避免這些錯誤訊息,必須先通過LUT路由時鐘訊號。這可以通過具現化適用于您的設備系列的lcell_comb基元來實現。以下是 Arria® V SoC spim1_sclk_out 時鐘的lcell_comb Verilog 具現化示例:

    arriav_lcell_comb wirelut( .dataa(spim1_sclk_from_hps), .combout(spim1_sclk_to_pin) );
    defparam wirelut.lut_mask = 64\'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    defparam wirelut.dont_touch = 「on」;

    在上面的示例中,spim1_sclk_from_hps信號從 HPS 實例連接到 spim1_sclk_out 輸出埠。spim1_sclk_to_pin信號可以連接到頂層輸出埠並分配給FPGA引腳。

    使用 lcell_comb 基元將最大限度地減少資源。使用一個小的推斷布林組合函數也將避免此錯誤。使用 Boolean 函數將避免具現化基元,但可能會導致資源使用率略高。

    以下是顯示推斷布林值的示例 Verilog 代碼,該值還通過使用低電平有效重定信號對時鐘進行 AND來避免錯誤(導致推斷的 LUT 實例):

    分配spim1_sclk_to_pin = spim1_sclk_from_hps & 重置;

    此問題已從 Quartus® II 軟體的 15.1 版開始修復。

    相關產品

    本文章適用於 5 產品

    Arria® V ST SoC FPGA
    Arria® V SX SoC FPGA
    Cyclone® V SE SoC FPGA
    Cyclone® V ST SoC FPGA
    Cyclone® V SX SoC FPGA

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