--- 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 # 聊天室圖片 # 聊天室紀錄 ![](https://i.imgur.com/t8LHdqJ.jpg) ![](https://i.imgur.com/Hbop2X5.jpg) ![](https://i.imgur.com/cXQgRhK.jpg) ![](https://i.imgur.com/Pvw25W2.jpg) ![](https://i.imgur.com/Mzw7hOQ.jpg) ![](https://i.imgur.com/B3WBG89.jpg) ![](https://i.imgur.com/1lRS5P0.jpg) ![](https://i.imgur.com/7b1OP6O.jpg) ![](https://i.imgur.com/ildOgGs.jpg) ![](https://i.imgur.com/kVV8fBu.png) ![](https://i.imgur.com/sKf4xzc.png) ![](https://i.imgur.com/AF3y1ay.png) ![](https://i.imgur.com/ezYdVCn.png) ![](https://i.imgur.com/0twM60D.png) ![](https://i.imgur.com/LVryKcC.png)