1)有關時序問題
學習過fpga
的都知道,fpga可以接受的時鐘和所允許的時序遠遠低於
asic
。這是由於
asic
時鐘樹與佈線相對自由,故對於高速率設計解決起來相對容易。對於
xilinx fpga
而言,儘管採用了
90nm
工藝的virtex-4
可以支援的效能高達
500m[1]
,但是其時鐘樹和佈線資源相對固定,因此一旦在編譯和布局佈線的時候處理不當,就會產生時序衝突(
timing violation
)。產生時序衝突的結果,輕則使設計的邏輯與實際布局佈線後的網表不一致,重則導致布局佈線根本無法通過,從而致使驗證無法進行。
2)設計過程中注意時序問題
若希望設計的產品能夠在fpga驗證平台上順利的完成驗證,在設計過程中就需要注意盡量多的使用
fpga
的內部資源,如
dsp48
,乘法器,
ram,
dcm等。 畢竟
ip核提供商最懂它們自己的產品。例如使用
xilinx
工具時,
xilinx
的ise
中配有core generator
這個工具。通過該工具可以生成需要的乘法器。使用這些乘法器來代替普通的乘法器,可以達到滿意的效果。除了乘法器,還可以使用該工具產生
ram和
dcm等。這些直接生成的
ip效能都非常好。
3)綜合過程解決時序問題
使用synplicity公司的
synplify
工具進行綜合,這是業界通常使用的綜合工具之一。選擇該工具最主要的原因在於它與
xilinx
的fpga
配合的很好。有人做過實驗,通過該工具綜合產生結果報表,再通過
ise產生真實布局佈線後的報表。對這兩個報表的時序估計部分進行對比,我們發現兩者之間驚人的相似,最差路徑之間的差別不超過
1ns。
4)布局佈線階段解決時序問題
當綜合工作完成,進入布局佈線的階段後,仍然有兩種方法可以改善邏輯時序問題。第一種是手動增加並調整bufg(
global clock buffer
)。bufg
是xilinx
的全域性時鐘資源,所有時鐘樹的起點都是
bufg
,位於fpga
的北極和南極。當佈線後仍有負的
slack
時,有可能是某些當作時鐘使用的訊號沒有被放上時鐘樹,此時就要手動將這些訊號放上
bufg
。若遇到門控時鐘,還應該使用
bufgmux
資源。門控時鐘,是主要為了降低功耗。
門控時鐘(clockgating),通過關閉晶元上暫時用不到的功能和它的時鐘,可以節省電能。
門控時鐘(英語:clockgating),「門控」是指乙個時鐘訊號與另外乙個非時鐘訊號作邏輯輸出的時鐘。例如,用乙個控制訊號「與」乙個
clk,可以控制
clk的起作用時間。可以通過關閉晶元上暫時用不到的功能和它的時鐘,從而實現節省電流消耗的目的。門控時鐘是低功耗設計中的一種最有效的方法。
門控時鐘是一種在同步時序邏輯電路的一種時間脈衝訊號技術,可以降低晶元功耗。門控時鐘通過在電路中增加額外的邏輯單元、優化時鐘樹結構來節省電能。
可以通過以下幾種方式在設計中新增門控時鐘邏輯:
通過暫存器傳輸級程式設計中的條件選擇來實現使能訊號,從而在邏輯綜合過程自動被翻譯為門控時鐘;
通過例項化特殊的門控時鐘單元,來把門控時鐘插入到設計中去;
使用專門的門控時鐘工具新增。
5)**一致性
對於經過fpga驗證的**而言,最擔心的是經過驗證的**和進行流片的**不一致。導致這個現象產生的原因是多種的,其中版本控制和由於
fpga
、asic
專用器件不一致而引起的問題是最常見的兩個問題。
對於經過fpga驗證的**,為了能夠使被測**可以順利的在
fpga
進行驗證,一般都採取了
fpga
專用的器件。這些
fpga
專用器件在
asic
中是不存在的。為了解決這個問題,通常採取
"假**"(
fake code
)解決。顧名思義,
"假**
"就是在**中保留
fpga
專用器件的名稱和介面,但是在
fpga
和asic
中使用不同的器件核心。該器件若在
fpga
下使用則使用
fpga
專用器件,若在
asic
下使用,則使用自己編寫的**。儘管這種做法仍然無法保證**的完全一致,但是卻最大限度的避免了**的差別。
FPGA實戰演練邏輯篇 FPGA板級設計五要素
第一次寫部落格,排版也不太會,見諒!電源電路分為三部分包括 核心電壓 i o電壓 輔助電壓 一般為固定值 io引腳工作所需參考電壓 fpga的io分為多個bank,每乙個板塊的io引腳電壓相同,不同bank電壓可以不同 除了核心電壓和io電壓,fpga工作所需的其他電壓叫做輔助電壓 pll和dll ...
帶你了解FPGA 3 板級電路
2.fpga核心電路 fpga的主要構成可以分為5個部分,分別是電源電路,時鐘電路,復位電路,配置電路以及外設電路。1.1 電源電路 fpga器件的電壓需求分為3類 核心電壓 i o電壓與輔助電壓 fpga和asic最大的不同是fpga所有的可用訊號引腳基本都可以作為普通i o使用,其電平值的高低完...
lvds在FPGA中的使用4 板級除錯
好了,進入正是,說說lvds除錯。如下圖,採用軟硬結合板設計,左側為fpga主機板部分,右側主要是一些介面,包括camlink vga,中間採用柔性電路板相連。首先,按照 3的程式除錯lvds介面,使用bank5的差分管腳輸出lvds訊號,結果採集卡採不到圖,這下壞了,最開始懷疑引腳分配不正確,一番...