--- 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]