萊迪思Propel幫助設計人員快速創(chuàng )建基于處理器的系統
幾乎所有的電子設計師和嵌入式系統開(kāi)發(fā)人員都聽(tīng)過(guò)現場(chǎng)可編程門(mén)陣列(FPGA)。對于實(shí)際的FPGA器件,設計人員和開(kāi)發(fā)人員都知道它擁有可編程架構,能夠對其進(jìn)行配置來(lái)而執行想要的功能,但他們的了解可能僅限于此。同樣,當涉及創(chuàng )建一個(gè)可以在FPGA上實(shí)現的設計時(shí),他們可能聽(tīng)過(guò)硬件描述語(yǔ)言(HDL)和寄存器轉換級電路(RTL)之類(lèi)的術(shù)語(yǔ),但可能并未充分理解它們的含義。
本文引用地址:http://dyxdggzs.com/article/202103/423493.htm與Verilog或VHDL相似,HDL能讓FPGA設計人員描述設計意圖,正如軟件開(kāi)發(fā)人員使用C或者C++等編程語(yǔ)言一樣。理解HDL的方式之一就是它可以用來(lái)描述同時(shí)發(fā)生的事物,這也是現實(shí)世界中硬件工作的方式。相比之下,軟件編程語(yǔ)言通常用于描述順序發(fā)生的事。
同時(shí),RTL是常用于邏輯綜合引擎輸入的抽象級電路。該工具將RTL轉換到邏輯元件和互連網(wǎng)絡(luò ),然后在FPGA的可編程邏輯內實(shí)現。邏輯綜合引擎可以比作軟件開(kāi)發(fā)者的編譯器,后者采用高級程序作為輸入,并將其轉換為由處理器執行的機器代碼。
FPGA的可編程結構可用于構建硬件加速器,以低功耗執行數據處理任務(wù)??删幊探Y構經(jīng)過(guò)配置后可創(chuàng )建一個(gè)或多個(gè)更適合處理決策任務(wù)的軟核處理器,這些處理器還可以控制硬件加速器,包括向其提供數據并根據結果采取相應措施。
RISC-V就是這樣一種處理器,它是一種開(kāi)源指令集架構(ISA),可以通過(guò)開(kāi)源許可免費獲得。RISC-V開(kāi)源硬件概念的創(chuàng )造者受到Linux開(kāi)源軟件成功的啟發(fā)。RISC-V的一大優(yōu)勢是在各類(lèi)設計實(shí)現中都有出色的軟件兼容性,并且目前這些處理器的使用急劇增長(cháng)。
然而,對于想要使用這種處理器的非FPGA設計人員而言,問(wèn)題在于他們缺乏有關(guān)FPGA設計語(yǔ)言、工具和流程的專(zhuān)業(yè)知識。為了解決這個(gè)問(wèn)題,低功耗可編程FPGA的領(lǐng)先供應商萊迪思半導體開(kāi)發(fā)了名為L(cháng)attice Propel?的工具,這是一款基于圖形用戶(hù)界面(GUI)的設計環(huán)境,任何用戶(hù)(無(wú)論是否具有FPGA專(zhuān)業(yè)知識)都能使用它以拖放的方式快速設計基于RISC-V處理器的系統。
Propel輸出的是RTL文件,可以發(fā)送到綜合引擎,生成可載入FPGA的配置文件。之后軟件開(kāi)發(fā)人員可以在基于FPGA的RISC-V設計實(shí)現上運行他們的RISC-V可執行文件,正如在其他任何RISC-V處理器上運行一樣。萊迪思為其FPGA客戶(hù)免費提供RISC-V IP核。
基于FPGA的解決方案
數據處理要求有合適的計算引擎。開(kāi)發(fā)者擁有諸多不同選擇,包括微處理器(MPU)、微控制器(MCU)、圖形處理器(GPU)、FPGA和SoC等器件。
MPU和MCU在執行決策任務(wù)時(shí)效率很高,但是在實(shí)現原始數據處理算法時(shí),無(wú)論是處理時(shí)間還是功耗都不太理想。SoC能以最低的功耗實(shí)現最高性能,但缺點(diǎn)是開(kāi)發(fā)起來(lái)價(jià)格昂貴、耗費資源且十分耗時(shí),并且在此類(lèi)芯片架構中實(shí)現的算法基本上都是固定無(wú)法更改的,而系統采用的協(xié)議和標準會(huì )不斷變化,因此會(huì )帶來(lái)很多問(wèn)題。
某些數據處理任務(wù)(包括許多AI/ML算法)非常適合并行處理。FPGA的可編程架構(圖1a)經(jīng)配置可實(shí)現硬件加速器(HA)功能,以大規模并行方式執行任務(wù)(圖1b),從而顯著(zhù)提高性能,同時(shí)降低功耗。
許多情況下還需要數據協(xié)處理功能,使用中央處理器(CPU)來(lái)強化硬件加速器,處理器可以執行高級決策和控制功能。不同于直接在芯片中實(shí)現的硬核CPU,FPGA的可編程架構能夠實(shí)現軟核CPU以及相關(guān)的總線(xiàn)結構(地址、數據、控制)和任何所需的外設IP功能(圖1c)。
圖1 結構化總線(xiàn)的方法廣泛適用于各類(lèi)應用,包括嵌入式視覺(jué)、安防和人工智能
需要注意的是,根據FPGA器件和用戶(hù)的要求,額外的可編程邏輯功能和外圍通信功能(例如USB、MIPI、I2C、SPI、CAN和UART)可以通過(guò)硬核和/或軟核實(shí)現。文章篇幅有限此處不作贅述。
使用軟核CPU有諸多優(yōu)點(diǎn),包括能夠配置處理器的操作及許多可選功能,如動(dòng)態(tài)內存訪(fǎng)問(wèn)(DMA)控制器,從而對其精確調整,高效地滿(mǎn)足目標應用的要求。此外,如有需要,可以配置可編程結構實(shí)現其他外設IP功能。如在人工智能應用中,可以使用可編程邏輯資源來(lái)創(chuàng )建簡(jiǎn)單的人工神經(jīng)網(wǎng)絡(luò ),用于推理之類(lèi)的任務(wù)。
RISC-V
如前所述,RISC-V是基于已有的精簡(jiǎn)指令集計算機(RISC)原則的開(kāi)源指令集架構,可通過(guò)開(kāi)源許可獲得。此外,許多公司目前提供支持RISC-V的RISC-V硬核或開(kāi)源操作系統,并且幾種主流的軟件工具鏈均支持該指令集。
RISC-V的模塊化設計包括基礎指令集和其他的擴展指令集。在行業(yè)、技術(shù)界和教育機構的共同努力下,兩者已得到長(cháng)足的發(fā)展?;A指令集規定了指令(及其編碼)、控制流、寄存器(及其大?。?、存儲器和尋址、邏輯(即整數)操作以及輔助功能。僅基礎指令集就能實(shí)現具有全面軟件支持(包括通用編譯器)的通用計算機。
還可以通過(guò)可選拓展指令集實(shí)現額外功能,從而讓設計人員靈活選擇其應用所需的功能。RISC-V定義了許多擴展指令集,包括A(原子)、F(單精度浮點(diǎn))、D(雙精度浮點(diǎn))、Q(四精度浮點(diǎn))和C(壓縮的16位指令以減少代碼尺寸,用于存儲空間有限的系統)。上述指令集均可靈活選擇。
圖2 萊迪思是首個(gè)支持RISC-V的基于閃存和SRAM的FPGA供應商
與作為專(zhuān)用處理器的硬核實(shí)現相比,基于FPGA的軟核RISC-V擁有的巨大優(yōu)勢在于FPGA可重新配置的巨大潛力能夠滿(mǎn)足各種擴展需求。
萊迪思RISC-V軟核IP套件擁有32位RISC-V處理器核以及可選的定時(shí)器和可編程中斷控制器(PIC)子模塊。該CPU核支持RV32I指令集、外部中斷和符合JTAG IEEE 1149.1規范的調試。
定時(shí)器子模塊是一個(gè)64位實(shí)時(shí)計數器,它將實(shí)時(shí)寄存器與另一個(gè)寄存器進(jìn)行比較以觸發(fā)定時(shí)器中斷。PIC子模塊最多將八個(gè)外部中斷輸入聚合為一個(gè)外部中斷。處理器核通過(guò)使用行業(yè)標準的32位AHB-L總線(xiàn)接口訪(fǎng)問(wèn)子模塊寄存器。
萊迪思Propel
許多嵌入式系統的設計人員都對使用FPGA很感興趣,但是一想到要使用傳統的FPGA設計工具和HDL就望而卻步。為了解決這一問(wèn)題,萊迪思Propel采用了基于圖形用戶(hù)界面(GUI)的設計環(huán)境,任何用戶(hù)(無(wú)論是否具有FPGA專(zhuān)業(yè)知識)都能使用其拖放的設計方式快速構建和配置基于RISC-V處理器的設計。
Propel輸出的是使用Verilog HDL語(yǔ)言的RTL文件,可以將其發(fā)送到綜合引擎,生成可載入FPGA的配置文件。該配置文件可用于萊迪思CrossLink?-NX(面向嵌入式視覺(jué)應用)、Certus?-NX(通用FPGA)以及MachXO3D?和Mach?-NX FPGA(安全系統控制)系列產(chǎn)品。FPGA配置完成后,軟件開(kāi)發(fā)人員可以在基于FPGA的RISC-V設計實(shí)現上運行他們的RISC-V可執行文件,正如在其他任何RISC-V處理器上運行一樣。
Lattice Propel由兩個(gè)部分組成。首先是Propel Builder,它提供圖形化的拖放界面,讓用戶(hù)選擇IP模塊并將其連接在一起。這些IP模塊包括RISC-V處理器(帶有可選的定時(shí)器和中斷控制器)、AMBA總線(xiàn)結構、接口、存儲器、輸入/輸出(I/O)等。用戶(hù)還可以方便地在線(xiàn)升級現有IP模塊和獲得新的IP模塊 。
圖3 Propel界面直觀(guān)、易于使用、功能強大
除了拖放IP實(shí)例化,Propel Builder還能自動(dòng)進(jìn)行引腳連接,通過(guò)向導配置和設置參數以及采用按構造逐步校正進(jìn)行IP集成。
其次是萊迪思Propel SDK(軟件開(kāi)發(fā)套件),可提供無(wú)縫的軟件開(kāi)發(fā)環(huán)境。它擁有行業(yè)標準的集成開(kāi)發(fā)環(huán)境(IDE)和工具鏈。SDK還為Propel Builder定義的系統提供軟件/硬件調試功能以及軟件庫和板級支持包(BSP)。
需要注意的重要一點(diǎn)是,Propel可以很好地對接下游工具,并且它也是一個(gè)獨立的程序,且其大小僅為0.5 GB,可以快速輕松地下載和安裝。同樣令人感興趣的是,Propel的所有命令都可以用Tcl編寫(xiě),從而提高了設計效率并將其快速集成到用戶(hù)自己的設計環(huán)境中。
圖4 無(wú)論是簡(jiǎn)單的“Hello World”應用還是復雜的嵌入式控制和數據處理系統,Propel都能讓用戶(hù)快速完成設計
對于硬件設計,Propel是那些需要FPGA優(yōu)勢但缺乏FPGA硬件設計經(jīng)驗的團隊的理想選擇。此外,如果團隊成員確實(shí)具有FPGA設計經(jīng)驗,那么他們還可以根據需要對設計做更為精確的控制。對于軟件設計,Propel提供行業(yè)標準的C/C ++開(kāi)發(fā)環(huán)境。軟件開(kāi)發(fā)人員似乎更多地使用現成的微控制器。
設計人員可以使用Propel在CrossLink-NX、Certus-NX和Mach-NX FPGA中快速輕松地生成基于RISC-V軟軟核的處理器系統,從而提供復雜的視頻處理、系統控制和系統安全功能,其延遲遠遠低于通過(guò)外部獨立處理器實(shí)現的設計。
總結
除了擁有以低功耗執行高性能數據處理任務(wù)的邏輯功能和硬件加速器外,FPGA內部的可編程架構還可用于實(shí)現一個(gè)或多個(gè)更適合決策任務(wù)的軟核處理器,以及用于諸如硬件加速器之類(lèi)的控制功能,包括向它們提供數據并根據結果采取措施。
RISC-V就是這樣一種處理器,它是一種開(kāi)源指令集架構(ISA),可以通過(guò)開(kāi)源許可免費獲得。萊迪思是首個(gè)支持RISC-V以及為其FPGA客戶(hù)免費提供RISC-V IP核的基于閃存和SRAM的FPGA供應商。
對于想要使用這種處理器的非FPGA設計人員而言,問(wèn)題在于他們缺乏有關(guān)FPGA設計語(yǔ)言、工具和流程的專(zhuān)業(yè)知識。為了解決這個(gè)問(wèn)題,萊迪思提供了Propel來(lái)簡(jiǎn)化設計流程,讓開(kāi)發(fā)人員能夠快速設計基于RISC-V處理器的系統。
評論