成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

新聞 前端
一位熱衷于自制 CPU 的 19 歲極客小伙 Filip Szkander 自己設計和制造出了 32 位功能性 RISC-V CPU,并構建了與其他自制計算機不同的個人計算機「菠蘿一號(Pineapple ONE)」。

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

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

2021 年 4 月初,一位熱衷于自制 CPU 的 19 歲極客小伙 Filip Szkander 自己設計和制造出了 32 位功能性 RISC-V CPU,并構建了與其他自制計算機不同的個人計算機「菠蘿一號(Pineapple ONE)」。從設計、調試和安裝 CPU 和所有硬件,Filip 整整花了兩年時間。Filip 還受邀在東京舉辦的 RISC-V Days Tokyo 2021 Spring 上做了演示,他也成為了該會議自 2017 年舉辦以來最年輕的演示者。

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

創建者 Filip Szkander。

整體來看,「菠蘿一號」是由8 塊正方形打印電路板垂直堆疊組成,邊側高度約為 10 厘米,外加一個VGA 顯示接口卡。一共使用了230 多個集成電路,大多數是 74HCT 系列邏輯芯片。示意圖如下:

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

32 位 RISC-V CPU 的規格如下:

  • 最大時鐘速度:500kHz
  • 程序內存:512kB
  • 內存 512kB
  • 閃存 512kB
  • VGA 輸出:200×150px(黑白)
  • 2 個 8 位輸入端口
  • 2 個 8 位輸出端口

目前,「菠蘿一號」計算機支持的命令包括:HELLO、HI、PEEK 、POKE 、SYSTEM INFORMATION、CLEAR 等。

‍此外雖然 CPU 的運行速度僅有 500kHz,但玩個貪吃蛇游戲還是綽綽有余的:

Filip 在一篇博客中介紹了他從設計 CPU、制作原型機、輸入 / 輸出端口、最終成品到軟件編程的技術細節(下文以第一人稱敘述)。

設計自己的 RISC-V CPU

此前,我在 Youtube 上發現了電子愛好者 Ben Eater 自制 CPU(構建著名的 8 位計算機和經典的 6502 微處理器)的相關教程,所以非常著迷,也就有了自制 CPU 的想法。然而,我覺得對于 CPU 基礎知識了解的還不夠,因此又觀看了 Google Robotics 軟件工程師 Robert Baruch 的教程視頻,他只使用了基本邏輯元件構建了 32 位 RISC-V CPU。

之后,我便開始在一個名為「Logisim-Evolution」的項目中制造自己的 RISC-V CPU。我給自己設定的目標是不使用任何微控制器或 FPGA,只使用基本的分立邏輯元件。編譯器支持的最基礎 RISC-V CPU 必須包含擴展「整數(I)」且至少為 32 位。此外,我還需要安裝一個 VGA(視頻圖形陣列)輸出卡。

我花了整整 6 個月的時間在 Logisim 項目上,終于得到一個可運行的程序模擬。下一步繪制所有模塊的原理圖、從 JLCPCB 網站上購買所有的 PCB(印制電路板)并重新設計。由于這是我首次購買 PCB,擔心搞砸一切,于是決定在設計過程中分模塊處理,一次選購幾個,以免自己應接不暇。

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

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

經過了兩輪設計,最后只剩下幾個模塊需要處理,其中一個是直接生成器(immediate generator)。當我絞盡腦汁想將它從模擬轉化為合適的原理圖時,發現自己犯了一個致命錯誤:完全不清楚模擬是如何運行的。幸運的是,修復起來也沒有那么困難,于是對已經制作完成的 PCB 做了改進。

原型機

接下來,我將開源電子原型平臺 Arduino連接到每個 PCB 的輸入端、同時監控輸出端并與預測端(prediction)做對比,從而對這些 PCB 進行測試。設置好之后,一切就可以自動運行了。每次測試都至少持續數個小時。

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

原型機示意圖如下:

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

Arduino 平臺僅用來調試,沒有在最終成品中使用。

盡管我單獨測試了每個 PCB,但首次嘗試還是失敗了,這不足為奇。我又不得不花費大量時間來找失敗的原因,找出了一些錯誤,如很難發現的時序問題。

輸入 / 輸出端口

我構建的 RISC-V CPU 擁有兩個 8 位輸入端口和兩個 8 位輸出端口,你可以通過 RJ50 連接器在前板上訪問。此外,頂部模塊上有一個 7 段式顯示器(7-segment display),它與一個可以通過程序訪問的寄存器相連。

至于與 VGA 顯示器的連接,我受 Ben Eater 的啟發構建了一個 VGA 卡。VGA 的輸出分辨率是 200×150 像素,黑白顯示。雖然我想實現彩色顯示,但需要使用大型 V-RAM,太貴了,也就放棄了。

下板(board)將顯示存儲在 EEPROM(帶電可擦可編程只讀存儲器,型號 39SF010A)中的靜態圖像。我在最終成品中使用到了雙端口 SRAM(靜態隨機存取存儲器)。

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

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

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

PS/2 解碼器是買的現成的,我沒有時間自己制作。

最終成品

讓原型機運行不太容易,在大約 5 個月的時間后,我終于成功了。

我又重新設計了所有的 PCB,修復錯誤,并將這些 PCB 以塔狀結構堆疊,所以每個模塊僅用針座(pinheader)相連接。重新設計 PCB 大約花了 3 個月的時間,然后對最終的 PCB 進行有序排列。

此外,我還設計并使用 Prusa i3 3D 打印機打印了一個圓柱體外殼,足以容納所有的 PCB 和 I/O 連接器,這樣也可以將鍵盤和 VGA 顯示器直接連接到計算機。

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

最終成品,左:無圓柱體外殼,右:安裝圓柱體外殼。

最終成品的組件拆卸:

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

方框圖:

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

編程

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

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

我還創建了一個具有一些有用函數的庫,代碼如下:

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

Pineshell:

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

從零開始,耗時兩年,19歲小伙自制32位Risc-V處理器,可玩貪吃蛇

大功告成!

 

責任編輯:張燕妮 來源: 機器之心Pro
相關推薦

2021-10-19 13:44:05

處理器RISC-V架構

2019-07-26 09:44:58

2015-07-31 11:26:24

Swift貪吃蛇

2017-10-12 13:00:22

LinuxRISC-V多核開源處理器

2012-06-05 14:42:57

Silverlight

2022-10-28 09:33:10

Linux貪吃蛇

2022-07-25 14:17:04

JS應用開發

2022-01-06 15:24:51

英特爾自動駕駛RISC-V

2021-06-15 09:18:51

鴻蒙HarmonyOS應用

2023-10-17 07:24:05

GPUSRISC開發

2019-03-10 22:03:52

框架工具開發

2020-12-01 12:30:02

開發技能代碼

2021-09-05 15:01:52

蘋果RISC-V招聘

2021-02-04 14:31:30

RISC-V架構GPU

2023-09-28 10:57:17

2020-08-20 20:30:49

C語言小游戲貪吃蛇

2021-04-20 11:40:12

Linux圖形庫curses

2024-12-17 17:46:05

Android原生控件貪吃蛇

2024-12-06 17:02:26

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久久久久久久久久久 | 亚洲欧美在线视频 | 国产999精品久久久久久 | 久久精品中文 | 日韩有码一区二区三区 | 久久久91精品国产一区二区三区 | 精品一区二区在线观看 | 久久噜噜噜精品国产亚洲综合 | 久久亚洲精品视频 | 日韩精品 电影一区 亚洲 | 综合久久综合久久 | 人人人人干 | 国产精品一区一区 | 黄a网站 | 国产精品毛片一区二区三区 | 人人干97| 最新中文在线视频 | a在线观看| 成人毛片视频在线播放 | 成人动慢 | 色婷婷综合在线观看 | 91最新入口| av一区二区三区 | 国产精品成人久久久久 | 一区二区高清 | 国产精品成人一区二区 | 久久99久久98精品免观看软件 | 毛片一级网站 | 欧美亚洲激情 | 久久久久久亚洲精品不卡 | 涩爱av一区二区三区 | 久久免费看| 狠狠躁18三区二区一区 | 亚洲一区二区三区免费在线 | 龙珠z在线观看 | 婷婷五月色综合 | 日韩一级在线 | 成人在线视频网址 | 夜夜骑综合 | 五月天婷婷综合 | 国产精品theporn |