91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

手工制作了一款32位CPU

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

整體來(lái)看,「菠蘿一號(hào)」是由8塊正方形打印電路板垂直堆疊組成,每塊邊側(cè)高度約為10厘米,外加一個(gè)VGA顯示接口卡。一共使用了230多個(gè)集成電路,大多數(shù)是74HCT系列邏輯芯片。 32 位 RISC-V CPU 的規(guī)格如下:

最大時(shí)鐘速度:500kHz

程序內(nèi)存:512kB

內(nèi)存 512kB

閃存 512kB

VGA 輸出:200×150px(黑白)

2 個(gè) 8 位輸入端口

2 個(gè) 8 位輸出端口

目前,「菠蘿一號(hào)」計(jì)算機(jī)支持的命令包括:HELLO、HI、PEEK

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

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

Filip 在一篇博客中介紹了他從設(shè)計(jì) CPU、制作原型機(jī)、輸入 / 輸出端口、最終成品到軟件編程的技術(shù)細(xì)節(jié)。 設(shè)計(jì)自己的 RISC-V CPU此前,我在 Youtube 上發(fā)現(xiàn)了電子愛(ài)好者 Ben Eater 自制 CPU(構(gòu)建著名的 8 位計(jì)算機(jī)和經(jīng)典的 6502 微處理器)的相關(guān)教程,所以非常著迷,也就有了自制 CPU 的想法。然而,我覺(jué)得對(duì)于 CPU 基礎(chǔ)知識(shí)了解的還不夠,因此又觀看了 Google Robotics 軟件工程師 Robert Baruch 的教程視頻,他只使用了基本邏輯元件構(gòu)建了 32 位 RISC-V CPU。 之后,我便開(kāi)始在一個(gè)名為「Logisim-Evolution」的項(xiàng)目中制造自己的 RISC-V CPU。我給自己設(shè)定的目標(biāo)是不使用任何微控制器FPGA,只使用基本的分立邏輯元件。編譯器支持的最基礎(chǔ) RISC-V CPU 必須包含擴(kuò)展「整數(shù)(I)」且至少為 32 位。此外,我還需要安裝一個(gè) VGA(視頻圖形陣列)輸出卡。 我花了整整 6 個(gè)月的時(shí)間在 Logisim 項(xiàng)目上,終于得到一個(gè)可運(yùn)行的程序模擬。下一步繪制所有模塊的原理圖、從 JLCPCB 網(wǎng)站上購(gòu)買(mǎi)所有的 PCB(印制電路板)并重新設(shè)計(jì)。由于這是我首次購(gòu)買(mǎi) PCB,擔(dān)心搞砸一切,于是決定在設(shè)計(jì)過(guò)程中分模塊處理,一次選購(gòu)幾個(gè),以免自己應(yīng)接不暇。 Logisim-Evolution 項(xiàng)目中的模擬原理圖如下:

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

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

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

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

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

構(gòu)建了一些演示用的 I/O 模塊,它們?cè)谀┒硕加?RJ50 連接器。

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

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

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

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

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

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

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

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

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

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

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

審核編輯 :李倩

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

    關(guān)注

    68

    文章

    11279

    瀏覽量

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

    關(guān)注

    11

    文章

    2431

    瀏覽量

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

    關(guān)注

    0

    文章

    229

    瀏覽量

    24362

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    AT90USB82/162:一款強(qiáng)大的8微控制器

    AT90USB82/162:一款強(qiáng)大的8微控制器 在嵌入式系統(tǒng)的設(shè)計(jì)中,選擇合適的微控制器至關(guān)重要。今天,我們就來(lái)深入了解下Atmel公司的AT90USB82/162這款低功耗CMOS 8
    的頭像 發(fā)表于 02-09 17:20 ?299次閱讀

    探索DAC121S101QML - SP:一款高性能的12數(shù)模轉(zhuǎn)換器

    探索DAC121S101QML - SP:一款高性能的12數(shù)模轉(zhuǎn)換器 在電子設(shè)計(jì)領(lǐng)域,數(shù)模轉(zhuǎn)換器(DAC)就像是數(shù)字世界和模擬世界之間的橋梁,起著至關(guān)重要的作用。今天,我們要深入探討的是德州儀器
    的頭像 發(fā)表于 02-05 15:00 ?218次閱讀

    解析ADS1278-HT:一款高性能八通道同步采樣24ADC

    解析ADS1278-HT:一款高性能八通道同步采樣24ADC 在電子設(shè)計(jì)領(lǐng)域,模擬到數(shù)字的轉(zhuǎn)換是個(gè)關(guān)鍵環(huán)節(jié),它直接影響著系統(tǒng)的性能和精度。德州儀器(Texas Instruments
    的頭像 發(fā)表于 02-05 14:35 ?216次閱讀

    ADS7828:一款高性能128通道采樣ADC的深度解析

    的ADS7828,一款具有出色性能和廣泛應(yīng)用的12、8通道采樣ADC。 文件下載: ads7828.pdf 、ADS7828概述 ADS7828是一款單電源、低功耗的12
    的頭像 發(fā)表于 12-07 10:13 ?1233次閱讀
    ADS7828:<b class='flag-5'>一款</b>高性能12<b class='flag-5'>位</b>8通道采樣ADC的深度解析

    深入解析ADS8323:一款高性能16模數(shù)轉(zhuǎn)換器

    一款16、500kSPS的模數(shù)轉(zhuǎn)換器,具有諸多出色的特性和廣泛的應(yīng)用場(chǎng)景。 文件下載: ads8323.pdf 、產(chǎn)品概述 ADS8323是一款帶有內(nèi)部2.5V參考的16
    的頭像 發(fā)表于 12-07 10:08 ?959次閱讀
    深入解析ADS8323:<b class='flag-5'>一款</b>高性能16<b class='flag-5'>位</b>模數(shù)轉(zhuǎn)換器

    ADC084S021:一款高性能8A/D轉(zhuǎn)換器的詳細(xì)解析

    50 Ksps至200 Ksps的8A/D轉(zhuǎn)換器。 文件下載: adc084s021.pdf 、產(chǎn)品概述 ADC084S021是一款低功耗的CMOS 8模擬 - 數(shù)字轉(zhuǎn)換器,采用
    的頭像 發(fā)表于 12-01 15:40 ?486次閱讀
    ADC084S021:<b class='flag-5'>一款</b>高性能8<b class='flag-5'>位</b>A/D轉(zhuǎn)換器的詳細(xì)解析

    深入解析DAC7552:一款高性能12雙路DAC芯片

    ? 在電子設(shè)計(jì)領(lǐng)域,數(shù)模轉(zhuǎn)換器(DAC)是連接數(shù)字世界和模擬世界的關(guān)鍵橋梁。今天,我們要深入探討的是德州儀器(TI)推出的一款12雙路電壓輸出DAC——DAC7552。它在性能、功能和應(yīng)用方面都有
    的頭像 發(fā)表于 12-01 09:42 ?712次閱讀
    深入解析DAC7552:<b class='flag-5'>一款</b>高性能12<b class='flag-5'>位</b>雙路DAC芯片

    深度剖析ADS5273:一款高性能8通道12ADC

    ? 在電子設(shè)計(jì)領(lǐng)域,模數(shù)轉(zhuǎn)換器(ADC)的性能直接影響著整個(gè)系統(tǒng)的精度和穩(wěn)定性。今天,我們就來(lái)詳細(xì)探討下德州儀器(TI)的ADS5273,一款8通道、12、70MSPS的高性能ADC。 文件下載
    的頭像 發(fā)表于 11-30 14:41 ?916次閱讀
    深度剖析ADS5273:<b class='flag-5'>一款</b>高性能8通道12<b class='flag-5'>位</b>ADC

    DAC8552:一款高性能16雙通道數(shù)模轉(zhuǎn)換器的深度剖析

    ? 在電子工程師的日常設(shè)計(jì)中,數(shù)模轉(zhuǎn)換器(DAC)是個(gè)不可或缺的角色,它能將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),廣泛應(yīng)用于各種電子設(shè)備中。今天,我們就來(lái)深入了解下德州儀器(TI)的DAC8552,一款16
    的頭像 發(fā)表于 11-29 09:39 ?1254次閱讀
    DAC8552:<b class='flag-5'>一款</b>高性能16<b class='flag-5'>位</b>雙通道數(shù)模轉(zhuǎn)換器的深度剖析

    探索ADS5474:一款高性能14、400-MSPS模數(shù)轉(zhuǎn)換器

    : ads5474.pdf 、產(chǎn)品概述 ADS5474是一款14、400-MSPS的模數(shù)轉(zhuǎn)換器,它能夠在5V和3.3V電源下穩(wěn)定工作,并提供LVDS兼容的數(shù)字輸出。該ADC屬于個(gè)
    的頭像 發(fā)表于 11-27 14:04 ?626次閱讀
    探索ADS5474:<b class='flag-5'>一款</b>高性能14<b class='flag-5'>位</b>、400-MSPS模數(shù)轉(zhuǎn)換器

    靈動(dòng)微電子最新最火熱的一款芯片推薦

    希望找一款靈動(dòng)微電子最新最火熱的一款芯片,我們想做個(gè)圖形化的界面配置,供大家以后直接創(chuàng)建工程,用國(guó)產(chǎn)工具M(jìn)cuStudio做,McuStudio支持任何內(nèi)核任何廠家的芯片,希望大家有推薦的型號(hào)可以發(fā)給我
    發(fā)表于 10-29 17:15

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

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

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

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

    使用CY3014USB芯片組制作了臺(tái)相機(jī),視頻顯示延遲怎么解決?

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

    RF-Labs手工成型電纜組件

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