![實驗一簡化的RISCCPU設計.ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-2/1/4a6451c4-0018-4a7d-a7c3-ca153df15ecc/4a6451c4-0018-4a7d-a7c3-ca153df15ecc1.gif)
![實驗一簡化的RISCCPU設計.ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-2/1/4a6451c4-0018-4a7d-a7c3-ca153df15ecc/4a6451c4-0018-4a7d-a7c3-ca153df15ecc2.gif)
![實驗一簡化的RISCCPU設計.ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-2/1/4a6451c4-0018-4a7d-a7c3-ca153df15ecc/4a6451c4-0018-4a7d-a7c3-ca153df15ecc3.gif)
![實驗一簡化的RISCCPU設計.ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-2/1/4a6451c4-0018-4a7d-a7c3-ca153df15ecc/4a6451c4-0018-4a7d-a7c3-ca153df15ecc4.gif)
![實驗一簡化的RISCCPU設計.ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-2/1/4a6451c4-0018-4a7d-a7c3-ca153df15ecc/4a6451c4-0018-4a7d-a7c3-ca153df15ecc5.gif)
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1,實踐項目內容,數(shù)字電路的數(shù)字鐘; 高級數(shù)字系統(tǒng)設計與驗證的數(shù)字鐘; SoC系統(tǒng)開發(fā)的數(shù)字鐘。,2,實踐項目成果,3,項目第一部分 簡化的RISC_CPU設計,4,1、概 述,設計所用語言 Verilog HDL 設計所用方法 Top-Down設計方法 設計所用知識 數(shù)字電路 計算機組成原理 高級數(shù)字系統(tǒng)設計與驗證 可綜合風格的組合邏輯電路設計 有限狀態(tài)機的設計,5,設計所用開發(fā)環(huán)境 ISE8.2 ModelSim6.1 設計和實現(xiàn)的目標 完成8條指令的RISC CPU設計 完成對所設計RISC CPU的驗證 實現(xiàn)RISC CPU在FPGA開發(fā)板上的正確運行,1、概 述,6,2、 什么是RISC CPU,CPU的意思 中央處理單元的縮寫,它是計算機的核心部件 RISC的意思 精簡指令集計算機(Reduced Instruction Set Computer)的縮寫,7,2、 什么是RISC CPU,RISC CPU簡介 是20世紀80年代才出現(xiàn)的CPU,與一般的CPU相比不僅只是簡化了指令系統(tǒng),而且還通過簡化指令系統(tǒng),使計算機的結構更加簡單合理,從而提高運算速度,8,3、 RISC CPU功能分析,計算機利用RISC CPU處理信息的步驟 將數(shù)據(jù)和程序(即指令序列)輸入到計算機的 存儲器中 從第一條指令的地址起開始執(zhí)行該程序,得到所需結果,結束運行,9,RISC CPU的作用 協(xié)調并控制計算機的各個部件 執(zhí)行程序的指令序列 RISC CPU的基本功能 取指令 分析指令 執(zhí)行指令,3、 RISC CPU功能分析,10,取指令 當程序已經(jīng)在存儲器中時,首先根據(jù)程序入口地址取出一條程序,為此要發(fā)出指令地址及控制信號。 分析指令 即指令譯碼,這是對當前取得的指令進行分析,指出它要求什么操作,并產生相應的操作控制命令。,3、 RISC CPU功能分析,11,執(zhí)行指令 根據(jù)分析指令時產生的“操作命令”形成相應的操作控制信號序列,通過運算器、存儲器及輸入/輸出設備的執(zhí)行,實現(xiàn)每條指令的功能,其中包括對運算結果的處理以及下條指令地址的形成。,3、 RISC CPU功能分析,12,取指令 當程序已經(jīng)在存儲器中時,首先根據(jù)程序入口地址取出一條程序,為此要發(fā)出指令地址及控制信號。 指令寄存器 分析指令 即指令譯碼,這是對當前取得的指令進行分析,指出它要求什么操作,并產生相應的操作控制命令。 譯碼器,3、 RISC CPU功能分析,13,執(zhí)行指令 根據(jù)分析指令時產生的“操作命令”形成相應的操作控制信號序列,通過運算器、存儲器及輸入/輸出設備的執(zhí)行,實現(xiàn)每條指令的功能,其中包括對運算結果的處理以及下條指令地址的形成。 算術邏輯運算單元(ALU) 累加器 程序計數(shù)器(PC),3、 RISC CPU功能分析,14,RISC CPU整體功能 取指令 分析指令 執(zhí)行指令 狀態(tài)控制器 地址控制器 數(shù)據(jù)控制器 時鐘控制器,3、 RISC CPU功能分析,15,RISC CPU需要執(zhí)行的操作 系統(tǒng)的復位和啟動操作 總線讀操作 總線寫操作,4、 RISC_CPU操作和時序,16,系統(tǒng)的復位和啟動操作 RISC_CPU的復位和啟動操作是通過rst引腳的信號觸發(fā)執(zhí)行的; 當rst信號一進入高電平,RISC_CPU就會結束現(xiàn)行操作,并且只要rst停留在高電平狀態(tài),CPU就維持在復位狀態(tài); 在復位狀態(tài),CPU各內部寄存器都被設為初值,全部為零。數(shù)據(jù)總線為高阻態(tài),地址總線為0000H,所有控制信號均為無效狀態(tài); rst回到低電平后,接著到來的第一個時鐘上升沿將啟動RISC_CPU開始工作,從ROM的000處開始讀取指令并執(zhí)行相應操作。,4、 RISC_CPU操作和時序,17,總線讀操作 每個指令周期的前03個時鐘周期用于讀指令; 第3.5個周期處,存儲器或端口地址就輸出到地址總線上; 第46個時鐘周期,讀信號rd有效,數(shù)據(jù)送到數(shù)據(jù)總線上,以備累加器鎖存,或參與算術、邏輯運算; 第7個時鐘周期,讀信號無效,第7.5個時鐘周期,地址總線輸出PC地址,為下一指令做好準備。,4、 RISC_CPU操作和時序,18,總線寫操作: 每個指令周期的第3.5個時鐘周期處,寫的地址就建立了; 第4個時鐘周期輸出數(shù)據(jù); 第5個時鐘周期輸出寫信號,至第6個時鐘結束,數(shù)據(jù)無效; 第7.5個時鐘周期,地址輸出為PC地址,為下一指令做好準備。,4、 RISC_CPU操作和時序,19,指令系統(tǒng)由8條指令組成: HLT:停機操作。該操作將空一個指令周期,即8個時鐘周期; SKZ:若為零跳過下一條語句。該操作先判斷當前累加器中的結果是否為零,若為零就跳過下一條語句,否則繼續(xù)執(zhí)行; ADD:該操作將累加器中的值與地址所指的存儲器或端口的數(shù)據(jù)相加,結果仍送回累加器中; ANDD:該操作將累加器的值與地址所指的存儲器或端口的數(shù)據(jù)相與,結果仍送回累加器中;,5、RISC_CPU尋址方式和指令系統(tǒng),20,指令系統(tǒng)由8條指令組成: XORR:該操作將累加器的值與指令中給出地址的數(shù)據(jù)異或,結果仍送回累加器中; LDA:該操作將指令中給出地址的數(shù)據(jù)放入累加器; STO:該操作將累加器的數(shù)據(jù)放入指令中給出的地址; JMP:該操作將跳轉至指令給出的目的地址,繼續(xù)執(zhí)行。,5、RISC_CPU尋址方式和指令系統(tǒng),21,RISC_CPU是8位微處理器,一律采用直接尋址方式,即數(shù)據(jù)總是放在存儲器中,尋址單元的地址由指令直接給出。,5、RISC_CPU尋址方式和指令系統(tǒng),22,頂層模塊,6、RISC_CPU的設計,23,數(shù)據(jù)通道,6、RISC_CPU的設計,24,狀態(tài)控制器,6、RISC_CPU的設計,25,7、RISC_CPU的實現(xiàn),26,數(shù)據(jù)通道,2,7,3,6,4,1,5,27,模塊1,時鐘發(fā)生器,28,時鐘發(fā)生器clkgen利用外來時鐘信號clk生成一系列時鐘信號clk1、fetch、alu_clk,并送往CPU的其他部件。 其中,fetch是外來時鐘clk的8分頻信號,利用fetch的上升沿來觸發(fā)CPU控制器開始執(zhí)行一條指令,同時fetch信號還將控制地址多路器輸出指令地址和數(shù)據(jù)地址; clk1信號用作指令寄存器、累加器、狀態(tài)控制器的時鐘信號; alu_clk則用于觸發(fā)算術邏輯運算單元。,模塊一 時鐘發(fā)生器,29,模塊2,指令寄存器,30,指令寄存器的觸發(fā)時鐘是clk1,在clk1的正沿觸發(fā)下,寄存器將數(shù)據(jù)總線送來的指令存入高8位或低8位寄存器中,但并不是每個clk1的上升沿都寄存數(shù)據(jù)總線的數(shù)據(jù),因為數(shù)據(jù)總線上有時傳輸指令,有時傳輸數(shù)據(jù); 是不是指令由CPU狀態(tài)控制器的load_ir信號控制,該信號通過ena口輸入到指令寄存器,高電平表示是指令; 復位信號高有效,指令寄存器被清為零; 每條指令為兩個字節(jié),即16位。高3位是操作碼,低13位是地址(CPU的地址總線為13位,尋址空間為8K字節(jié)) 數(shù)據(jù)總線為8位,所以每條指令需取兩次,先取高8位,后取低8位。,模塊二 指令寄存器,31,模塊3,累加器,32,累加器用于存放當前的結果,它也是雙目運算中的一個數(shù)據(jù)來源; 復位后,累加器的值是零; 當累加器通過ena口收到來自CPU狀態(tài)控制器load_acc信號時,在clk1時鐘正跳沿時就收到來自于數(shù)據(jù)總線的數(shù)據(jù)。,模塊三 累加器,33,模塊4,算數(shù)運算器,34,算術邏輯運算單元根據(jù)輸入的8種不同操作碼分別實現(xiàn)相應的加、與、異或、跳轉等基本操作運算; 利用這幾種基本運算可以實現(xiàn)很多種其它運算以及邏輯判斷等操作。,模塊四 算術運算器,35,HLT=3b000,暫停指令(保持累加器值 ) SKZ=3b001,計算為零則跳轉指令(保持累加器值) ADD=3b010,加法指令(data+累加器值) ANDD=3b011,按位與指令( data &累加器值) XORR=3b100,按位異或指令( data 累加器值) LDA=3b101,載入指令( data ) STO=3b110,數(shù)據(jù)寫入指令(保持累加器值 ) JMP=3b111,跳轉指令(保持累加器值 ),模塊四 算術運算器,36,模塊5,數(shù)據(jù)控制器,37,數(shù)據(jù)控制器作用是控制累加器的數(shù)據(jù)輸出,由于數(shù)據(jù)總線是各種操作時傳送數(shù)據(jù)的公共通道,不同情況下傳送不同的內容,有時要傳輸指令,有時要傳送RAM區(qū)或接口的數(shù)據(jù); 累加器的數(shù)據(jù)只有在需要往RAM區(qū)或端口寫時才允許輸出,否則應呈現(xiàn)高阻態(tài),以允許其他部件使用數(shù)據(jù)總線; 所以任何部件往總線上輸出數(shù)據(jù)時,都需要一控制信號。而此控制信號的啟、停則由CPU狀態(tài)控制器輸出的各信號控制決定; 數(shù)據(jù)控制器何時輸出累加器的數(shù)據(jù)則由狀態(tài)控制器輸出的控制信號datactl_ena決定。,模塊五 數(shù)據(jù)控制器,38,模塊6,地址多路器,39,它用于選擇輸出的地址是PC(程序計數(shù))地址還是數(shù)據(jù)/端口地址; 每個指令周期的前4個時鐘周期用于從ROM中讀取指令,輸出的應是PC地址; 后4個時鐘周期用于對RAM或端口的讀寫,該地址由指令給出; 地址的選擇輸出信號由時鐘信號的8分頻信號fetch提供。,模塊六 地址多路器,40,程序計數(shù)器,模塊7,41,它用于提供指令地址,以便讀取指令。指令按地址順序存放在存儲器中; 有兩種途徑可形成指令地址: 順序執(zhí)行的情況; 遇到要改變順序執(zhí)行程序的情況,例如執(zhí)行JMP指令后,需要形成新的指令地址。 復位后,指令指針為零,即每次CPU重新啟動將從ROM的零地址開始讀取指令并執(zhí)行; 每條指令執(zhí)行完需要兩個時鐘(兩個程序計數(shù)器的時鐘,即INC_PC信號的兩個周期),這時pc_addr已被增2,指向下一條指令(因為每條指令占兩個字節(jié)); 如果正在執(zhí)行的指令是跳轉語句,這時CPU狀態(tài)控制器將會輸出load_pc信號,通過load口進入程序計數(shù)器,程序計數(shù)器(pc_addr)將裝入目標地址(ir_addr),而不是增2。,模塊七 程序計數(shù)器,42,狀態(tài)控制器,7、RISC_CPU的實現(xiàn),43,狀態(tài)控制器有兩部分組成:狀態(tài)機、狀態(tài)控制器。,7、RISC_CPU的實現(xiàn),44,狀態(tài)機控制器接收復位信號rst,當rst有效時,使能信號ena為0,輸入到狀態(tài)機中以停止狀態(tài)機的工作; 狀態(tài)控制器是在fetch上升沿或rst上升沿判斷rst是否有效,如果rst為高電平,ena置0,否則置1; 狀態(tài)機是CPU的控制核心,用于產生一系列的控制信號,啟動或停止某些部件; CPU何時進行讀指令來讀寫I/O端口及RAM區(qū)等操作,都是由狀態(tài)機來控制的; 狀態(tài)機的當前狀態(tài),由變量state記錄,state的值就是當前這個指令周期中已經(jīng)過的時鐘數(shù)(從零計起)。,7、RISC_CPU的實現(xiàn),45,指令周期是由8個時鐘組成,每個時鐘都要完成固定的操作: 第0個時鐘:CPU狀態(tài)控制器的輸出rd和load_ir為高電平,其余均為低電平。指令寄存器寄存由ROM送來的高8位指令代碼; 第1個時鐘:與上一時鐘相比只是inc_pc從0變?yōu)?,故PC增1,ROM送來低8位指令代碼,指令寄存器寄存該8位代碼; 第2個時鐘:空操作,即inc_pc從1變?yōu)?,rd和load_ir變?yōu)?。此時指令讀結束; 第3個時鐘:inc_pc變?yōu)?,即PC增1,指向下一條指令。另外,若操作符為HLT,則輸出信號halt為高,否則除了inc_pc為1外,其他各控制線均為0;,7、RISC_CPU的實現(xiàn),46,指令周期是由8個時鐘組成,每個時鐘都要完成固定的操作: 第4個時鐘:若操作符為ANDD,ADD,XORR或LDA,讀相應地址的數(shù)據(jù),即rd變?yōu)?;若為JMP,將目的地址送給程序計數(shù)器,即load_pc變?yōu)?;若為STO,輸出累加器數(shù)據(jù),即datactl_ena變?yōu)?; 第5個時鐘:若操作符為ANDD,ADD或XORR,算術運算器就進行相應的運算;若為LDA,就把數(shù)據(jù)通過算術運算器送給累加器,即load_acc變?yōu)?,rd變?yōu)? ;若為SKZ,先判斷累加器的值是否為0,如果為0,PC就增1(即inc_pc變?yōu)?),否則保持原值;若
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度園林景觀用樹木租賃合同模板
- 高速公路防護工程勞務合同(3篇)
- 2025年個人住宅裝修工程協(xié)議書
- 2025年礦權開采許可協(xié)議策劃范本
- 2025年企業(yè)整體并購協(xié)議書
- 2025年資產重置策劃諒解協(xié)議細則
- 2025年分手策劃協(xié)議書范本
- 2025年高速精密電主軸項目規(guī)劃申請報告模范
- 2025年策劃授權協(xié)議范本正式版
- 2025年個人租賃私家車合同樣式
- 醫(yī)療器械市場規(guī)劃
- 安徽省合肥市廬陽區(qū)評價2023-2024學年六年級下學期小升初數(shù)學模擬試卷+
- 2024年3月山東省直監(jiān)獄類面試題及參考答案全套
- 新產品研發(fā)工作總結匯報
- pi粉末成型工藝
- Optix-OSN3500智能化光傳輸設備業(yè)務配置手冊范本
- swagelok管接頭安裝培訓教程
- 公墓管理考核方案
- 把子肉店創(chuàng)業(yè)計劃書
- 綜合樓裝修改造項目 投標方案(技術方案)
- 冀教版五年級上冊英語全冊單元測試卷(含期中期末試卷及聽力音頻)
評論
0/150
提交評論