---
tags: RISCV, 伴學松, 伴學松活動記錄
---
# 從0到有製作自己的CPU!! 第十周活動記錄 20220906
[TOC]
# 直播紀錄連結
{%youtube }
## 出席
- [x] KIM_WENG
- [] 名名
- [] chuan
- [x] bill503084699
- [ ] 楓糖
- [x] 謝祥辰
- [x] 黑貓
- [x] sixkwnp
- [] Bonkiouo314
- [x] Willwho
- [] GYLABA
- [] mikuthebest
- [x] Penquuin
- [] 葉子
- [] painCake
- [] EZ4ENCE
- [] 頂漿汗腺
- [] 角角
- [] adam chen
# 討論內容
1. 測試丟進去 Ripes
# 本周作業
- 寫willwho寫得東西
# 討論重點
1. 實做第三組的git code
2. 接下來是設計memory controler
3. 討論完可以用外面的ram去參訪設計同樣的ram的 module 最小開始
## 點子 / 撇步
- x15要歸零'
[name=willwho]
- x14設新值
[name=willwho]
- x14不是0就往回跳,12是16進位的12,x15就變成18,繼續跑27-跑到81,x15變成0最後變成第七行的nope,當暫停指令很好用,不能用註解指令bywillwho幫其他人解答
[name=willwho]
- test instruction
[name=willwho]
- cpu裡面的register的14,我們來看14跟15然後再跑一次
[name=willwho,kim]
- 4個btye我們再讀取是用 read memory因此我們要把指令分成四顆,生成下面兩行然後註解0這樣
[name=willwho,kim]
- ~~測試要有耐心~~
[name=willwho,kim]
- 5 nano sec 走 clock
[name=willwho,kim]
- bne 影響指令的跳動
[name=willwho,kim]
- 原本指令影響bne所以bne跑到04
[name=willwho,kim]
- (04)(08)
[name=willwho,kim]
- 基本上我們把所有cpu拉出來就變成這樣一開始先清0以後再到clk第一部x14x5 第二部0003,第二個code x15做成3遞減遞減做出來跟ripes結果差不多當時又將要跟ripes差不多
[name=willwho,kim]
- 543210到後面就沒有動作到後面就沒有了,後面再加回來,我們所有運算泡完以後他們會把1415清0,實做階段沒有基礎的東西,會到ripes再開根號
[name=willwho,kim]
- 好不容易15弄到81怎麼又歸0,開根號有沒有問題,x15沒事減12,x14沒事減16
[name=willwho,kim]
- 中間邊0,第三組的codewill不懂
[name=willwho,kim]
- 上面知道可以歸0,code看得懂但用意我看不懂,先歸0,15測變負6,
[name=willwho,kim]
- 歸零應該在一開始做
[name=willwho,kim]
- 應該是有偏移最後 x16要跑6出來
[name=willwho,kim]
- 測負數
[name=willwho,kim]
- x14測14兩個相減變6後面沒code理論上是對的,所以後面的有沒有寫完?
[name=willwho,kim]
- 如果x2比x3大就好一直往上跑bge是大於等於8327 2671
[name=willwho,kim]
- 我們要把register拉出來,register1到4寫完跑一次一開始不動作,s1 123456 1到後面沒了不動作但我們data code沒做完沒辦法做太多東西要一直測不同的東西做測試是要想辦法把code弄爛掉,每次存取都在4byte裡面只要在偏移之內跨刀兩個base a 就跨到aro,我們只要處理還在同樣4個byte word就是要存取,超出4byte就要aro,我們今天先把
[name=willwho,kim]
- 跟tom講解word ripes我們今天處理兩個byte是要處理還是,計畫用4個bank去處理,32寬度記憶體,一次一個word一次跨的兩次讀取與儲存,4個byte作為一個單位去切一個word作為一個記憶體
[name=willwho,kim]
- 兩次讀取兩次平移一次合併變成五個指令,一個改變指令要五個指令,一個選擇可作可不做,就是變成爆錯,變成多個stage,有一個特殊register,如果我們在特殊前提,……
[name=willwho,kim]
- rs2 rs1 imm sw
- rs2 =data
- rs1+imm=addr
- 我們要的存在rs2要的資料在平移s2通常當暫存記憶體,我們再用我們先把10
- li tt0 0x123
- sw t0,sp 0
[name=willwho,kim]
- t0 存到g0偏移一格
[name=willwho,kim]
- 處理32bit要靠lui因此要先提早做lui,在下面bit要處理
[name=willwho,kim]
- 不可變成指令長度造成的折衷違反規定risc v
- (bill有事情9:16失賠)
[name=willwho,kim]
- aro paneti 效能損耗,找一個型號的ram,根據ram設計那種ram model,外面設計的成品,我們就照樣模仿(美光)設計從最低階,一個byte兩個byte,如果允許跨word至少8 16byte
[name=willwho,kim]
# 連結
[accomdemy_rv32](https://github.com/accomdemy/accomdemy_rv32i)
[RV32i_Imp](https://github.com/algasami/RV32i_Imp/blob/3d7ffe730d2763488739f37c0f47064f17d0b8de/sources_1/new/decoder.v#L122)
[美光 SDR SDRAM](https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/dram/64mb_x32_sdram.pdf?rev=a9d800c71303471f9959cfa6eb9d64ce)
https://detail.tmall.com/item.htm?id=609758951113
https://www.hackster.io/shengr/xilinx-vivado-board-files-for-spartan-edge-accelerator-1-e99826
5. https://cfu-playground.readthedocs.io/en/latest/
https://github.com/google/CFU-Playground
6. https://www.hackster.io/shengr/xilinx-vivado-board-files-for-spartan-edge-accelerator-1-e99826
7. https://blog.minexo79.club/2022/07/17/halfyear-update/#FPGA-amp-AI
# 聊天室圖片
# 聊天室紀錄














