(原創)如何在quartus下做邏輯鎖定(quartus,邏輯鎖定)


摘要:

  當你的設計做得越來越大,性能要求越來越高的時候,你就會發現,之前跑得好好的模塊,怎么突然間不行了,其實這就是約束的問題,FPGA內部的布局布線就像我們畫PCB時的自動布線,如果沒有規則設置,那么軟件將不能保證你能達到多大的Fmax,而且當你的設計變更的時候,其它沒有改動的模塊也會在重新綜合后受到影響。

正文:

  有兩種方法來解決發生的這種意外,一個是時序約束,另一個就是邏輯鎖定。時序約束是按照你的時序要求去布局布線。而邏輯鎖定則是指設計者將某個模塊或者某個網絡指定在器件的某個位置。盡管有時序約束,但綜合器也不能保證每次都能達到要求;而只有當邏輯鎖定后,它能保證被鎖定的模塊在下一次綜合不被改變。

  事出有因,之前加進來的一個SPI模塊,一開始是正常的,后來陸續在設計中加了一些模塊,綜合后,居然發現SPI模塊工作不正常,奇怪的是,在我備份的幾個版本中,有幾個正常,有幾個又不正常,而在這個過程中SPI模塊從未被修改過。我想一定是綜合器在搗鬼,后來我在SPI正常的版本上查看chip planner中spi的布局信息,然后將其邏輯鎖定,再添加新的模塊進來,結果發現,SPI果然沒有受到影響。

  下面在11.1 sp2版本下,介紹這個實例

  首先編譯SPI正常的那個工程,然后查看spi在chip planner中的位置

  如下圖

  然后創建邏輯鎖定

  在chip planner中選擇spi鎖定的區域

 

  選擇邏輯鎖定區域

  綜合后,查看結果如下:

  在logiclock regions window中可設置類型及屬性

  Logiclock的區域類型

  有時候,並不知道邏輯鎖定區域應該放在哪里才算合適,這可以跟據器件pin的位置來安排,盡量保證每個模塊集中放置,相關的模塊也集中放置,這樣綜合器綜合出來的效果都會要好一些。

  

結語:

  如果當邏輯沒問題,添加了時序約束,但仍不能滿足時,為了保證系統能穩定的工作,邏輯鎖定不失為一個好方法。


免責聲明!

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



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