基於查詢表的FPGA的面積和時序估算

2021-10-03 16:44:47 字數 3089 閱讀 7527

原**題目為:《area and timing estimation for lookup table based fpgas》

有效的面積和時序估計技術在高階綜合(hls)中的重要性是眾所周知的,因為它允許更有效地探索設計空間,同時為hls工具提供**特定技術工具對設計空間的影響的能力。以前的許多任務作都集中在僅基於門數和/或文字計數使用非常簡單的成本模型的估算技術上。這些模型不夠準確,不足以進行有效的設計空間探索,因為互連的影響確實可能主導最終的設計成本。當設計以現場可程式設計門陣列(fpga)技術為目標時,情況會變得更糟,因為佈線延遲可能佔整個設計延遲的60%。在本文中,我們提出了一種基於查詢表的fpga估計面積和時序的方法,該方法不僅考慮了門面積和延遲,還考慮了佈線效果。我們選擇xilinxx c4000系列作為我們的主要產品,因為它們很受歡迎。我們測試了具有多個基準的估算器,結果表明我們可以準確地獲得準確的估算和時間估算。

縮短開發周期的能力使得現場可程式設計門陣列(fpga)成為實現專用積體電路(asic)的標準單元和掩模程式設計門陣列(mpga)的一種有吸引力的替代方案。另一方面,高階綜合(hls)通過允許使用者從行為規範開始,成為縮短設計時間的首選方法。因此,這兩個概念的結合為從乙個想法到最終產品的快速原型提供了乙個理想的試驗台。

hls從行為規範到面積和延遲的約束來生成體系結構。 隨後,fpga的設計過程可以分解為四個主要步驟,如圖1(a)所示。 首先,分割槽(或技術對映)包括查詢表(lut)對映和可配置邏輯塊(con gurable logic block ,clb)構造,將傳入的邏輯劃分為clb的網表。 然後,布局確定了fpga陣列中clb的良好分配。一旦知道布局,佈線就決定了每個網路的佈線資源和佈線型別。最後,時序優化通過對關鍵路徑上的網路進行重新佈線來提高布局的效能。

圖1:針對fpga的設計流程(a)沒有估算的設計流程(b)有估算的設計流程

這四個步驟使設計非常不可**,並且最終的設計可能會違反約束條件。 原因是在大多數fpga設計中,hls中未考慮的佈線延遲可能佔整個設計延遲的60%。 當設計過程從使用hls的行為級別開始時,問題變得尤為嚴重。 在這種情況下,將生成大量候選rtl設計,必須對其進行評估以選擇最佳設計。 不考慮布局影響的抽象成本措施可能會導致設計欠佳。 因此,設計過程可能必須經過幾次迭代才能達到可接受的解決方案。 由於布局和佈線通常很耗時,因此可能會抵消fpga和hls的周轉時間優勢。的確,在[1]中已經報道了這種常見情況。為了避免不必要的迭代並縮短設計週期,在實際經歷圖1(b)之前,讓估算器快速給出面積和時序**非常有幫助。 估算器有乙個更真實,更準確的模型非常重要,該模型不僅要考慮門面積和時序,還要考慮佈線效果。

由xilinx實現的一類重要的fpga使用lut來實現組合邏輯,稱為基於lut的fpga。 xilinx具有基於lut的fpga的三個邏輯單元陣列系列,包括xc2000,xc3000和xc4000。 它們具有共同的結構:被可配置互連圍繞的clb陣列,並且它們在邏輯和互鏈結構的細節上也有所不同。 在本文中,我們將專注於基於lut的fpga的面積和時序估計。 具體來說,由於xilinx xc4000系列的受歡迎程度,我們將其作為目標。如前所述,我們的目標應用領域是hls,因為這是支援高質量快速原型環境最需要快速和準確評估的領域。我們的評估既可以應用於晶元級(在物理設計之前將整個設計轉換為邏輯網表),也可以應用於元件級(需要評估不同的rt級元件以支援真正的分層方法[2])。

xilinx xc4000由一系列clb(con gurable logic block ,clb)組成,這些clb嵌入可配置的互鏈結構中,並被可配置的i / o塊圍繞,如圖2(a)所示。 xilinx xc4000系列由十個成員組成。 家庭成員的clb數量(從8x8到24x24)和i / o塊(從64到192)不等。 典型的門容量從2000到13000不等。

xilinx xc4000體系結構(a)xc4000(b)簡化的clb架構(c)lut實現x = mn + np.

xilinx xc4000 clb主要由兩個4輸入lut(分別稱為f-lut和g-lut)和乙個3輸入lut(稱為h-lut)組成,如圖2(b)所示。 k輸入lut是可以實現k變數的任何布林函式的儲存器。 k個輸入用於定址2

k2^k

2kx1位儲存器,該儲存器儲存布林函式的真值表。 例如,圖2(c)說明了用於實現函式x = mn + np的3輸入lut的結構。 函式的真值表儲存在8x1位儲存器中,由變數m,n,p控制的8比1多路復用器選擇輸出值x。 所有clb輸出都可以是直接,反相或暫存器的。

請注意,乙個xc4000 clb儘管可以接受9個不同的輸入,但並不等同於9個輸入的lut。 乙個9輸入lut可以實現9個不同變數的任何功能,而乙個xc4000的clb可以實現5個不同輸入的任何功能以及6到9個變數的某些功能。

xilinx xc4000路由資源通過交換矩陣連線。 有8個(較小的裝置為6個)交叉點,每個交叉點包含6個可程式設計的互連點(pip)。 如圖3(c)所示,pip是由配置儲存單元控制的傳輸電晶體。

xilinx xc4000路由資源包括如圖3(a)所示的單長(通用)線路(sl)、如圖3(b)所示的雙倍長線路(dl)和如圖3(b)所示的長線路(lls)。lls執行晶元的寬度或高度,延遲變化可以忽略不計。sls連線每對相鄰的交換矩陣1和dls旁路交替交換盒2。因此,網路的可布線性不再是其長度和佈線區域擁塞的簡單函式。另一方面,由於訊號延遲更多地取決於訊號通過的pip的數量而不是段的長度,所以雙長度線允許訊號在相同的時間量內行進兩倍的距離,或者允許訊號在與單長線3相同的時間內行進相同的距離。導線的延遲也不再是其長度的簡單函式。

遵循xilinx的標準方法,我們假設由hls生成的rt級設計已經轉換為邏輯netlist4。在給定結構邏輯級網表描述的情況下,fpga面積估計的目標是根據clb的數量來**設計面積。然後,fpga定時估計器接受具有由面積估計**的布局資訊的網表,以**定時。此外,這兩種估計方案都必須快速和準確,這一點至關重要。

讀到這個地步 然後後面大致看了看 這篇文章的方向不是我這個方向,所以不再翻譯了

FPGA中的面積優化

面積優化,就是在實現預定功能的情況下,使用更小的面積。通過優化,可以使設計能夠執行在資源較少的平台上,節約成本,也可以為其他設計提供面積資源。對於複雜邏輯操作,輸入到輸出的對稱性越好,往往中間邏輯就越少,面積越小。一般優化中,可以將不關注中間訊號的設計的邏輯優化掉,實現對稱結構。流水設計可以提高時序...

基於FPGA的秒錶

功能 四位數碼管顯示,從零開始計數,前兩位顯示秒 0 59 後兩位顯示0.01秒 0 99 計滿後從零開始,有開始鍵 暫停鍵 復位鍵。當第一次按下開始鍵,秒錶從初始開始計數,led顯示器上顯示當前計時值 當緊按下 按住 暫停鍵時,秒錶暫停計時,led上顯示當前計時值,放開則繼續計時 當按下復位鍵時,...

基於物件的跨表查詢

正向查詢 按欄位 publish 查詢主鍵為1的書籍的出版社所在的城市 book obj book.objects.filter pk 1 first book obj.publish 是主鍵為1的書籍物件關聯的出版社物件 print book obj.publish.city 反向查詢 按表名 b...