chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手工制作了一款32位CPU

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2022-03-22 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一個國外小伙制造出了自己的CPU,從設(shè)計 CPU、制作原型機、最終成品到軟件編程,19 歲極客小伙用了整整兩年的時間。

RISC-V是一個基于精簡指令集(RISC)原則的開源指令集架構(gòu)(ISA),它是對應(yīng)開源軟件運動的一種「開源硬件」。該項目于 2010 年始于加州大學(xué)伯克利分校,項目貢獻者是該大學(xué)以外的志愿者和行業(yè)工作者。

RISC-V 指令集的設(shè)計考慮了小型、快速、低功耗的現(xiàn)實情況來實做,但并沒有對特定的微架構(gòu)做過度的設(shè)計。與大多數(shù)指令集相比,RISC-V 指令集可以自由地用于任何目的,允許任何人設(shè)計、制造和銷售 RISC-V 芯片和軟件。

2021年4月初,一位熱衷于自制CPU的19歲極客小伙Filip Szkandera自己設(shè)計和制造出了32位功能性RISC-V CPU,并構(gòu)建了與其他自制計算機不同的個人計算機,命名為菠蘿一號(Pineapple ONE)。從設(shè)計、調(diào)試和安裝CPU和所有硬件,F(xiàn)ilip整整花了兩年時間。Filip還受邀在東京舉辦的RISC-V Days Tokyo 2021 Spring上做了演示,他也成為了該會議自2017年舉辦以來最年輕的演示者,下圖是創(chuàng)建者Filip Szkandera與他的作品。

2698a5f2-a920-11ec-952b-dac502259ad0.jpg

整體來看,「菠蘿一號」是由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

、POKE
、SYSTEM INFORMATION、CLEAR 等。 此外雖然 CPU 的運行速度僅有 500kHz,但玩?zhèn)€貪吃蛇游戲還是綽綽有余的,貪吃蛇游戲界面如下。

26abc6f0-a920-11ec-952b-dac502259ad0.gif

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è)定的目標(biāo)是不使用任何微控制器FPGA,只使用基本的分立邏輯元件。編譯器支持的最基礎(chǔ) RISC-V CPU 必須包含擴展「整數(shù)(I)」且至少為 32 位。此外,我還需要安裝一個 VGA(視頻圖形陣列)輸出卡。 我花了整整 6 個月的時間在 Logisim 項目上,終于得到一個可運行的程序模擬。下一步繪制所有模塊的原理圖、從 JLCPCB 網(wǎng)站上購買所有的 PCB(印制電路板)并重新設(shè)計。由于這是我首次購買 PCB,擔(dān)心搞砸一切,于是決定在設(shè)計過程中分模塊處理,一次選購幾個,以免自己應(yīng)接不暇。 Logisim-Evolution 項目中的模擬原理圖如下:

271f8662-a920-11ec-952b-dac502259ad0.png

經(jīng)過了兩輪設(shè)計,最后只剩下幾個模塊需要處理,其中一個是直接生成器(immediate generator)。當(dāng)我絞盡腦汁想將它從模擬轉(zhuǎn)化為合適的原理圖時,發(fā)現(xiàn)自己犯了一個致命錯誤:完全不清楚模擬是如何運行的。幸運的是,修復(fù)起來也沒有那么困難,于是對已經(jīng)制作完成的 PCB 做了改進。原型機接下來,我將開源電子原型平臺 Arduino 連接到每個 PCB 的輸入端、同時監(jiān)控輸出端并與預(yù)測端(prediction)做對比,從而對這些 PCB 進行測試。設(shè)置好之后,一切就可以自動運行了。每次測試都至少持續(xù)數(shù)個小時。 當(dāng)我準(zhǔn)備好將所有 PCB 整合到一塊時,模塊也已經(jīng)間隔地安裝在了木頭上,并使用 3D 打印墊片(spacer)來固定。接著上傳了一個測試程序并開始測試,原型機示意圖如下:

273879d8-a920-11ec-952b-dac502259ad0.png

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)圖像,相關(guān)內(nèi)容請點擊這里,EEPROM和Flash這樣講,我早就懂了。我在最終成品中使用到了雙端口 SRAM(靜態(tài)隨機存取存儲器)。

27729596-a920-11ec-952b-dac502259ad0.jpg

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

27976bdc-a920-11ec-952b-dac502259ad0.png

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 顯示器直接連接到計算機。 最終成品的組件拆卸如下圖所示。

27b5b164-a920-11ec-952b-dac502259ad0.png

架構(gòu)圖如下所示。

27db4172-a920-11ec-952b-dac502259ad0.png

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

27eed7be-a920-11ec-952b-dac502259ad0.png

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

2807ec04-a920-11ec-952b-dac502259ad0.png

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

281cbfa8-a920-11ec-952b-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11187

    瀏覽量

    221281
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2406

    瀏覽量

    84973
  • 指令集
    +關(guān)注

    關(guān)注

    0

    文章

    228

    瀏覽量

    24121

原文標(biāo)題:小伙手工制作了一款32位CPU

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    DIY 流體模擬吊墜():理論與第個吊墜的制作

    “ ?作者手工打造了一款獨特的鍍金吊墜,它內(nèi)置了塊定制設(shè)計的電路板,能夠?qū)崟r運行流體模擬。文章記錄了從復(fù)雜的軟件實現(xiàn)、電子設(shè)計到精細的金工和組裝的整個過程。 ” ? 我打造了一款流體
    的頭像 發(fā)表于 09-07 17:49 ?1603次閱讀
    DIY 流體模擬吊墜(<b class='flag-5'>一</b>):理論與第<b class='flag-5'>一</b>個吊墜的<b class='flag-5'>制作</b>

    【開源分享】Made with KiCad(128):CANBoard V2 開源一款支持CAN的簡單IO板

    CANBoard 是一款支持 CAN 的簡單 IO 板,專門設(shè)計用于方向盤/按鈕盒/面板等設(shè)備。 Made with KiCad 系列將支持新的展示方式:點擊查看 即可動態(tài)查看設(shè)計的原理圖
    發(fā)表于 06-03 14:17

    使用CY3014USB芯片組制作了臺相機,視頻顯示延遲怎么解決?

    我使用 CY3014USB 芯片組制作了臺相機,視頻從相機流向計算機,顯示屏上顯示出精美的圖像。 我注意到攝像機前發(fā)生的事情和信息在屏幕上更新/流動之間存在延遲。 延遲時間幾乎持續(xù) 1 秒。 這
    發(fā)表于 05-06 09:11

    一款入耳式耳機的仿真與分析

    電子發(fā)燒友網(wǎng)站提供《一款入耳式耳機的仿真與分析.pdf》資料免費下載
    發(fā)表于 04-22 15:39 ?5次下載

    RF-Labs手工成型電纜組件

    RF-Labs手工成型電纜組件 RF-Labs推出了一款手工成型的高性能電纜組件,采用Conformable?技術(shù)或手工編織護套設(shè)計。RF-Labs
    發(fā)表于 03-14 09:23

    STM32H753IIT6 一款32微控制器MCU/MSP430F5325IPNR一款16MCU

    ?MSP430F5325IPNR?是一款16低功耗微控制器,屬于MSP430系列。該微控制器具有以下主要特點和功能: 1、低功耗設(shè)計?:MSP430F5325IPNR采用低功耗設(shè)計,適合對能耗敏感
    發(fā)表于 02-21 14:59

    想找一款8大約15~20M采樣率的AD芯片,請問有什么芯片合適呢?

    我想找一款8大約15~20M采樣率的AD芯片,請問有什么芯片合適呢?有沒有合適的方案?
    發(fā)表于 02-07 06:24

    想選擇一款能夠?qū)崿F(xiàn)多個通道數(shù)據(jù)采集的ADC,求推薦

    各位專家好!這邊想選擇一款能夠?qū)崿F(xiàn)多個通道數(shù)據(jù)采集的ADC,由于對通道間的幅度和相位致性要求較高,最好可以嚴格控制各通道之間的同步,要求單個通道的吞吐量為1MSPS以上,SNR最好在90dB以上
    發(fā)表于 01-24 08:28

    需要找一款8LVDS信號輸入,看到DS90UB940-Q1可以輸入LVDS信號,請問解串的用哪個?

    我們現(xiàn)在需要找一款8LVDS信號輸入,壓縮成雙絞線傳輸后解串成LVDS信號直接可以驅(qū)動屏幕,目前看到DS90UB940-Q1可以輸入LVDS信號,請問解串的用哪個?
    發(fā)表于 12-27 07:42

    今日看點丨蘋果與富士康接洽,商討在中國臺灣生產(chǎn)AI服務(wù)器;英偉達正在開發(fā)一款基于ARM架構(gòu)的新型CPU

    1. 英偉達正在開發(fā)一款基于ARM 架構(gòu)的新型CPU ? 據(jù)報道,英偉達正在開發(fā)一款基于ARM架構(gòu)的新型CPU。之前業(yè)界就有關(guān)于英偉達ARM PC
    發(fā)表于 11-08 10:47 ?1048次閱讀

    希望各位能推薦一款能夠制作卡拉OK混響器的芯片?

    希望各位能推薦一款能夠制作卡拉OK混響器的芯片。謝謝
    發(fā)表于 11-04 06:59

    TPA3123制作了個音頻功放,無法工作怎么解決?

    我按照TPA3123的用戶指南上的原理圖,制作了個音頻功放,但是無論左右輸入都接地的時候,或者有信號輸入,在Lout和Rout都有這樣的波形,無法工作。希望得到大家的幫助。
    發(fā)表于 11-04 06:06

    TPA3251EVM板制作了塊板子,焊上芯片后工作不正常,為什么?

    最近模仿TPA3251EVM板制作了塊板子,原理圖與EVM板致除了沒有電源部分,電源采用外接的3.3V,12V和15V,元器件的選擇也與EVM的致,通道C/D沒有使用,C/D輸
    發(fā)表于 10-25 06:33

    SMT元件焊接與維修:傳統(tǒng)手工方法與激光技術(shù)的比較

    。因此,SMT電路板的手工焊接與維修比通孔焊接更具挑戰(zhàn)性,盡管手工焊接在某些情況下不可或缺,如科研、實驗制作、般維修等。本文將介紹傳統(tǒng)手工
    的頭像 發(fā)表于 10-22 15:55 ?1242次閱讀
    SMT元件焊接與維修:傳統(tǒng)<b class='flag-5'>手工</b>方法與激光技術(shù)的比較

    如果設(shè)計一款桌面的機器玩具,最吸引人的外觀與功能要有哪些?

    初步設(shè)想制作如下其中一款,有感興趣的朋友可以幫提提意見。 A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。 B一款迷你瓦利機器人,有
    發(fā)表于 10-19 18:25