濃縮的,都是精華,作為小腳丫FPGA創始人的蘇老師向來鄙視器材黨,能在一個小得不能再小的空間和資源裡玩出萬千花樣的人,才是高手,這也是小腳丫FPGA的理念。蘇老師在之前的一篇文章《要讓RISC-V跑起來究竟需要多大的FPGA?》中提到:在三個月內讓RISC-V在小腳丫上跑起來,距今一個多月,蘇老師就來兌現諾言了。
經過美國PulseRain Technology與小腳丫團隊的不懈努力,在小腳丫CYC10開發板上成功移植了PulseRain Reindeer RISC-V 軟核,並且開發了配套Arduino IDE的板子支持包,使得用戶可以通過Arduino開發環境直接對嵌入到FPGA中的RISC-V軟核進行編程。說到這種FPGA+Arduino+軟核CPU的開發方式,是不是有種似曾相識的感覺,不錯,之前我們就在STEP MAX10開發板上移植過PulseRain Technology的8051軟核FT51-1T(使用Arduino玩轉FPGA
http://www.stepfpga.com/doc/fpga_arduino_8051),採用的正是這種嵌入式開發方式。
FPGA優秀的性價比和靈活性;開源硬體Arduino及其豐富的軟體庫;開源的編譯器和工具鏈GNU;再加上如今熱度空前的開源處理器RISC-V,形成了一種靈活快速的新型嵌入式開發方式FRAM: FPGA+Arduino+RISC-V+Make。
FARM 開發模式
如上圖所示,在FARM開發模式下,FPGA成為系統的核心晶片。在FPGA中會包含一個支持RISC-V的開源處理器軟核 (RISC-V Soft CPU)。該處理器可以包含一個硬體邏輯實現的代碼載入器 (Hardware Based Code Loader)。FPGA也會包含所有的(或大部分的)外部設備實現,這些外部設備和RISC-V通過總線相連。對於無法完全用FPGA實現的功能 (例如傳感器),FPGA也會實現其控制部分或者數據的讀寫 。
上圖中RISC-V 軟核的編程,可以通過兩種方式。對中小型的裸金屬 (bare metal)系統,開發者可以直接在Arduino 集成開發環境下編程,並充分利用Arduino提供的軟體支持庫。編譯結果也可以在集成環境下直接寫入到FPGA上的RISC-V軟核裡。當軟體規模變大時,軟體的配置和編譯可以通過Make來實現,並執行和RISC-V軟核配套的代碼載入工具,下載編譯結果。
在Changyi Gu即將出版的新書《基於FPGA與RISC-V的嵌入式系統設計》中將會詳細討論FRAM這一新型的嵌入式開發方式,敬請期待。
本次移植的RISC-V軟核是由Changyi Gu主持設計的 PulseRain Reindeer 處理器內核,該軟核在2018年由RISC-V 基金會官方舉辦的全球 Soft CPU 設計大賽中脫穎而出,榮獲季軍 (https://riscv.org/2018contest/)。PulseRain Reindeer是一個Von Neumann架構的軟CPU,支持RISC-V RV32I [M]指令集,並具有2 x 2流水線架構,是綜合平衡了速度和面積的結果,為所有FPGA平臺上的軟CPU提供了靈活的選擇。
Pulserain公司特別將該處理器為小腳丫實驗平臺做了升級改進,可以同時支持DRAM和FPGA片上BRAM,還對外部中斷做了更好的支持。(參考https://github.com/PulseRain/Reindeer_Step)。
下面我們就在小腳丫CYC10 FPGA開發板上玩一把開源FRAM。
RISC-V 軟核處理器與STEP CYC10 開發板
準備工作:
小腳丫STEP-CYC10 是一款基於Intel Cyclone10設計的FPGA開發板。板卡尺寸只有72mm×40mm。核心FPGA晶片選用了Intel公司Cyclone 10 LP系列的10CL016YU256C8G,相比於前一代的Cyclone IV系列的FPGA,它的性能更強,功耗更低,板上的FPGA晶片資源達16000邏輯單元(LEs),同時該板卡最高支持10CL025YU256晶片。另外,板卡上集成了USB Blaster編程器、SDRAM、FLASH等多種外設。板上預留了PCIE子卡插座,你可以方便的進行擴展。
STEP-CYC10板卡上集成的編程器能夠完美支持開發工具Quartus Prime,你只需要一根MicroUSB連接線就能夠完成FPGA的編程仿真和下載,使用更加方便。
操作步驟
(具體過程請參考原文)
演示效果
打開串口監視器波特率為115200,可以看到不斷列印累加數字,板子上的LED呈現流水燈模式。
歡迎點擊文末左下方「閱讀原文」,了解該項目的詳細操作步驟。更多外設支持正在持續開發中,接下來也會推出更多好玩的Demo,敬請關注和期待~