當前位置:首頁 > 公眾號精選 > 玩轉(zhuǎn)嵌入式
[導(dǎo)讀]2021年4月初,一位熱衷于自制CPU的19歲極客小伙FilipSzkandera自己設(shè)計和制造出了32位功能性?RISC-VCPU,并構(gòu)建了與其他自制計算機不同的個人計算機「菠蘿一號(PineappleONE)」。從設(shè)計、調(diào)試和安裝CPU和所有硬件,F(xiàn)ilip整整花了兩年時間。Filip還受邀在東京舉辦的RISC-VDaysTokyo2021Spring上做了演示,他也成為了該會議自2017年舉辦以來最年輕的演示者。創(chuàng)建者FilipSzkandera。整體來看,「菠蘿一號」是由8塊正方形打印電路板垂直堆疊組成,每塊邊側(cè)高度約為10厘米,外加一個VGA顯示接口卡。一共使用了230多個集成電路,...

2021 年 4 月初,一位熱衷于自制 CPU 的 19 歲極客小伙 Filip Szkandera自己設(shè)計和制造出了 32 位功能性 RISC-V CPU,并構(gòu)建了與其他自制計算機不同的個人計算機「菠蘿一號Pineapple ONE)」。從設(shè)計、調(diào)試和安裝 CPU 和所有硬件,Filip 整整花了兩年時間。


Filip 還受邀在東京舉辦的 RISC-V Days Tokyo 2021 Spring 上做了演示,他也成為了該會議自 2017 年舉辦以來最年輕的演示者。




創(chuàng)建者 Filip Szkandera。

整體來看,「菠蘿一號」是由 8 塊正方形打印電路板垂直堆疊組成,每塊邊側(cè)高度約為 10 厘米,外加一個 VGA 顯示接口卡。


一共使用了 230 多個集成電路,大多數(shù)是 74HCT 系列邏輯芯片。示意圖如下:




32 位 RISC-V CPU 的規(guī)格如下:


  • 最大時鐘速度:500kHz
  • 程序內(nèi)存:512kB
  • 內(nèi)存 512kB
  • 閃存 512kB
  • VGA 輸出:200×150px(黑白)
  • 2 個 8 位輸入端口
  • 2 個 8 位輸出端口
目前,「菠蘿一號」計算機支持的命令包括:HELLO、HI、PEEK 、POKESYSTEM INFORMATION、CLEAR 等。






此外雖然 CPU 的運行速度僅有 500kHz,但玩?zhèn)€貪吃蛇游戲還是綽綽有余的:



Filip 在一篇博客中介紹了他從設(shè)計 CPU、制作原型機、輸入 / 輸出端口、最終成品到軟件編程的技術(shù)細節(jié)(下文以第一人稱敘述)。
設(shè)計自己的 RISC-V CPU
此前,我在 Youtube 上發(fā)現(xiàn)了電子愛好者 Ben Eater 自制 CPU(構(gòu)建著名的 8 位計算機和經(jīng)典的 6502 微處理器)的相關(guān)教程,所以非常著迷,也就有了自制 CPU 的想法。


然而,我覺得對于 CPU 基礎(chǔ)知識了解的還不夠,因此又觀看了 Google Robotics 軟件工程師 Robert Baruch 的教程視頻,他只使用了基本邏輯元件構(gòu)建了 32 位 RISC-V CPU。


之后,我便開始在一個名為「Logisim-Evolution」的項目中制造自己的 RISC-V CPU。


我給自己設(shè)定的目標是不使用任何微控制器或 FPGA,只使用基本的分立邏輯元件。


編譯器支持的最基礎(chǔ) RISC-V CPU 必須包含擴展「整數(shù)(I)」且至少為 32 位。


此外,我還需要安裝一個 VGA(視頻圖形陣列)輸出卡。


我花了整整 6 個月的時間在 Logisim 項目上,終于得到一個可運行的程序模擬。


下一步繪制所有模塊的原理圖、從 JLCPCB 網(wǎng)站上購買所有的 PCB(印制電路板)并重新設(shè)計。


由于這是我首次購買 PCB,擔心搞砸一切,于是決定在設(shè)計過程中分模塊處理,一次選購幾個,以免自己應(yīng)接不暇。


Logisim-Evolution 項目中的模擬原理圖如下:






經(jīng)過了兩輪設(shè)計,最后只剩下幾個模塊需要處理,其中一個是直接生成器(immediate generator)。


當我絞盡腦汁想將它從模擬轉(zhuǎn)化為合適的原理圖時,發(fā)現(xiàn)自己犯了一個致命錯誤:完全不清楚模擬是如何運行的。


幸運的是,修復(fù)起來也沒有那么困難,于是對已經(jīng)制作完成的 PCB 做了改進。




原型機
接下來,我將開源電子原型平臺 Arduino 連接到每個 PCB 的輸入端、同時監(jiān)控輸出端并與預(yù)測端(prediction)做對比,從而對這些 PCB 進行測試。設(shè)置好之后,一切就可以自動運行了。


每次測試都至少持續(xù)數(shù)個小時。


當我準備好將所有 PCB 整合到一塊時,模塊也已經(jīng)間隔地安裝在了木頭上,并使用 3D 打印墊片(spacer)來固定。接著上傳了一個測試程序并開始測試。


原型機示意圖如下:





Arduino 平臺僅用來調(diào)試,沒有在最終成品中使用。
盡管我單獨測試了每個 PCB,但首次嘗試還是失敗了,這不足為奇。我又不得不花費大量時間來找失敗的原因,找出了一些錯誤,如很難發(fā)現(xiàn)的時序問題。
輸入 / 輸出端口
我構(gòu)建的 RISC-V CPU 擁有兩個 8 位輸入端口和兩個 8 位輸出端口,你可以通過 RJ50 連接器在前板上訪問。此外,頂部模塊上有一個 7 段式顯示器(7-segment display),它與一個可以通過程序訪問的寄存器相連。
至于與 VGA 顯示器的連接,我受 Ben Eater 的啟發(fā)構(gòu)建了一個 VGA 卡。VGA 的輸出分辨率是 200×150 像素,黑白顯示。雖然我想實現(xiàn)彩色顯示,但需要使用大型 V-RAM,太貴了,也就放棄了。
下板(board)將顯示存儲在 EEPROM(帶電可擦可編程只讀存儲器,型號 39SF010A)中的靜態(tài)圖像。我在最終成品中使用到了雙端口 SRAM(靜態(tài)隨機存取存儲器)。



我還構(gòu)建了一些演示用的 I/O 模塊,它們在末端都有 RJ50 連接器。


PS/2 解碼器是買的現(xiàn)成的,我沒有時間自己制作。
最終成品
讓原型機運行不太容易,在大約 5 個月的時間后,我終于成功了。
我又重新設(shè)計了所有的 PCB,修復(fù)錯誤,并將這些 PCB 以塔狀結(jié)構(gòu)堆疊,所以每個模塊僅用針座(pinheader)相連接。重新設(shè)計 PCB 大約花了 3 個月的時間,然后對最終的 PCB 進行有序排列。
此外,我還設(shè)計并使用 Prusa i3 3D 打印機打印了一個圓柱體外殼,足以容納所有的 PCB 和 I/O 連接器,這樣也可以將鍵盤和 VGA 顯示器直接連接到計算機。


最終成品,左:無圓柱體外殼,右:安裝圓柱體外殼。
最終成品的組件拆卸:



方框圖:



編程
最后,在經(jīng)過了數(shù)百小時的設(shè)計、焊接和調(diào)試,我終于看到了成功的曙光。在好友 Jan Vykydal 的幫助下,我設(shè)置了一個兼容 RISC-V 且運行良好的編譯器,使用 C 語言編寫了一些系統(tǒng)軟件和 demo 程序。這個編譯器可以生成機器代碼,我使用一個 Python 腳本來接收代碼并 flash 入 CPU 內(nèi)存。



我還創(chuàng)建了一個具有一些有用函數(shù)的庫,代碼如下:



Pineshell:利用這個庫,我創(chuàng)建了一個簡單的 shell 程序,這樣可以通過「與其中一個輸入端口相連的 PS/2 鍵盤」來實現(xiàn)與該程序的交互。我使用帶有模塊的 PS/2 鍵盤將輸入信號解碼為 8 位。



大功告成!



你管這破玩意叫 CPU ?
C語言算法:希爾排序,圖解
return 1還是return 0?不必太較真
視頻:純手工飛線,自制CPU

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉