ALTERA FPGA中實現低於時鍾周期的端口延時


我們知道FPGA/CPLD中的時序邏輯都是以一個時鍾為時間單位,但是有時會需要對某個信號進行低於一個時鍾的延遲,比如用延遲時間來調節SPI等總線中時鍾與數據的建立保持時間,該如何操作?

通過實際驗證可以通過插入LCELL來實現,實際的作用是在信號中間加入緩沖門。以Altera的CPLD EPM570為例,具體方法如下:

例化Lcell模塊,輸入為待延遲信號AD1_CH0_wire,輸出為延遲后的信號AD1_CH0,注意需要使用/* synthesis keep */來保持LCELL不在綜合過程中被優化掉;

    lcell U0_Lcell/* synthesis keep */
    (
        .in(AD1_CH0_wire),//輸入信號
        .out(AD1_CH0)   //延時后的輸出信號
    );

同樣需要進行如下設置保證LCELL不在綜合過程中被優化掉:

為了驗證效果,串聯插入了10個LCELL,綜合后的RTL如下:

通過實際測量,AD1_CH0_wire延時了3ns左右,計算可得在EPM570中加入一個LCELL約延時0.3ns。當然需要注意的是,實際使用中LCELL延時相對固定,但是也會受溫度、器件等因素影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM