xilinxeth時序約束
① Xilinx ISE 編譯時,place & route 很慢.
個人看法,有兩種可能:
1. 你的工程佔用資源較多,隨著資源的消耗,如果工程很大,ISE需要反復將之前布線好的部分進行優化,以騰出空間給後面的邏輯,所以越到後來布通所花費的時間就越長;
2. 你的約束中有較為苛刻或是不合理的時序約束,ISE需要花大量的優化計算去滿足你的約束。
歡迎討論。
② xilinx FPGA 綜合 布局布線都是幹了什麼事情啊
1.post-快速的意思,這個問題我不太確定
2.translate:轉換的意思,就是將vhdl或者verilog轉換為器件元語,選擇不同的器件,則轉換結果是不一樣的
map:布局,將轉換出來的原件按一定規則擺放在fpga內部,原則是盡量分散,這個可以用區域約束來控制
route:布線,根據map的結果,計算fpga內部的最優連線,努力程度設置的不一樣,結果一般是不一樣的
behavioural 就是我們一般說的行為模擬或者功能模擬,也叫前仿,其他3種都叫後仿,這個模擬只是對功能進行測試,不包含任何門電路及線路的延遲信息,也就是說,功能模擬通過只代表功能正確性,但如果代碼書寫有不合理的地方,就有可能有因為布線導致的時序問題
順便說一下,行為模擬只需要對代碼進行synthesize通過就可以了,不需要其他步驟
post-translate指的是對代碼綜合和translate後,再進行模擬,這個模擬主要是加入了門電路的延遲信息,並沒有計算布線的延遲
post-translate模擬需要執行translate後才能執行
post-map,同上,對工程執行綜合、translate和map後,再進行模擬,這個模擬會將門電路的延遲和路徑延遲計算進去,但需要注意,由於沒有route,因此這里的路徑延遲是理論計算出來的,一般實際布線的延遲會更大
post-route,也就是對工程進行綜合、translate、map和route後,將所有真實的延遲信息計算進去,然後再進行模擬
3.behave是前仿,也叫功仿,其他幾個都是後仿
4.時序約束主要是用來控制工程綜合結果的,你不加時序約束,ise也會自動添加一個作為執行的依據。也許不加綜合的結果能通過,但是想要可靠的話,還是加上比較好,這樣report是比較可信的
③ FPGA的PLL時序約束應該怎麼寫
有人推薦更改pin的電氣類型「把出現錯誤的引腳屬性改為passive即可。」 你怎麼確定你的錯誤是CLK1~CLK3這三個引腳懸空造成的呢? 把晶振接到pll,
④ xilinx的fpga哪些資源可以占滿
頻率不高的話都可以占滿,不論資源佔用多少只要能滿足時序約束就行
⑤ 哪位好心的大俠教我如何編寫fpga中具體項目的時序約束文件SDC嗎
quartus的SDC約束就跟xilinx的ucf約束文件一樣,如果SDC資料較少的話,可以看看UCF。
主要用途一般是:
一從輸入埠到寄存器:
二寄存器到寄存器 通過設定時鍾頻率方式進行約束
三寄存器到輸出
四創建時鍾約束命令
五時鍾延遲約束
六時鍾抖動約束
七輸入和輸出延遲約束
八不關心數據傳遞路徑和多拍路徑
⑥ xilinx FPGA 前模擬後模擬不同
第一個問題:1,優化大量的組合邏輯,用時序邏輯代替。2,在關鍵路徑上,多插入流水。3,時序約束加上去,找出時序違例的地方,優化之。4,ise工具的綜合,布局布線的設置中,設置為速度優先
第二個問題:在綜合的時候,工具會修改用戶的信號名,僅在修改綜合工具的設置情況下,有兩種信號不會修改:1,埠信號,2,寄存器信號。你這種情況最好把「保持層次結構」也設置上
⑦ Xilinx ISE 里的程序 怎麼移植到 Quartus II 下
一個是時序約束,另一個就是邏輯鎖定。時序約束是按照你的時序要求去布局布線。而邏輯鎖定則是指設計者將某個模塊或者某個網路指定在器件的某個位置。盡管有時序約束,但綜合器也不能保證每次都能達到要求;而只有當邏輯鎖定後,它能保證被鎖定的模塊在下一次綜合不被改變。
事出有因,之前加進來的一個SPI模塊,一開始是正常的,後來陸續在設計中加了一些模塊,綜合後,居然發現SPI模塊工作不正常,奇怪的是,在我備份的幾個版本中,有幾個正常,有幾個又不正常,而在這個過程中SPI模塊從未被修改過。我想一定是綜合器在搗鬼,後來我在SPI正常的版本上查看chip
planner中spi的布局信息,然後將其邏輯鎖定,再添加新的模塊進來,結果發現,SPI果然沒有受到影響。
⑧ 對xilinx FPGA的約束文件的一點疑問:{NET|INST|PIN} "signal_name" Attribute;,這幾個到底怎麼理解
首先INST是例化的意思,NET是網路名的意思,PIN是管腳的意思。
INST "I_ADC1_PB<0>" TNM = ADC1_PB;
------------------------------------------------------------
這是將I_ADC1_PB<0>這個信號約束到名為ADC1_PB的組里,然後可以對整個組的信號進行時序約束
------------------------------------------------------------
NET gpio_char_lcd<3> LOC = AF12;
------------------------------------------------------------
這是將網路名為gpio_char_lcd<3>的信號連接到實際管腳名為AF12的管腳上去
⑨ 求問,xilinx的門控時鍾怎麼做時序約束
時序約束是根據你的代碼綜合出來的實際寄存器做的。 因為你的代碼裡面後面的寄存器沒有真正的使用,所以XST給你修剪掉了。 時序約束所以沒有這些寄存器,於是找不到。 當然找不到的就是沒有用的,你也不必約束。
⑩ 關於quartus時序約束方法
占空比約束沒問題 不寫也可以 預設就是50%
雖然都是用於pin的約束 tsu/th和offset不是一回事(offset是io的數據和時鍾的延遲 tsu/th是晶元里的dff的數據和時鍾的延遲關系 不考慮clock skew的話 應該滿足offset+tsu+delay <= T) 如果是registered-in/registered-out的設計 沒必要加tsu/th約束了
原則上講hold time不需要設的 這就是工藝的一個參數 選擇了器件以及環境條件以後 工具自然獲取了該參數
不管哪個廠家的fpga 肯定hold violation都少於setup violation的
如果出現這種情況 一般都是時鍾有問題 查一下clk是否使用了全局時鍾資源 再查一下TimeQuest選項Common Clock Path Pessimism Removal是否使能