freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mips的31條指令集和ise軟件的單周期cpu設計與實現(xiàn)(參考版)

2024-11-12 06:08本頁面
  

【正文】 memory_initialization_vector = 00000000000000000000000000000000, 10011111111111111111111111111111, 00000000000000000000000000001111, 00000000000000000000000000000010, 00000000000000000000000001011000, 11111111111111111111111111111111。 memory_initialization_vector = 10001100000000010000000000000100, 10001100000000100000000000001000, 00000000001000100001100000100000, 00000000001000100010000000100001, 00000000011000010010100000100010, 00000000100000010011000000100011, 00000000001000100011100000100100, 00000000001000100100100000100101, 00000000001000100100100000100110, 00000000001000100101000000100111, 00000000011001010101100000101010, 00000000100001100011000000101011, 00000000000000110110100010000000, 00000000000001000111000010000010, 00000000000001010111100010000011, 10001100000000110000000000001010, 43 00000000011001001000000000000100, 00000000011001011000100000000110, 00000000011001011001000000000111, 10001100000111110000000000010000, 00000011111000000000000000001000, 10001100000111110000000000010001, 00100000001100110000000000000100, 00100100010101000000000000000100, 00110000001001110001001000110100, 00110100001010000001001000110100, 00111000001010010001001000110100, 00111100000101010000000000000100, 10101100000101010000000000010100, 10001100000101100000000000010100, 00010010101101100000000000000001, 10001100000101100000000000000100, 00010110101000010000000000000001, 10001100000101100000000000001000, 00101000001101110000000000000010, 00101100001110000000000000000010, 00001000000000000000000000100110, 10001100000101100000000000001100, 00001100000000000000000000101000, 10001100000101100000000000001000, 10001100000101100000000000000100。 forever 3 CLOCK = ~CLOCK。 CLRGetins = 0。 1。 CEGetins = 0。 // Initialize Inputs initial begin CLOCK = 0。 wire [31:0] pcjia4。 wire [3:0] ALUCtr。 wire cmpless。 wire [4:0] Shamt。 wire [31:0] luibit。 wire LUI。 wire [4:0] rd。 wire Less。 wire IsShift。 wire Branch。 wire MemWr。 wire ExtOp。 wire Arith。 wire RegWr。 wire [15:0] Immediate。 wire [4:0] rt。 wire [31:0] Instaddr。 wire [4:0] Rw。 wire [31:0] Qa。 wire [31:0] RAMOut。 wire REGWe。 reg CLRGetins。 reg RegCLR。 七、附錄 1. 測試程序: // Verilog test fixture created from schematic C:\Users\CPU\test\ Thu Oct 16 14:45:18 2020 `timescale 10ns / 1ps module data_channel_data_channel_sch_tb()。雖然比起有些同學的設計我們的功能沒有鮮明 的 特色,但我們在發(fā)現(xiàn)、 分析 和解決問題的過程中,考慮問題逐漸 變得 更加的全面、仔細。直到最后才發(fā)現(xiàn)部分老 師給的電路圖時序有錯誤,才解決問題。但是多次修改電路導致多次封裝器件,耗費了不少時間。最后利用模塊化的設計思路成功將控制電路設計完成。 在控制器的設計中,需要逐步化簡控制信號的邏輯關系, ALU 控制器設計還算比較簡單,在整個電路的控制器設計中發(fā)現(xiàn)對每個信號都要做大量重復性質(zhì)很強的的化 簡操作,一旦出錯還非常不容易檢查,需要從化簡開始從頭檢查。實驗初期熟悉 ISE這款軟件就費了很大的功夫,查看官方 文檔 了解各元件的原理和性能,學習軟件的使用。 唐志灝主要負責 ALU、 改進 的寄存器堆、取指部件的 設計、實現(xiàn)、測試 以及實驗報告中相關部分原理分析。 36. 取 RAM 第一行數(shù)據(jù)到 $22。 38 sltiu、 j指令 33. 立即數(shù)無符號比較 ($110) $24=1 else $24=0; 34. 跳轉(zhuǎn)到 0000098H。 bne、 slti 指令 31. 不相等時跳轉(zhuǎn) $21 != $1 (PC+8)。 37 lw、 beq 指令 29. 取 RAM 第五行數(shù)據(jù)到 $22。 lui、 sw指令 27. 低位移到高位 $21 =100*65536。 36 ori、 xori 指令 25. 立即數(shù)逐位或 $8=$1 || 1234H。 24. 立即數(shù)逐位與 $7=$2 amp。 22. 立即數(shù)有符號加 $19=$1+100。 20. 取 RAM 第四行數(shù)據(jù)到 $31。 18. 邏輯右移 $17 =$5$3。 16. 取 RAM 第三行數(shù)據(jù)到 $3。 14. 邏輯右移 $14 =$410。 12. 無符號比較 ($4$6) $12=1 else $12=0。 10. 逐位或非 $10= ~($1 || $2)。 8. 逐位或 $8=$1 || $2。 and、 or 指令 7. 逐位與 $7=$1 amp。 31 sub、 subu 指令 5. 有符號減 $5=$3$1。 add、 addu 指令 3. 有符號加 $3=$2+$1。 五、測試結(jié)果 1. 說明: CLOCK:時鐘信號 Inst[31:0]:當前指令 NextInst[31:0]:下條指令 RAMOut[31:0]:從 RAM 取出的值 Result[31:0]: ALU 計算的結(jié)果 ShiftResult[31:0]:移位的位數(shù) Qb[31:0]:寄存器堆的讀出數(shù)據(jù) Qa[31:0]:寄存器堆的讀出數(shù)據(jù) BusW[31:0]:寫入寄存器堆的數(shù)據(jù) Rw[4:0]:寄存器堆要寫的寄存器號 OP[5:0]:指令的 OP 部分 Instaddr[31:0]:當前 PC 的值 Pcjia4[31:0]:當前 PC 加 4 的值 Fun[5:0]:指令的 Func 部分 rt[4:0]:當前指令 rt 部分 30 rs[4:0]:當前指令 rs 部分 rd[4:0]:當前指令 rd 部分 Immediate[15:0]:取指部分立即數(shù) Target[25:0]:取指部分 Target 2. 具體執(zhí)行部分的截圖: lw 指令 1. 取 RAM 第一行數(shù)據(jù)到 $1。 在數(shù)據(jù)通路中增加一個 132 位擴展器,接收 1 位信號,輸出 32 位擴展的信號。 解決的方法: 我們將存儲器寫入放在當前周期的下降沿,從而使得在本周期內(nèi)可以實現(xiàn)回寫存儲器。 執(zhí)行 j,jal時,總是會導致跳轉(zhuǎn)指令在執(zhí)行下一條指令后才跳轉(zhuǎn)。 BNE指令運行時,老師給的只包括 BEQ 的取指部件和控制器輸出無法判定 BNE 是否轉(zhuǎn)移。 總體原理圖(不包括取指部件)如下: 特別說明:由于在設計 ALU 時未加入移位器,所以在數(shù)據(jù)通路中將移位器單獨連接。 解決的方法: 將 IPcore 生成的電路符號用一個新的電路符號重新封裝一遍,最終得到大小適合的電路符號。 電路圖: 詳見“ ”、“ ”: 25 26 遇到的問題: IPcore 生成的電路符號相對于我們的輸入輸出信號數(shù)量來說過于巨大,占用大量畫圖空間,極為不實用,而且非常不美觀。 存儲器 設計思路: 利用 IPcore wizard 生成可以事先用 coe文件初始化的 IPcore,設定這個 IPcore為字節(jié)編址, 32 位地址線, 32 位數(shù)據(jù)線, 1024Byte 總存儲空間。具體改動如下: 24 在我們的改進中,對單個的寄存器堆加入 了寫入控制端,然后將兩個寄存器堆組合在一起,同時控制寫入,這樣就能避免寫入不同步。 寄存器堆 設計思路: 我們發(fā)現(xiàn)學長所給的 32*32位寄存器堆缺少寫入控制引腳,不能滿足設計要求,因此對其進行了比較小的改進。 設計圖: 20 所用部件: 32 位加法器 1632 位擴展器 左移 2 位器 1 位與門 32 位寄存器 32 位二選一選擇器 詳情見“ ” 電路圖 : 21 遇到的問題: 在執(zhí)行跳轉(zhuǎn)指令時會 先執(zhí)行原先 PC+4 的 指令, 再 執(zhí)行跳轉(zhuǎn) 目標 指令 。 對于零判斷,比較理想的方式應該是再封裝一個零判斷的模塊,輸入 32 位數(shù)據(jù),通過或非門輸出 1位結(jié)果;但是在這個課程設計中我們考慮到這個模塊沒有被復用的地方,也就是說即使封裝也沒有使用之處,就沒有對其進行單獨封裝。這也導致了在數(shù)據(jù)通路中需要單獨為 移位器設計,增加了數(shù)據(jù)通路的復雜性。 狀態(tài)信號由輸出結(jié)果和 adsu 產(chǎn)生,包括溢出判斷、小于判斷、零判斷。 ALU 設計思路 : ALU 的職能是執(zhí)行算術(shù)運算和邏輯運算,因此需要有兩個操作數(shù)輸入,一個操作數(shù)輸 18 出,一組控制信號輸入,一組狀態(tài)信號輸出; 核心運算器件是兩個 adsu16 串聯(lián)組成的 adsu32 32 位加減法器。 在從老師給的 14 條指令向 31 條指令拓展的時候,我們發(fā)現(xiàn)需要增加新的控制線來對新增部件進行控制的同時需要調(diào)整現(xiàn)有控制線由化簡得出的連接狀態(tài)。一開始是想偷個懶,化簡出每個信號的表達式,然后根據(jù)化簡后的結(jié)果直接連接原始 op 信號、 function 信號到輸出腳上。 控制器真值表見附件“真值表 .htm”; 17 ALU 控制器真值表見附件“ ALU 控制器真值表 .htm”; 我們以真值表中的 extop 信號生成過程為例說明我們的設計思路: 由真值表可知, extop 信號在 ADDI、 ANDI、 LW、 SW、 SLTI 指令時為 1,其他指令時為 0,因此,我們利用前面模塊化設計取出的 31條指令,將可以使 extop 為 1 的信號輸入或門,從而得到 extop 信號的輸出; 這樣做可以 避免化簡 ,同時 可維護性非常好 ,如果有新的部件加入,需要新的控制信號,只需要在得到新的真值表后將對應為 1 的指令信號項取出來,輸入或門,就能得出控制信號,免去了對整個控制器重新化簡、調(diào)整的步驟,從而使這個控制器對 MIPS指 令集 有良好的可擴展性 ,將我們現(xiàn)在做的 31 條指令擴展到 57 條是觸手可及的。 對所有指令進行這樣的表示后,我們會得到 31 個輸出,分別代表 31 條指令。其他 I、 J 型指令
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1