復用器重構(gòu)降低FPGA成本
關(guān)鍵詞: FPGA;復用器;重構(gòu);重新編碼;總線;邏輯優(yōu)化;綜合
1. 引言
--- 復用器是數(shù)據(jù)通道常用的構(gòu)建模塊,被廣泛應用在處理器[1]、處理器總線、網(wǎng)絡(luò)交換,甚至是資源共享的DSP設(shè)計中。據(jù)估計,復用器一般要占用一個FPGA設(shè)計[2] 25%以上的面積。因此,優(yōu)化FPGA設(shè)計的關(guān)鍵在于怎樣優(yōu)化復用器。
--- 本文介紹了一種新的復用器重構(gòu)算法,該算法減小了復用器在基于4輸入查找表(4-LUT)FPGA體系結(jié)構(gòu)中所占用的面積?;鶞蕼y試結(jié)果表明復用器平均減少了17%,在一些設(shè)計中,4-LUT整體減少20%。
--- 2.1節(jié)闡述了復用器是如何由行為級VHDL[4]或Verilog[5]代碼產(chǎn)生的,2.2和2.3節(jié)闡述復用器樹和復用器總線在設(shè)計中是怎樣生成的。2.4節(jié)說明這些結(jié)構(gòu)怎樣由4-LUT實現(xiàn),闡述如何采用兩個4-LUT有效實現(xiàn)一個4:1二進制復用器。
--- 第3節(jié)介紹了一種叫做壓縮的新技術(shù),該技術(shù)附加一些控制邏輯,將多個2:1復用器重新組合為有效的4:1復用器,從而減少了為總線上每一個比特位實現(xiàn)復用器所需要的4-LUT數(shù)量,所附加的控制邏輯代價由整個總線來分擔。優(yōu)化復用器總線是復用器重構(gòu)算法的核心。
--- 4.1節(jié)闡述復用器重構(gòu)算法如何構(gòu)建設(shè)計中的復用器樹總線。4.2節(jié)的重構(gòu)方法用于執(zhí)行4.3節(jié)中定義的均衡算法。均衡增加了由壓縮生成的有效4:1復用器的數(shù)量。
--- 第5節(jié)總結(jié)了在Altera Quartus II集成綜合中運行的整個算法。第6節(jié)列出了來自120個Altera真實用戶設(shè)計實例的基準測試結(jié)果,測試表明面積減少超過20%,平均節(jié)省了4.2%。
2. 背景知識
--- 2.1 復用器在設(shè)計中是怎樣實現(xiàn)的
--- 行為級HDL設(shè)計中的任何條件代碼通常會綜合為復用器。本節(jié)闡述兩個最常用的復用器生成代碼實例。
--- 圖1是VHDL的case聲明及其2:1復用器樹的實現(xiàn)。采用Verilog case聲明的“parallel case”指令[5]可產(chǎn)生相似的結(jié)果。
圖1
--- 注意,并不是所有的case聲明都能將可能的事件描述清楚,需要依靠“default”或者“others”條件來進一步說明。在這些情況下,可以繼續(xù)將case聲明表征為2:1復用器樹,但是這種樹結(jié)構(gòu)可能達不到平衡。
--- 圖2顯示了“if-then-else”聲明是怎樣產(chǎn)生一個2:1復用器鏈的。Verilog的“?:”和非平行cases可同樣產(chǎn)生相似的結(jié)構(gòu)。注意,復用器鏈確保如果第一個if條件為“真”,將選擇“a”數(shù)據(jù)輸入,而復用器其他部分將被忽略。
--- 本文闡述的復用器重構(gòu)算法應用于2:1復用器。綜合工具由行為級代碼開始通常會生成較大的復用器。較大的復用器總是被分解為2:1復用器樹,如何實現(xiàn)這種分解已經(jīng)超出本文討論范圍。
圖2 if-then-else聲明生成的邏輯
圖3 HDL生成的復用器材
圖4 生成復用器總線
評論