<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 手搓一個(gè)16位RISC架構CPU

手搓一個(gè)16位RISC架構CPU

作者: 時(shí)間:2025-04-07 來(lái)源:硬件筆記本 收藏

今天給大家分享一個(gè)耗時(shí)又有趣的項目:手搓一個(gè)16位RISC架構。

本文引用地址:http://dyxdggzs.com/article/202504/469071.htm

項目的起因是,作者在學(xué)習了MITx的 "計算結構 "課程后,發(fā)現好像自己做一個(gè)也沒(méi)那么難。


在掌握了電子學(xué)的初級知識和課程中介紹的概念之后,就開(kāi)始設計想要做一個(gè)基于NMOS邏輯的RISC 。

課程中介紹的是Beta CPU——有一個(gè)負載存儲,32位RISC架構。

為了節省空間、晶體管,少掉一點(diǎn)頭發(fā),作者決定把自己的這個(gè)CPU減少到16位。

注:MITx的"Computation Structures"官網(wǎng)中對這門(mén)課的描述是This course introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies.

相當于我們國內的數字電路以及計算機組成原理的課程。

B站有UP主做搬運,有興趣的可以看一下:【MIT公開(kāi)課】6.004 計算結構 · 2019年春(完結·中英字幕·機翻)[1]

課程原文鏈接:Computation Structures[2]

如果把它安裝在墻上,它將占據一整面墻。



為了讓整個(gè)計算機看起來(lái)更復古,輸入輸出部分,作者專(zhuān)門(mén)搬出來(lái)自己壁櫥里的一個(gè)舊的Apple II Plus來(lái)處理。


注:Apple II Plus 發(fā)布日期 1979年6月,已經(jīng)是40多年前的事了……



作者用釘板、原型板、2N7000晶體管、電阻(主要是SIP和一些分立器件)、LED、一些HP-5082顯示芯片、一些電致發(fā)光線(xiàn)和許多可愛(ài)的彩色跳線(xiàn)來(lái)構建這么一款CPU。


作者給整個(gè)計算機起名為——Spikeputer,目標是它能夠執行簡(jiǎn)單的程序,并且能夠讓計算過(guò)程可視化。


下面是作者提供的一段介紹:

Spikeputor將會(huì )是一臺功能齊全的計算機,它的CPU完全由NMOS邏輯制成,使用約5000個(gè)MOSFET(2N7000)、電阻和LED來(lái)顯示邏輯。

HP-5082-7340 Hex顯示芯片將被戰略性地加入來(lái)顯示主要CPU組件輸出的數字內容,盡管如果你閱讀二進(jìn)制,LED將提供同樣的信息。

利用電致發(fā)光線(xiàn)來(lái)可視化主要部件之間的邏輯路徑。

CPU的時(shí)鐘頻率將可以從最大速度(預測為數萬(wàn)赫茲范圍)下調至單步。(補充:GHz=千兆赫)

由于制作Spikeputor的主要驅動(dòng)力是讓它能夠可視化計算過(guò)程,所以速度并不是最重要的,雖然還是會(huì )采取一些步驟(例如時(shí)鐘樹(shù))來(lái)提高計算機的整體性能。



Spikeputor CPU的設計特點(diǎn)和主要部件

  • 16位的地址空間

  • 寄存器內存:七個(gè)16位寄存器,加上1個(gè)硬編碼為0的寄存器。

  • 多功能ALU

    • 加法和減法,支持負數補碼

    • 比較(等于、小于、小于或等于)

    • 布爾邏輯(AND, OR, XOR, Identity)

    • 移位運算

  • 用簡(jiǎn)單的邏輯門(mén)實(shí)現的控制邏輯(沒(méi)有微代碼或ROM)

  • 用于程序計數器、指令、常數、CPU階段和一些必要的狀態(tài)標志的附加寄存器

  • 單字操作碼用于寄存器之間的操作

  • 寄存器和16位常數之間操作的雙字操作碼

    • ALU功能(見(jiàn)上文)

    • 內存功能:加載、相對于PC的加載和存儲

    • 有條件(BEQ, BNE)和無(wú)條件的分支,帶分支點(diǎn)存儲

  • IRQ和RESET處理(包括自動(dòng)使用寄存器R6作為異常指針)

  • 所有I/O的直接內存訪(fǎng)問(wèn)(DMA)。

內存

為了能夠執行更多瑣碎的程序,Spikeputor CPU將與高速靜態(tài)存儲器RAM(2 x 32K AS6C62256)和ROM(2 x 32K AT27C256R)芯片連接。此外,還會(huì )創(chuàng )建一個(gè)鏡像的只寫(xiě) "屏幕存儲器",也是由(大約5000個(gè))晶體管制成,提供一個(gè)48乘18的可尋址LED陣列。存儲器地址將被限制在字的邊界內。試圖尋址奇數的存儲器位置會(huì )返回相應的偶數的16位字。由于沒(méi)有任何16K的SRAM和ROM芯片可用,我使用了32K的芯片,并會(huì )設計一個(gè)內存系統,從RAM和ROM中選擇16K的庫進(jìn)行讀取操作。完整的32K字(64kbytes)的RAM可以在任何時(shí)候被寫(xiě)入。

輸入/輸出

I/O功能作者用1986年的Apple II Plus計算機上運行的定制軟件和硬件來(lái)實(shí)現。作為項目的一部分,作者還設計了一個(gè)名為BIAS(連接蘋(píng)果和Spikeputor的板卡)的自定義外設卡,以及蘋(píng)果上的軟件,來(lái)提供鍵盤(pán)輸入、屏幕輸出和長(cháng)期數據存儲和檢索。I/O控制器將直接訪(fǎng)問(wèn)Spikeputor內存,并在所有讀寫(xiě)操作中停止Spikeputor CPU。

還實(shí)現了16位通用輸入和輸出信號,鏡像到固定的高內存位置。


結構

整個(gè)Spikeputor被組裝在一系列的無(wú)焊接面包板上。每個(gè)主要部件(ALU、寄存器存儲器、控制邏輯/程序計數器/狀態(tài)寄存器和屏幕存儲器)被布置在一個(gè)10.16cm×5.08cm的釘板上。每個(gè)釘板可以包含一個(gè)9×6的陣列(54)的面包板,并根據需要為一些小的電路留出一些空間。四塊掛板中的每一塊都被安裝在墻上,在安裝的下方有空間放Apple II Plus的桌子。


電源

電力需求在25w左右。Spikeputor使用+5V電源,由一組8端口的USB電源提供(每塊釘板一個(gè)),非常方便。電致發(fā)光線(xiàn)的電源是單獨的(額外5w)。

欣賞一下圖片和視頻:




簡(jiǎn)單的小游戲:

,時(shí)長(cháng)01:25

斐波那契數列計算:

,時(shí)長(cháng)01:03

計算圓周率:

,時(shí)長(cháng)03:37

參考資料

[1]MIT公開(kāi)課:

https://www.bilibili.com/video/av86045726/

[2]Computation Structures: https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/





關(guān)鍵詞: RISC-V CPU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>