版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
理解計算機5大組成部分的協(xié)調(diào)工作原理,理 采用VerilogHDL在quartusⅡ中實現(xiàn)基本的具有20條MIPS指令的單周期CPU設(shè)I/O統(tǒng)一編址方式,即將輸入輸出的I/O地址空間,作為數(shù)據(jù)存取空間的一部分,實現(xiàn)CPU與外部設(shè)備的輸入輸出端口設(shè)計。實驗中可采用高端地址。I/O端口,通過lw指令,輸入DE2實驗板上的按鍵等輸入設(shè)備信息。即將外部設(shè)備狀態(tài),讀到CPU內(nèi)部寄存器。I/O端口,通過sw指令,輸出對DE2實驗板上的LED燈等輸出設(shè)備的控制信號(或數(shù)據(jù)信息)。即將對外部設(shè)備的控制數(shù)據(jù),從CPU內(nèi)部的寄存器,寫入CPU上,實現(xiàn)對板載輸入開關(guān)或按鍵的狀態(tài)輸入,并將判別或處理結(jié)果,利用板載LED燈或7段LED數(shù)碼管顯示出來。例如,將一路4bit二進(jìn)制輸入與另一路4bit二進(jìn)制輸入相加,利用兩組分別2個LEDMIPS20 -DE1-SOC實驗板套件1套,電腦1臺,quartusII軟件1套,遲鈍的腦子1哈佛結(jié)構(gòu)(圖源:網(wǎng)絡(luò) input output[31:0] output[31:0]output[31:0] //tocheckdata_memoutput[31:0]output[31:0] output[6:0] [31:0] sc_cpucpu(clock,resetn,inst,memout,pc,wmem,aluout,data); //CPUsc_instmemimem(pc,inst,clock,mem_clk,imem_clk); instructionmemory.sc_datamemdmemout_port0,out_port1,out_port2,in_port0,in_port1,mem_dataout,io_read_data);//datamemory.//這部分模塊定義sevensegsevenseg0(out_port0[7:4],hex1);//第一個結(jié)果輸出的下sevensegsevenseg1(out_port0[3:0],hex0);//低位下sevensegsevenseg2(out_port1[7:4],hex3);sevensegsevenseg3(out_port1[3:0],hex2);sevensegsevenseg4(out_port2[7:4],hex5);sevensegsevenseg5(out_port2[3:0],hex4);CPU設(shè)同樣參考老師給出的代碼,對照學(xué)習(xí)了如下圖所示的單周期CPU結(jié)構(gòu)單周期CPU(圖源:課件modulesc_cpuinput[31:0]inst,mem;inputclock,resetn;output[31:0]pc,alu,data;outputwmem;wire wire wire wire wire[31:0] sa={27'b0,inst[10:6]};//extendto32bitsfromsaforshiftinstruction e= t&inst[15]; //positiveornegativesignattsignalwire imm= //high16signwire[31:0] offset={imm[13:0],inst[15:0],1'b0,1'b0}; signextend)wire immediate={imm,inst[15:0]};//signextendtohighdff32ip ,clock,resetn,pc);//defineaD-registerforassignp4=pc+ //assignadr=p4+ //wire[31:0]jpc={p4[31:28],inst[25:0],1'b0,1'b0};//jsc_cucu mux2x32alu_b(data,immediate,aluimm,alub);mux2x32alu_a(ra,sa,shift,alua);mux2x32link(alu_mem,p4,jal,res);//寫回前的多選器mux2x5reg_wnassignwn=reg_dest|{5{jal}};//jal:r31<-- //31ormux4x32 regfilerf(inst[25:21],inst[20:16],res,wn,wreg,clock,resetn,ra,data);alual_unit(alua,alub,aluc,alu,zero);CU設(shè)CU組件根據(jù)op和func輸入產(chǎn)生控制信號,具體賦值則根據(jù)給出真值表進(jìn)行CU信號產(chǎn)生真值表(圖源modulesc_cu(op,func,z,wmem,wreg,regrt,m2reg,aluc,shift,aluimm,pcsource,jal, input[5:0] output[3:0]output[1:0]wirer_type=wirei_add=r_type&func[5]&~func[4]&~func[3]~func[2]&~func[1]& wirei_sub=r_type&func[5]&~func[4]&~func[3]~func[2]&func[1]& wirei_and=r_type&func[5]&~func[4]&~func[3]func[2]&~func[1]& wirei_or=r_type&func[5]&~func[4]&~func[3]func[2]&~func[1]& wirei_xor=r_type&func[5]&~func[4]&~func[3]func[2]&func[1]& wirei_sll=r_type&~func[5]&~func[4]&~func[3]~func[2]&~func[1]& wirei_srl=r_type&~func[5]&~func[4]&~func[3]~func[2]&func[1]& wirei_sra=r_type&~func[5]&~func[4]&~func[3]~func[2]&func[1]& wirei_jr=r_type&~func[5]&~func[4]&func[3]~func[2]&~func[1]& wirei_addi=~op[5]&~op[4]&op[3]&~op[2]&~op[1]&wirei_andi=~op[5]&~op[4]&op[3]&op[2]&~op[1]&=~op[5]&~op[4]&op[3]&op[2]&~op[1]&=~op[5]&~op[4]&op[3]&op[2]&op[1]&=op[5]&~op[4]&~op[3]&~op[2]&op[1]&=op[5]&~op[4]&op[3]&~op[2]&op[1]&=&&~op[3]&op[2]&&~op[0];=&&~op[3]&op[2]&&op[0];=&&op[3]&op[2]&op[1] =&&~op[3]&~op[2]&&~op[0];=&&~op[3]&~op[2]&&op[0];assignpcsource[1]=i_jr|i_j|assignpcsource[0]=(i_beq&z)|(i_bne&~z)|i_j|i_jalassignwreg=i_add|i_sub|i_and|i_or |i_xor|i_sll|i_srl|i_sra|i_addi|i_andi|i_ori|i_xori|i_lw|i_lui|i_jal;assignaluc[3]=assignaluc[2]=i_or|i_ori|i_lui|i_srl|i_sra|assignaluc[1]assignaluc[1]=i_xor|i_sll|i_srl|i_sra|i_xori|assignaluc[0]=i_and|i_or|i_srl|i_sll|i_sra|i_andi|assign =i_sll|i_srl|i_sraassign assignassignassignassign=i_addi|i_andi|i_ori|i_xori|i_lw|i_sw|=i_addi|i_lw|i_sw|i_beq|===i_addi|i_andi|i_ori|i_xori|i_lw|i_sw|=ALU設(shè)modulemodulealuinput[31:0]input[3:0]output[31:0] reg[31:0] always@(aorbor//4'b1111:s=$signed(b)>>> //1111SRA:rd<-(rt>>default:s=if(s==0)z=elsez= s=a+s=a-s=a&s=a|s=a^s=bLUI:imm<<s=bs=b內(nèi)存MEM和I/O端口時,采用相同的指令,區(qū)分是MEM還是I/O端口,由具體modulemoduleio_input_reginput[31:0] input[3:0]output[31:0]reg in_reg0;//inputreg in_reg1;//inputio_input_muxalways@(posedgein_reg0{28'b0,in_port0}輸入端口在io_clk上升沿時進(jìn)行數(shù)據(jù)鎖//moreprts可根據(jù)需要設(shè) 的輸入端口moduleinput[31:0]a0,a1;input[5:0]sel_addr;output[31:0]y;reg always@case(sel_addr)6'b110000:y=6'b110001:y=//mores可根據(jù)需要設(shè)的端口modulemoduleio_output_reginput[31:0] //resetsignal.ifnecessary,canusethissignaltoresettheoutputtooutput[31:0]out_port0,out_port1,out_port2;reg[31:0] out_port0;//outputport0reg[31:0] out_port1;//outputport1reg[31:0] out_port2;//outputport2always@(posedgeio_clkornegedgeif(clrn==begin//out_port0out_port1<=0;//resetalltheoutputporttoout_port2if(write_io_enable==case6'b10000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026四川綿陽市鹽亭國有投資管理有限公司招聘下屬子公司副經(jīng)理及安全部人員5人筆試參考題庫及答案解析
- 2026上半年海南事業(yè)單位聯(lián)考海口市紀(jì)委監(jiān)委招聘4人(第一號)筆試模擬試題及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考六盤水市直及六盤水高新區(qū)招聘98人筆試備考題庫及答案解析
- 2026年金華義烏市中心醫(yī)院招聘非編人員2人考試備考題庫及答案解析
- 2026浙江城建融資租賃有限公司第一次社會招聘5人筆試備考題庫及答案解析
- 2026年當(dāng)前市場居住環(huán)境的法律保障分析
- 2026年硬度與強度的關(guān)系實驗研究
- 2026年如何選擇合適的地質(zhì)環(huán)境評價方法
- 2026雄安宣武醫(yī)院公開選聘工作人員262名筆試備考試題及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考貴州省社會主義學(xué)院(貴州中華文化學(xué)院)招聘2人筆試模擬試題及答案解析
- 2025-2026年蘇教版初一歷史上冊期末熱點題庫及完整答案
- 規(guī)范園區(qū)環(huán)保工作制度
- 2026年上半年眉山天府新區(qū)公開選調(diào)事業(yè)單位工作人員的參考題庫附答案
- 藥理學(xué)試題中國藥科大學(xué)
- 卓越項目交付之道
- (人教版)八年級物理下冊第八章《運動和力》單元測試卷(原卷版)
- 2026屆新高考語文熱點沖刺復(fù)習(xí) 賞析小說語言-理解重要語句含意
- 2026屆杭州學(xué)軍中學(xué)數(shù)學(xué)高三上期末綜合測試模擬試題含解析
- 創(chuàng)世紀(jì)3C數(shù)控機床龍頭、高端智能裝備與產(chǎn)業(yè)復(fù)蘇雙輪驅(qū)動
- (新版?。笆逦濉鄙鷳B(tài)環(huán)境保護規(guī)劃
- 教培行業(yè)年終述職
評論
0/150
提交評論