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

正文內(nèi)容

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

2025-01-03 06:08上一頁面

下一頁面
  

【正文】 RegCLR = 0。 wire jr。 wire RegDst。 40 // Output wire [31:0] Inst。在設計 ALU 之后,對于 ISE的使用有了初步的掌握,為后期電路設計修改奠定了一定的基礎(chǔ)。 1234H。 32 xor、 nor 指令 9. 逐位異或 $9=$1 ⊕ $2。 執(zhí)行 slti、 sltiu、 slt、 sltu 時,需要將為全零或者全一的結(jié)果回寫目的寄存器中,而 ALU輸出狀態(tài)位時只輸出了 1 位。 遇到的問題: 剛開始設計時不理解 ALUOP 的用處,對生成 ALU部件的操作控制信號機制不了解,導致在設計 ALU 時覺得無從下手; ALU 是使用 ISE 進行設計的第一個器件,剛開始不熟悉 ISE 的基本操作,加上 ISE自身有非常多的錯誤,所以在畫電路圖、生成部件、修 改部件、重新測試這個過程上花了很長時間; 解決的方法: 從所需結(jié)果出發(fā),根據(jù) ALUOP 的編碼和對應的結(jié)果去考慮數(shù)據(jù)的來源和通路方向; 多做做多設計,熟悉了 ISE的工作原理,會分析是 ISE 這個軟件出錯還是自己設計出錯,根據(jù)測試結(jié)果逆向排查,及時確定問題來源; 取指部件 設計思路: 考慮到取值部分判斷電路復雜,若放在數(shù)據(jù)通路中不易辨別,故單獨封裝成一個器件,便于邏輯判斷。 對于 R 型指令,我們用另一種方式處理: 16 首先,由于 R 型指令具有統(tǒng)一的特點: op 為全 0,所以可以用一個與門表示所輸入的指令為 R 型指令: 在 OP 輸入全 0 時,這個與門輸出為 1,即判定指令為 R 型指令; 然后,由于 R 型指令依靠 function 區(qū)分,所以使用和區(qū)分 I/J 型指令一樣的模塊化設計思路,將 R 型指令的 function 對應位置進行與運算: 以 ADD 指令為例: 因此,在輸入 op 為 000000, function 為 100000 時,這個與門的輸出 ADD 為 1。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令的跳躍尋址而設置的。 4. 加深對 CPU 內(nèi)部數(shù)據(jù)通路、各個工作器件的設計、實現(xiàn)及工作原理的掌握。 6. 只有 一個時鐘源, 同時 能滿足一個時鐘周期內(nèi)修改寄存器和存儲器、跳轉(zhuǎn)等復雜操作。 最終的指令可以分為以下五類: A. 利用寄存器 操作類: add, addu, sub, subu, and, or, xor, nor, slt, sltu B. 需要 移位操作類: sll, srl, sra, sllv, srlv, srav C. 立即數(shù)操作類: addi, addiu, andi, ori, xori, slti, sltiu, lui D. 利用 存儲器操作類: sw, lw E. 跳轉(zhuǎn)指令類: beq, bne, jr, j, jal 在指令再次分類后,需要對各類指令進行逐條分析,在分析 過程中可以逐漸了解所需的元器件和具體的控制信號。 ALU 設計思路 : ALU 的職能是執(zhí)行算術(shù)運算和邏輯運算,因此需要有兩個操作數(shù)輸入,一個操作數(shù)輸 18 出,一組控制信號輸入,一組狀態(tài)信號輸出; 核心運算器件是兩個 adsu16 串聯(lián)組成的 adsu32 32 位加減法器。 電路圖: 詳見“ ”、“ ”: 25 26 遇到的問題: IPcore 生成的電路符號相對于我們的輸入輸出信號數(shù)量來說過于巨大,占用大量畫圖空間,極為不實用,而且非常不美觀。 add、 addu 指令 3. 有符號加 $3=$2+$1。 18. 邏輯右移 $17 =$5$3。 38 sltiu、 j指令 33. 立即數(shù)無符號比較 ($110) $24=1 else $24=0; 34. 跳轉(zhuǎn)到 0000098H。雖然比起有些同學的設計我們的功能沒有鮮明 的 特色,但我們在發(fā)現(xiàn)、 分析 和解決問題的過程中,考慮問題逐漸 變得 更加的全面、仔細。 wire [31:0] Instaddr。 wire IsShift。 wire [31:0] pcjia4。 memory_initialization_vector = 00000000000000000000000000000000, 10011111111111111111111111111111, 00000000000000000000000000001111, 00000000000000000000000000000010, 00000000000000000000000001011000, 11111111111111111111111111111111。 wire [3:0] ALUCtr。 wire Branch。 wire [4:0] Rw。直到最后才發(fā)現(xiàn)部分老 師給的電路圖時序有錯誤,才解決問題。 bne、 slti 指令 31. 不相等時跳轉(zhuǎn) $21 != $1 (PC+8)。 16. 取 RAM 第三行數(shù)據(jù)到 $3。 五、測試結(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。 存儲器 設計思路: 利用 IPcore wizard 生成可以事先用 coe文件初始化的 IPcore,設定這個 IPcore為字節(jié)編址, 32 位地址線, 32 位數(shù)據(jù)線, 1024Byte 總存儲空間。 在從老師給的 14 條指令向 31 條指令拓展的時候,我們發(fā)現(xiàn)需要增加新的控制線來對新增部件進行控制的同時需要調(diào)整現(xiàn)有控制線由化簡得出的連接狀態(tài)。除了指令系統(tǒng)結(jié)構(gòu)本來分成的 R、 I、 J 型指令之外,在分析具體需求(如指令的源操作數(shù)、目的操作數(shù)來源,指令需要的信號和部件等)后,繼續(xù)將操作與功能類似的指令分為同一類、而在同一類指令中的邏輯設計往往十分相似,僅僅是部分控制信號有區(qū)別。 4. 數(shù)據(jù)通路設計過程中 ,由簡至繁,在原有功能的基礎(chǔ)上使用易擴展的方式增加元器件,減少了畫圖工作量,同時為增加新的功能提供良好的接口。 5. 在測試過程中加深對單周期 CPU 設計思想、工作特點的理解。 其中 0 號 寄存器 始終 為 0。 我們已經(jīng)將指令之間的關(guān)聯(lián)去除,也不需要進行化簡操作,可以根據(jù)輸入的 op 和function 判斷是 31 條指令中的哪一條生效。跳轉(zhuǎn) 指令有延遲 22 解決的方法: 將修改指令指針寄存器的時序提前 半個周期,在下降沿修改指令指針寄存器 。這不符合程序原意。 slt、 sltu 指令 11. 有符號比較 ($3$5) $11=1 else $11=0。 26. 立即數(shù)逐位異或 $9=$1 ⊕ 1234H。在從老師給的 14 條指令向 31 條指令拓展的時候,我們發(fā)現(xiàn)需要增加新的控制線來對新增部件進行控制的同時需要調(diào)整現(xiàn)有控制線由化簡得出的連接狀態(tài)。 wire [31:0] Qb。 wire Right。 wire [31:0] NextInst。 CEGetins = 1。 CLRGetins = 1。 wire [31:0] ALUB。 wire [25:0] Target。 reg CEGetins。 這次的實驗一開始就有很多的困難。 addiu、 andi 指令 23. 立即數(shù)無符號加 $20=$2+100。 $2。 電路圖: 28 29 詳見“ ” 遇到的問題: 由于老師設計的數(shù)據(jù)通路中,存儲器寫入在下一周期,而如果下一周期要使用上一周期寫入的數(shù)據(jù),則會出現(xiàn)錯誤。 電路圖: 19 所用部件: Adsu32 32 位加減法器 Mux32 32 位雙路選擇器 And2_32 32 位 2 路與門 or2_32 32 位 2 路或門 xor2_32 32 位 2 路異或門 nor2_32 32 位 2 路或非門 mux32_8_1 32 位 8 路選擇器 aluctr ALU 控制器 輸入 ALU 控制信號,對 ALU 部件輸出控制信號 運算信號是由 adsu 和 32 位門電路的結(jié)果進過選擇器選擇進行輸出的; 狀態(tài)信號中,溢出判斷 OFL 由 adsu 輸出,小于判斷和零判斷 是我們自己通過門電路實現(xiàn)的。 在控制器內(nèi)我們將各位分別取反,得到各位的非信號,然后我們將每條指令根據(jù)指令類型( R/I/J)表示出來: 如 I 型指令 SLTI 的 op 為 001010,則用與門將進行與運算,這樣輸入 op 為 001010 時與門輸出為 1,其他時候都是 0。 當程序轉(zhuǎn)移執(zhí)行的順序時,指令的尋址就采取跳躍尋址方式。 2. 熟悉并掌握 ISE 平臺的操作,并會熟練地運用于硬件的設計、實現(xiàn)及測試。 尋址方式 指令的尋址方式采用順序?qū)ぶ贩绞脚c跳躍尋址方式結(jié)合的方式。 分析時并不考慮具體元器件內(nèi)部實現(xiàn)細節(jié),只關(guān)注與指令所需控制信號的生成,是控制器設計的基礎(chǔ)。 狀態(tài)信號由輸出結(jié)果和 adsu 產(chǎn)生,包括溢出判斷、小于判斷、零判斷。 解決的方法: 將 IPcore 生成的電路符號用一個新的電路符號重新封裝一遍,最終得到大小適合的電路符號。 31 sub、 subu 指令 5. 有符號減 $5=$3$1。 20. 取 RAM 第四行數(shù)據(jù)到 $31。 36. 取 RAM 第一行數(shù)據(jù)到 $22。 七、附錄 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()。 wire [4:0] rt。 wire Less。 // Initialize Inputs initial begin CLOCK = 0。 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, 00100100010101000000000000
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1