1. 如何對vivado時序約束有個很好得理解
字面意思理解所謂約束加些條說白通序約束邏輯綜合器提要求綜合器根據要求進行布局布線FPGA延主要門延走線延(傳輸延)布局布線FPGA邏輯資源布線資源布隨機寄存器另寄存器選擇路徑條延短需要告訴邏輯綜合器設計某條路徑允許延讓綜合器選擇合適布線保證延綜合器根據約束些序要求比較高路徑進行優化要求低布線繞遠路
合理序約束提高FPGA工作頻率另外根據靜態序析看設計否達要求
2. FPGA時序約束的幾種方法(待續)
從最近一段時間工作和學習的成果中,我總結了如下幾種進行時序約束的方法。按照從易到難的順序排列如下: 0. 核心頻率約束 這是最基本的,所以標號為0。 1. 核心頻率約束+時序例外約束 這還不是最完整的時序約束。設計者的思路還局限在FPGA晶元內部。 2. 核心頻率約束+時序例外約束+I/O約束(包括位置、外部走線延時、上下拉電阻、驅動電流強度等等) 這才是最完整的時序約束。FPGA作為PCB上的一個器件,是整個PCB系統時序收斂的一部分。FPGA作為PCB設計的一部分,是需要PCB設計工程師像對待所有COTS器件一樣,閱讀並分析其I/O Timing Diagram的。FPGA不同於COTS器件之處在於,其I/O Timing是可以在設計後期在一定范圍內調整的;雖然如此,最好還是在PCB設計前期給與充分的考慮並歸入設計文檔。 正因為FPGA的I/O Timing會在設計期間發生變化,所以准確地對其進行約束是保證設計穩定可控的重要因素。許多FPGA外部器件在FPGA重新編譯後出現不穩定的問題都有可能是由此引起的。 3. 核心頻率約束+時序例外約束+I/O約束+LogicLock LogicLock是FPGA器件內部的布局約束。從一次成功的時序收斂結果開始,把特定的一組邏輯在FPGA上實現的布局位置和范圍固定下來。相應地,其布線結果和時序收斂結果也就得到了間接的保證。需要注意的是,LogicLock不同於DesignPartition中的Post-fit Netlist。LogicLock的約束是粗粒度的,並且其精度范圍是可調整的;而引入Post-fit Netlist是精確到門級的細粒度約束。 4. 核心頻率約束+時序例外約束+I/O約束+FloorPlan+LogicLock FloorPlan也是FPGA器件內部的布局約束,是LogicLock的一種特例。成功的FloorPlan需要設計者對可能的時序收斂目標作出預計,並可以參考上一次時序成功收斂的結果。FloorPlan給了設計者對布局位置和范圍更多的控制,不能也不可能照搬上一次時序收斂後零散的布局結果,所以對設計者的要求比簡單的LogicLock要高。由於獲得了更多的自主的控制權,時序收斂結果的可重現性也就越高。 5. 核心頻率約束+時序例外約束+I/O約束+寄存器布局約束 寄存器布局約束是精確到寄存器或LE一級的布局約束。設計者通過對設計施加更精準的控制來獲得更可靠的時序收斂過程。
3. 時序約束Warning: Argument -clock with value [get_clocks { SDRAM_CLK }] contains zero elements
http://blog.csdn.net/a2331046/article/details/24292569
4. 怎麼添加時序約束
你好。
根據你的描述:
時序約束在綜合階段進行添加,綜合時會根據設計者添加的約束對cell的選取進行時序和面積的權衡,綜合工具還會利用庫里的模型計算每條路徑的延時
5. fpga時序約束問題,重金感謝呀。。。求大俠幫幫忙。。
這個光看這個也看不到具體信息啊 那你的那個整體報告裡面去點timing constrain ,然後找那些打了叉子或者顯示某個時鍾或者別的什麼的時鍾約束沒過有個NO,如果你做的是相對高速的東西,盡量把那些高速時鍾換成低速的,還有一些不好的編程習慣都有可能造成這樣的結果。
你可以查看一下ISE的幫助裡面有關於全部時鍾約束的類似datasheet的東西,刻意去學暫時沒必要,有什麼查什麼吧。希望對你有幫助
6. FPGA設計中 為什麼要加時序約束
通俗簡單地說,就是因為代碼寫出來的時候,在fpga裡面是隨機資源利用的,換而言之,功能塊資源、寄存器資源、布線資源等資源是隨機分布的,而布線不同路徑導致延時時間不同,這樣的話就會導致競爭冒險的出現,因此,為了避免這種情況,必須對fpga資源布局布線進行時序約束以滿足設計要求。
7. FPGA/CPLD的時序約束是什麼意思
設定的延時是作為一個最大允許值
布線時如果路徑過長就無法通過
8. verilog 時序約束怎麼做
verilog本身不包含時序約束信息
時序約束是用tcl腳本寫的
design compiler在綜合電路時會讀入tcl腳本把約束信息載入到電路上
現在FPGA的綜合工具也只是tcl的時序約束了
9. quartus 11.0 + modelsim 怎麼進行時序模擬求完整教程!!!
一個是時序約束,另一個就是邏輯鎖定。時序約束是按照你的時序要求去布局布線。而邏輯鎖定則是指設計者將某個模塊或者某個網路指定在器件的某個位置。盡管有時序約束,但綜合器也不能保證每次都能達到要求;而只有當邏輯鎖定後,它能保證被鎖定的模塊在下一次綜合不被改變。
事出有因,之前加進來的一個SPI模塊,一開始是正常的,後來陸續在設計中加了一些模塊,綜合後,居然發現SPI模塊工作不正常,奇怪的是,在我備份的幾個版本中,有幾個正常,有幾個又不正常,而在這個過程中SPI模塊從未被修改過。我想一定是綜合器在搗鬼,後來我在SPI正常的版本上查看chip
planner中spi的布局信息,然後將其邏輯鎖定,再添加新的模塊進來,結果發現,SPI果然沒有受到影響。
10. 幾種進行時序約束的方法
從最近一段時間工作和學習的成果中,我總結了如下。按照從易到難的順序排列如下: 0. 核心頻率約束 這是最基本的,所以標號為0。 1. 核心頻率約束+時序例外約束 時序例外約束包括FalsePath、MulticyclePath、MaxDelay、MinDelay。但這還不是最完整的時序約束。如果僅有這些約束的話,說明設計者的思路還局限在FPGA晶元內部。 2. 核心頻率約束+時序例外約束+I/O約束 I/O約束包括引腳分配位置、空閑引腳驅動方式、外部走線延時(InputDelay、OutputDelay)、上下拉電阻、驅動電流強度等。加入I/O約束後的時序約束,才是完整的時序約束。FPGA作為PCB上的一個器件,是整個PCB系統時序收斂的一部分。FPGA作為PCB設計的一部分,是需要PCB設計工程師像對待所有COTS器件一樣,閱讀並分析其I/O Timing Diagram的。FPGA不同於COTS器件之處在於,其I/O Timing是可以在設計後期在一定范圍內調整的;雖然如此,最好還是在PCB設計前期給與充分的考慮並歸入設計文檔。 正因為FPGA的I/O Timing會在設計期間發生變化,所以准確地對其進行約束是保證設計穩定可控的重要因素。許多在FPGA重新編譯後,FPGA對外部器件的操作出現不穩定的問題都有可能是由此引起的。 3. 核心頻率約束+時序例外約束+I/O約束+Post-fit Netlist 引入Post-fit Netlist的過程是從一次成功的時序收斂結果開始,把特定的一組邏輯(Design Partition)在FPGA上實現的布局位置和布線結果(Netlist)固定下來,保證這一布局布線結果可以在新的編譯中重現,相應地,這一組邏輯的時序收斂結果也就得到了保證。這個部分保留上一次編譯結果的過程就是Incremental Compilation,保留的網表類型和保留的程度都可以設置,而不僅僅局限於Post-fit Netlist,從而獲得相應的保留力度和優化效果。由於有了EDA工具的有力支持,雖然是精確到門級的細粒度約束,設計者只須進行一系列設置操作即可,不需要關心布局和布線的具體信息。由於精確到門級的約束內容過於繁多,在qsf文件中保存不下,得到保留的網表可以以Partial Netlist的形式輸出到一個單獨的文件qxp中,配和qsf文件中的粗略配置信息一起完成增量編譯。 4. 核心頻率約束+時序例外約束+I/O約束+LogicLock LogicLock是在FPGA器件底層進行的布局約束。LogicLock的約束是粗粒度的,只規定設計頂層模塊或子模塊可以調整的布局位置和大小(LogicLock Regions)。成功的LogicLock需要設計者對可能的時序收斂目標作出預計,考慮特定邏輯資源(引腳、存儲器、DSP)與LogicLock Region的位置關系對時序的影響,並可以參考上一次時序成功收斂的結果。這一權衡和規劃FPGA底層物理布局的過程就是FloorPlanning。LogicLock給了設計者對布局位置和范圍更多的控制權,可以有效地向EDA工具傳遞設計者的設計意圖,避免EDA工具由於缺乏布局優先順序信息而盲目優化非關鍵路徑。由於模塊在每一次編譯中的布局位置變化被限定在了最優的固定范圍內,時序收斂結果的可重現性也就更高。由於其粗粒度特性,LogicLock的約束信息並不很多,可以在qsf文件中得到保留。 需要注意的是,方法3和4經常可以混合使用,即針對FloorPlanning指定的LogicLock Region,把它作為一個Design Partition進行Incremental Compilation。這是造成上述兩種方法容易混淆的原因。5. 核心頻率約束+時序例外約束+I/O約束+寄存器布局約束 寄存器布局約束是精確到寄存器或LE一級的細粒度布局約束。設計者通過對設計施加精準的控制來獲得可靠的時序收斂結果。對設計中的每一個寄存器手工進行布局位置約束並保證時序收斂是一項浩大的工程,這標志著設計者能夠完全控制設計的物理實現。這是一個理想目標,是不可能在有限的時間內完成的。通常的做法是設計者對設計的局部進行寄存器布局約束並通過實際運行布局布線工具來獲得時序收斂的信息,通過數次迭代逼近預期的時序目標。 不久前我看到過一個這樣的設計:一個子模塊的每一個寄存器都得到了具體的布局位置約束。該模塊的時序收斂也就相應地在每一次重新編譯的過程中得到了保證。經過分析,這一子模塊的設計和約束最初是在原理圖中進行的,在達到時序收斂目標後該設計被轉換為HDL語言描述,相應的約束也保存到了配置文件中 6. 核心頻率約束+時序例外約束+I/O約束+特定路徑延時約束 好的時序約束應該是「引導型」的,而不應該是「強制型」的。通過給出設計中關鍵路徑的時序延遲范圍,把具體而微的工作留給EDA工具在該約束的限定范圍內自由實現。這也是一個理想目標,需要設計者對每一條時序路徑都做到心中有數,需要設計者分清哪些路徑是可以通過核心頻率和簡單的時序例外約束就可以收斂的,哪些路徑是必須制定MaxDelay和MinDelay的,一條也不能遺漏,並且還需要EDA工具「善解人意」的有力支持。設定路徑延時約束就是間接地設定布局布線約束,但是比上述3、4、5的方法更靈活,而且不失其准確性。通過時序約束而不是顯式的布局和網表約束來達到時序收斂才是時序約束的真諦。 記得有網友說過「好的時序是設計出來的,不是約束出來的」,我一直把這句話作為自己進行邏輯設計和時序約束的指導。好的約束必須以好的設計為前提。沒有好的設計,在約束上下再大的功夫也是沒有意義的。不過,通過正確的約束也可以檢查設計的優劣,通過時序分析報告可以檢查出設計上時序考慮不周的地方,從而加以修改。通過幾次「分析—修改—分析」的迭代也可以達到完善設計的目標。應該說,設計是約束的根本,約束是設計的保證,二者是相輔相成的關系。