譯者? 君謙? 在此特別鳴謝!
本文摘自《開源處理器內(nèi)部—RISC-V簡介》一書,其經(jīng)過格式化和輕編輯,內(nèi)容和頁面布局達(dá)到Elektor期刊的標(biāo)準(zhǔn)。FPGA技術(shù)與(V)HDL的結(jié)合在電子專家中很受歡迎,RISC-V為專業(yè)應(yīng)用增加了開源途徑。在本文中,我們測試了一些在Elektor的“Alchitry”系列的Lattice和 Xilinx FPGA板上運(yùn)行的示例應(yīng)用程序的并行比較以及結(jié)果。
過去,在 FPGA工具流中設(shè)置項(xiàng)目是一項(xiàng)艱巨的任務(wù)。隨著技術(shù)趨于成熟,這種設(shè)置變得簡單許多。在這里的例子中大部分工作已經(jīng)完成。值得注意的是,大型項(xiàng)目或最大限度利用FPGA功能的項(xiàng)目不可避免地會(huì)變得復(fù)雜得多。
具體到Lattice和 Xilinx,除了為項(xiàng)目選擇合適的FPGA目標(biāo)之外,只需要在工具中鏈接到3個(gè)文件。在這種簡化的方法中,所有的項(xiàng)目文件都需要在同一個(gè)目錄中。建議讀者閱讀FPGA的Alchitry教程軟件安裝和項(xiàng)目設(shè)置,這里僅僅涉及基本的細(xì)節(jié)。
1??Lattice( Alchitry Cu)注意事項(xiàng) ? ?
該開發(fā)板使用的FPGA需要 Lattice iCEcube2軟件。這是一款成熟的產(chǎn)品,沒有太多花哨的功能,但有幾點(diǎn)需要注意:
①?確保使用正確的設(shè)備選項(xiàng)設(shè)置項(xiàng)目。Alchitry Cu使用CB132封裝中的 iCE4O系列HX8K器件,所有I/O組都使用3.3V電源。
②?只有yrv_alchitry.v文件需要作為設(shè)計(jì)文件輸入,因?yàn)樗衅渌O(shè)計(jì)文件將自動(dòng)以正確的順序包含在內(nèi)。
③?對于合成工具﹐需確保選擇Lattice LSE合成。邏輯綜合期間不需要約束文件。
④綜合完成后,在運(yùn)行其余工具之前,yrv_ alchitry.pc/pin約束文件和 timing. sdc時(shí)序約束文件需要被鏈接。各種日志文件中會(huì)有許多警告,但是它們都沒有重要到需要采取任何措施。
2??Xilinx ( Alchitry Au和Au+)注意事項(xiàng) ? ?
在這些開發(fā)板上使用的FPGA需要Xilinx Vivado軟件。這是一個(gè)非常復(fù)雜的產(chǎn)品,本項(xiàng)目僅使用這個(gè)軟件的一小部分功能。這里有一些要記住的事情:
①?只有yrv_alchitry.v文件需要作為設(shè)計(jì)文件輸入。
②?只有yrv_alchitry.mdc約束文件是必需的。該文件包含引腳約束、時(shí)序約束以及編程電壓規(guī)格。
③?正確的器件選項(xiàng)是用于Au板的xc7a35tftg256 -i和用于Au+板的xc7aiootftgzS6 -i。
在這些設(shè)備的日志文件中有更多的警告﹐同樣,它們都沒有重要到需要采取任何措施。
3??FPGA結(jié)果 ? ?
該示例項(xiàng)目已在所有3種目標(biāo)FPGA開發(fā)板上實(shí)施,具體結(jié)果將在以下部分介紹。在對一些結(jié)果進(jìn)行并列比較時(shí)是很有趣的。表1顯示了100 MHz分頻器的報(bào)告時(shí)鐘速度。
100 MHz分頻器設(shè)計(jì)用于最大速度,觸發(fā)器之間只有一級邏輯,這意味著這個(gè)結(jié)果應(yīng)該代表技術(shù)的能力。如果報(bào)道屬實(shí)﹐點(diǎn)陣設(shè)備的速度令人印象深刻。最有趣的是,隨著邏輯綜合到邏輯布局再到最終布線結(jié)果,報(bào)告的速度變得更快,而且可能更準(zhǔn)確。雖然最終的性能比最初的預(yù)期值要好,但是相差兩倍是不理想的,因?yàn)檫@可能導(dǎo)致錯(cuò)誤地將其作為一個(gè)不可行的項(xiàng)目而放棄。
Xilinx工具不會(huì)在邏輯布局時(shí)給出單獨(dú)的速度估計(jì),但邏輯綜合和最終結(jié)果之間報(bào)告的速度幾乎相同。從設(shè)計(jì)師的角度來看,這是首選。
表2顯示了項(xiàng)目所需的資源以及CPU本身的最大時(shí)鐘頻率。這些結(jié)果不包括RISC-V特權(quán)架構(gòu)中的任何64位計(jì)數(shù)器。
表2的第二行說明了為什么比較FPGA結(jié)果會(huì)很復(fù)雜。從表中可以看出,Xilinx實(shí)現(xiàn)所需的資源不到1attice實(shí)現(xiàn)所需資源的一半﹐但是Xilinx邏輯無件包含的邏輯比點(diǎn)陣邏輯元件多得多。此外,Xilinx設(shè)計(jì)使用了 Lattice設(shè)備所沒有的專用DSP模塊。
查看所用邏輯元件的百分比,可以發(fā)現(xiàn)3種FPGA之間的尺寸差異。yrv_mcu設(shè)計(jì)需要一半多一點(diǎn)的 Lattice器件,是大約1/10的中端Xilinx器件,不到大型Xilinx 的1/20。這種用法符合不同開發(fā)板的成本要求。
正如預(yù)期的那樣,設(shè)計(jì)所需的觸發(fā)器數(shù)量在3種FPGA中是相似的,確切地說,數(shù)量更多的是邏輯綜合工具的功能而不是其他。邏輯綜合工具將復(fù)制觸發(fā)器以提高性能或簡化布線。
速度行顯示3種 FPGA提供大致相同的性能,這有點(diǎn)令人驚訝,因?yàn)長attice FPGA 不包含Xilinx實(shí)施中使用的專用DSP模塊。
4??關(guān)于Alchitry Cu ? ?
清單1直接摘自 Lattice 的實(shí)現(xiàn)報(bào)告,顯示了資源利用的細(xì)節(jié)。圖1取自Lattice Floorplanner工具的屏幕截圖﹐顯示了分布在器件中的邏輯元件的使用情況。這種分布在整個(gè)設(shè)備中相當(dāng)均勻,盡管總體使用率只有60%左右。
5? 關(guān)于Alchitry Au ? ?
清單2直接摘自Xilinx實(shí)現(xiàn)報(bào)告,顯示了資源利用的細(xì)節(jié)。完整的Xilinx報(bào)告要大得多,涵蓋了FPGA中所有可用的專用硬件。
圖2為Xilinx Floorplanner 工具的屏幕截圖,顯示了分布在整個(gè)器件中的邏輯元件的使用情況,以及專用邏輯模塊如何分布在整個(gè)器件中。放置工具似乎總是從設(shè)備的左下角開始。
6? 關(guān)于Alchitry Au+ ? ?
清單3也直接摘自Xilinx的實(shí)現(xiàn)報(bào)告﹐顯示了資源利用的細(xì)節(jié)。請注意,兩臺(tái)Xilinx設(shè)備使用的資源數(shù)量幾乎相同。圖3也取自Xilinx Floorplanner工具的屏幕截圖。有趣的是,盡管該FPGA包含3倍數(shù)量的邏輯元件,但本例所需的總面積與第一個(gè) Xilinx實(shí)施中幾乎相同。
7? 硬件編程 ? ?
使用Alchitry Loader 程序時(shí),將 FPGA 比特流下載到Alchitry開發(fā)板非常簡單。該獨(dú)立程序作為Alchitry的一部分,自動(dòng)安裝Alchitry提供的實(shí)驗(yàn)室軟件。圖4顯示了這個(gè)程序的用戶界面。
對用于加載FPGA的開發(fā)板上的閃存器件進(jìn)行編程也很簡單,只需指定位流文件、選擇目標(biāo)板,然后單擊“編程”按鈕。
默認(rèn)情況下,程序會(huì)查找.bin類型的比特流文件,這是iCEcube2軟件使用的默認(rèn)設(shè)置。Vivado 軟件生成. bit類型的比特流文件。因此,在加載Xilinx 比特流文件時(shí)要記住這一點(diǎn)。
編輯:黃飛
評論
查看更多