---
# System prepended metadata

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

---

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

[TOC]

# 直播紀錄連結

{%youtube K2Xoq55J_xQ%}

## 出席

- [x] KIM_WENG
- [x] 名名
- [ ] chuan
- [x] bill503084699
- [ ] 楓糖
- [x] 謝祥辰
- [x] 黑貓
- [x] sixkwnp
- [ ] Bonki
- [x] ouo314
- [x] Willwho
- [x] GYLABA
- [x] mikuthebest
- [x] Penquuin
- [x] 葉子
- [ ] painCake
- [x] EZ4ENCE
- [ ] 頂漿汗腺
- [ ] 角角
- [ ] adam chen

# 討論內容
0. 開發板問題
1. 課前解決問題
2. register write back 
3. 參與證明
4. branch指令 jump指令
5. ripes實做branch

# 本周作業

- jump指令branch指令
# 討論重點

1. 將之前架構講通通串起來 
2. [willwho 的 github](https://github.com/be1ieve/accomdemy_rv32i)
3. branch 指令
```asm=
addi s0, s1, 3
addi a0, a1, 3
add a2,a0,s0 
beq s0,a0 8
addi t0,t1,1
addi t2,t3,2
addi t4,t5,3
```
# 參考網址
[RISC-V: Branch 指令](https://ithelp.ithome.com.tw/articles/10273738)
[RISC-V: Jump 指令](https://ithelp.ithome.com.tw/articles/10273736)
[RISC-V 条件和无条件跳转指令](https://cloud.tencent.com/developer/article/1855332)
[litex](https://github.com/enjoy-digital/litex)
[CFU](https://github.com/google/CFU-Playground)
# 點子
- mikuthebest 跟李大哥訂到送的 FPGA 開發板
[name=mikuthebest]
- 提問題,結果沒定義接線wire Reg
[name=第三組]
- 獎狀對於推甄有沒有幫助，結論:主要是內容跟學習心路歷程 by 教授
[name=everybody]
- 徽章 & 參與證明
[name=第三組]
- 寫ripes的項目always@()裡面的項目，方向跟列表表示的rs1 rs2 function要顛倒
[name=will]
- branch指令blt bltu 
[name=第三組]
- branch 能定義的範圍值只有12bit要超過要jump 指令J I type… 
[name=第三組]
- 用ripes簡單做branch 指令
[name=第三組]
- b type imm*4
[name=第三組]
- 目前講的是single cycle
[name=willwho]
- branch, jump, jump register(JAL) 中 jump registe(JALR) 跳最遠
[name=第三組]
- branch就是做four迴圈再用jump跳進來，jump距離正負兩ma嘎
[name=第三組]
- jump的指令都會有rd，因為要知道回來要嗎要有se，很特殊的暫存區，
- ra 特殊的東西不希望亂動（1到6ytpe能亂動）
- sp你的一些暫存都是放在這不能亂改
- ra sp你用完就要存回去
- 你完成一個副程式就要清乾淨，用完要恢復原始狀態
[name=willwho]
- branch jump 指令會牽涉 
- pc的改變 
- riscv 分支預設
[name=kim]
- five stage貌似是沒辦法兜出來
[name=kim]
- branch 有condition跟沒有condition,有jump是condition
[name=kim]
- jump 需要program counter跟……
[name=willwho]
- branch要做兩次運算pc rs1 rs2相等不相等 正負……，需要兩次運算
- 成立與不成立
[name=第三組]
- memory.v要去操控data memory
[name=kiml.will]
- 額外掛在rv32i 外面的data memory(哈佛架構) instructions memory
[name=kim]
- instruction memory 跟data memory 一起寫進fpga
[name=kim]
- 一開始不用寫進fpga,而是直接用fpga的instrution?
- 
- inter rob?(起碼一個月)
- data box…
[name=kim]
- single cycle也是一個cpu，不用緊張
[name=willwho]
- 寫branch
- 5 stage要從新寫指令
[name=kim]
