---
# System prepended metadata

title: 從0到有製作自己的CPU！！ 第六周活動記錄 20220809
tags: [' 伴學松', ' 伴學松活動記錄', RISCV]

---

---
tags: RISCV, 伴學松, 伴學松活動記錄
---
# 從0到有製作自己的CPU！！ 第六周活動記錄 20220809

[TOC]

# 直播紀錄連結

{%youtube kk5OqJT_LJA %}

## 出席
- [x] KIM_WENG
- [x] 名名
- [ ] chuan
- [x] bill503084699
- [ ] 楓糖
- [x] 謝祥辰
- [x] 黑貓
- [x] sixkwnp
- [ ] Bonki
- [x] ouo314
- [x] Willwho
- [x] GYLABA
- [x] mikuthebest
- [x] Penquuin
- [x] 葉子
- [x] chiache
- [ ] painCake
- [x] EZ4ENCE
- [ ] 頂漿汗腺
- [ ] 角角
- [ ] adam chen
# 討論內容
1. program counter and instrumemory
2. Simple 5-stage RV32I解說
# 本周作業

- program counter and instrumemory 的code 

# 討論重點
1. program counter and instrumemory
2. Simple 5-stage RV32I解說
3. 課後黑貓畫的圖
![](https://i.imgur.com/sN23rkx.png)

## 點子 / 撇步
- program counter and instrumemory 結構講解
[name=six]
- program counter 也是32 bit grogram counter 4個bit 4個bit 的資料傳到 instrution memory 處理再到cpu處理
[name=six]
- 0 x 0000 0000 
- 0 x 2000 0000 program counter 的處裡地點 
- 寫mcu時常看到的表
- 寫一個C hell world 到 ripes 
- 程式的擺放地點都在code 這個memory 的地方,程式一開始的地點在這個code 地方,他會在instrution memory 裡頭取出記憶體片段找資料
- 拿到資料給register 再給解碼器去處理
- 在32bit裡面 基本上就是4個bit 運行完再去處理去做一個loop
- risc v 因為是32bit 因此是4的bit
- 但risc v 有特殊的指令集因此會有2bit的指令集
[name=黑貓]
- 4個8位元 instrution data output 是32位元 為何要跳4bit
[name=DCtime]
- 一個bytes是8位元因為設計的cpu是32位元因此會有4個bytes 每加一會對應一個size, 
[name=名名]
- pc　counter的指令看我們有沒有要細到加一的時候會印到捨麼位置，有時候用program coutner 去加一的時候,我的程式0000是指向額外的位置,有不一樣的跑法
[name= Bridan]
- 0001 0002 combyter 去給register 
[name=six]
- 播kim大影片 ([Simple 5-stage RV32I解說](https://youtu.be/4VF3UaP753s))
[name=six]
- 跑instrution memory
[name=kim]
- 管線化要 rv32i沒有要寫.... 先把write data先接上再看情況...放棄寫
- ![](https://i.imgur.com/IlwAn7J.png)
- rom要放在同一個資料夾嗎?還是要加進srcs
- kim的作法是將 data 的獨立出來
[name=six]
- 3'h4 是16進位的3個bit
- bridan 指令 addr +4主要原因是 以前的cpu的指令長度有長有短 現在設計的指令長度是固定32bit會統一+4,以前cpu的mostoin code 有長有短 有增加的就會有變化, 我們目前設計的cpu特色是+4 4bit 
- cisc 
- 6502這是Bridan 以前寫的cpu指令
- 8051
- 有些cpu長度是有長有短沒辦法固定+2 +4
- [name=six]
- 今天是講PC(Program Counter) 跟memory
