我們先來看兩款由大學生設計的CPU,左邊是河海大學的“河海智慧水利1號芯”BX100E-HHU,右邊是江蘇信息職業技術學院的“蘇信一號”JSIT-M3201:

“河海智慧水利1號芯”BX100E-HHU于2023年8月19日發布,“蘇信一號”JSIT-M3201則于近日流片成功。這兩顆CPU的相繼誕生,標志著CPU設計技術已經從科研機構和芯片企業下沉到了211大學乃至職業學院。
這兩款CPU都屬于SoC,它們都基于龍芯開源的OpenLA1000處理器核,LoongArch32 Reduced指令集架構,使用SMIC 180nm工藝流片。都集成了SDRAM、SDIO、MAC、SPI、I2C、UART、PWM、GPIO等一系列豐富的外設接口。它們都擁有出色的運算能力和低功耗特性,平均功耗≤0.5W。
BX100E-HHU計劃應用于水利、交通及能源等重點行業的嵌入式、物聯網以及智能控制等領域的實際工作中。JSIT-M3201則針對車載應用進行了優化,預計將用于車載中控電腦并提供影音播放功能。
兩顆CPU都已經成功點亮并啟動系統。下面分別是兩款CPU和配套的工程板,看起來江蘇信息職業技術學院的主板和軟件設計得更加完善,不但搭配了彩色屏幕,還啟動了圖形化的操作系統。


兩顆CPU有很多相似的地方,不只是外觀上的相似,它們內部的功能模塊也都是來自同一個提供者。簡單地說,這兩款CPU不是從零開始設計,而是用現成的IP核“組裝”出的產物。
看到“組裝”兩個字,是不是感覺一下子變Low了?但是,這不是組裝電腦,而是組裝芯片耶!組裝芯片的學名叫SoC(System on Chip),稱為系統級芯片或片上系統,就是把各種功能模塊整合在一顆芯片中,提高芯片的集成度,減少獨立芯片的數量。
雖然IP核是現成的,但是師生們仍然需要完成RTL coding、系統仿真、FPGA驗證、后端布局布線、流片、封測等一系列的集成電路設計、制造、測試任務,難度和工程量不是組裝電腦可以比擬的。
以往,整合SoC的技術被一些廠商宣傳得天花亂墜,國內很多芯片企業購買國外的IP核組裝成芯片,然后就宣稱“自主設計”。現在這兩顆由大學生組裝的CPU中,所有IP核都來自國內企業,自然是更加純粹的自主設計。
這兩顆CPU的IP核、設計工具、教學資源等都來自于龍芯中科的“百芯計劃”。
百芯計劃的主要內容是:計劃在5至10年內,在全國范圍選擇百所高校,以校企合作的模式,共建百個“芯片聯合實驗室”。聯合實驗室將基于龍芯高校計劃免費提供的IP,可聯合第三方共同研發實用型的自主芯片,并形成產業化應用。通過百芯計劃,將百個實驗室聯網形成基于龍芯自主芯片IP的生態圈,打造兼具自主創新、科研創新、服務地方經濟和人才培養功能的產學研合作平臺。
百芯計劃開源了兩款升級版的CPU核心,分別是OpenLA500和OpenLA1000。這兩款CPU核心都源自龍芯產品級的成熟設計,并允許學校聯合其他企業用于產品研發。除了兩款CPU核,龍芯還提供了其它各種IP核,可以用這些IP核整合出商業級的產品。
百芯計劃配套的資源如下:
OpenLA500 處理器核:單發射、5 級流水、TLB、Cache、AXI I/F,可讀 VerilogHDL代碼;
OpenLA1000 處理器核:雙發射、7 級流水、TLB、Cache、AXI I/F,可讀 VerilogHDL代碼;
其它 SoC IP:AMBA 總線互聯、SDRAM Ctrl、SDIO Ctrl、MAC Ctrl、SPI Ctrl、I2C Ctrl、UART Ctrl、PWM、GPIO;
軟件資源:GCC 工具鏈,QEMU 模擬器,指令集功能測試程序集,裸機執行環境、U-boot、Linux kernel,處理器核功能仿真驗證環境,SoC 參考設計的軟件仿真和 FPGA綜合實現環境等。

讓學生學會整合SoC只是教學目標之一,更高層次的目標是讓學生掌握從零開始設計CPU的能力。因此龍芯還開源了LoongArch32 Reduced指令集,并開放了被稱為chiplab的硬件開發平臺。
LoongArch32 Reduced是LoongArch指令集的32位精簡版本,規模與RISC-V指令集相當,適合用于嵌入式CPU以及教學和實驗。而chiplab則是一整套的芯片設計和驗證工具,還包括了一個教學風格的單發射五級流水CPU參考設計。
chiplab還包含了基于境內工藝的物理設計環境及參考流程,面向180nm、130nm、110nm的工藝節點,提供了開源的EDA工具包。
可以說所有的CPU都是SoC,區別只是整合的IP核不同。學會了整合SoC,就能“自主設計”CPU。畢竟除了龍芯、申威等少數企業的產品,國內大多數的“自主CPU”都是用國外授權的IP核整合而成。
在整合SoC的過程中,需要完成RTL coding、系統仿真、FPGA驗證、后端布局布線、流片、封測等一系列的集成電路設計、制造、測試任務。掌握了這些能力,就掌握了自主設計SoC的完整能力,也掌握了完全自主設計芯片的基礎能力。

那么,龍芯提供的IP核畢竟有限,基于這些IP核完成SoC設計之后,是否有能力設計其它類型的SoC呢?當然是沒有問題的。現代的IP核為了便于相互連接,在設計時就會遵循一定的規范,類似于電腦上各種板卡和外設的標準接口。例如ARM推出的AXI、AHB、AMBA等總線和接口規范已經成為業界主流,龍芯提供的IP核也同樣符合這些規范。
就像學生在學校的機房里學會了組裝電腦之后,離開機房后用其它的硬件一樣能組裝電腦。不太可能有學生只會組裝Intel的電腦,面對AMD的電腦就無從下手,包括組裝龍芯的電腦也是一樣的方法,都是標準接口,局部大同小異而已。我們在學會組裝電腦之前,也會覺得電腦內部的結構無比神秘,但在學會之后,就會覺得只要有手就能組裝電腦。整合SoC也是這樣,會者不難,難者不會罷了。
總之,河海大學和江蘇信息職業技術學院在“百芯計劃”的支持下,完成了把SoC技術拉下神壇的創舉。國內某些“自主設計”的CPU,再也沒有了自我標榜的本錢。兩所學校,一所是211,一所是職業技術學院,它們共同覆蓋了國內高校的全部層次。現在組裝電腦的技術已經下沉到了中小學生階段,大學生就該通過組裝CPU獲得成就感。