計算機組成原理模型機實驗報告_第1頁
計算機組成原理模型機實驗報告_第2頁
計算機組成原理模型機實驗報告_第3頁
計算機組成原理模型機實驗報告_第4頁
計算機組成原理模型機實驗報告_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./實驗六計算機系統綜合設計與實現一、實驗目的1、深入理解計算機系統工作的基本原理,建立整機概念。2、融會貫通計算機組成原理課程的容,通過知識的綜合運用,加深對計算機系統各模塊的工作原理及相互聯系的認識。3、培養科學研究的獨立工作能力,取得工程設計與組裝調試的實踐經驗。二、實驗要求1、將已經設計的運算器、存儲器和控制器連接,構建完整的計算機系統;2、編寫一段可以實現一定功能的指令程序,進行計算機整機系統功能的驗證。3、所有任務要求功能仿真和必要的驗證。實驗完成后,一周提交實驗報告。三、實驗設備PC機+QuartusⅡ10.0+FPGA<DE2-115>+TEC-8實驗箱四、計算機系統〔TEC-8綜合邏輯框圖硬連線控制器控制信號切換電路ALUA端口B端口CZR0R1R2R3IRPCAR雙端口RAMDBUS五、實驗任務1、將實驗二的運算器、實驗三的存儲器和實驗五的控制器連接,構建完整的計算機系統;2、計算機整機系統功能測試,進行功能仿真和時序仿真并在DE2-115上驗證。〔1根據指令系統,編寫一段可以實現一定功能的程序,要求:有一個合理的運算功能和邏輯關系;指令數量:不少于8條;指令類型:停機、跳轉、RR、讀存、寫存、算術和邏輯運算;〔2將指令程序手工匯編成二進制代碼;〔3理論上設置寄存器的初值,并計算程序執行后的結果;〔4將指令程序的二進制代碼存入存儲器RAM中;〔5將需要的運算數據初值存入寄存器R0-R3中;〔6進行程序連續運行的功能仿真和時序仿真,將仿真運算結果與理論計算結果進行比較。六、實驗步驟實驗電路圖子模塊〔1tri_74244tri74244.vmoduletri_74244<en,Din,Dout>;inputen;wireen;input[7:0]Din;wire[7:0]Din;output[7:0]Dout;reg[7:0]Dout;always<enorDin>beginif<en>Dout<=Din;elseDout<=8'bzzzzzzzz;endendmodule`timescale1ps/1psmoduletri_74244_vlg_tst<>;regeachvec;reg[7:0]Din;regen;wire[7:0]Dout;tri74244.vt`timescale1ps/1psmoduletri_74244_vlg_tst<>;regeachvec;reg[7:0]Din;regen;wire[7:0]Dout;tri_74244i1< .Din<Din>, .Dout<Dout>, .en<en>>;integeri;initialbegini=0;Din=8'b00000000;en=0;en=1;#30en=0;#40en=1;endinitialbeginfor<i=0;i<10;i=i+1>begin#10Din=i;endendendmoduletri74244功能仿真〔2ALUALU.bdfmodolue_74181 使用quartus庫中的74181模塊轉換為verilog文件即可de2_4de2_4.vmodulede2_4<en,in,out>;input[2:1]in;inputen;output[4:1]out;reg[4:1]out;always<enorin>if<en>case<in>2'b00:out=4'b0001;2'b01:out=4'b0010;2'b10:out=4'b0100;2'b11:out=4'b1000;default:out=4'b0000;endcaseelseout=4'b0000;endmodulede2_4.vt`timescale1ns/1psmodulede2_4_vlg_tst<>;regeachvec;regen;reg[2:1]in;wire[4:1]out;de2_4i1< .en<en>, .in<in>, .out<out>>;initialbeginen=0;endinitialbegin#10en=1;endinitialbegin#5in=2'b00;#15in=2'b01;#15in=2'b10;#15in=2'b11;#40$finish;endinitial$monitor<$time,,,"en=%bin=%bout=%b",en,in,out>;endmodulereg8reg8.vmodulereg8<T3,DOUT,D>;inputT3;wireT3;input[7:0]D;wire[7:0]D;output[7:0]DOUT;reg[7:0]DOUT;always<posedgeT3>beginDOUT<=D;endendmodulereg8.vt`timescale1ps/1psmodulereg8_vlg_tst<>;regeachvec;reg[7:0]D;regT3;wire[7:0]DOUT;reg8i1< .D<D>, .DOUT<DOUT>, .T3<T3>>;integeri;initialbeginT3=0;D=8'd0;endalwaysbegin#5T3=~T3;endinitialbeginfor<i=0;i<11;i=i+1>begin#10D=i;endendendmodulemux4_1mux4_1.vmodulemux4_1<d1,d2,d3,d4,se1,se2,dout>;input[7:0]d1;input[7:0]d2;input[7:0]d3;input[7:0]d4;inputse1;inputse2;outputdout;reg[7:0]dout;always<d1ord2ord3ord4orse1orse2>case<{se2,se1}>2'b00:dout=d1;2'b01:dout=d2;2'b10:dout=d3;2'b11:dout=d4;endcaseendmodulemux4_1.vt`timescale1ps/1psmodulemux4_1_vlg_tst<>;regeachvec;reg[7:0]d1;reg[7:0]d2;reg[7:0]d3;reg[7:0]d4;regse1;regse2;wire[7:0]dout;mux4_1i1< .d1<d1>, .d2<d2>, .d3<d3>, .d4<d4>, .dout<dout>, .se1<se1>, .se2<se2>>;integeri,j;initialbegin#10d1=8'b00000001;d2=8'b00000010;d3=8'b00000011;d4=8'b00000100;endinitialbegin#5while<1>for<i=0;i<2;i=i+1>for<j=0;j<2;j=j+1>begin#5se2=i;se1=j;endendendmoduleALU邏輯電路圖邏輯功能表〔1寫寄存器〔例如:向通用寄存器R0-R3分別寫入數據55H/AAH/03H/04HT3RDDRWSBUSABUSDBUS[7..0]功能<寫R>↑0011055H55H→R0↑01110AAHAAH→R1↑1011003H03H→R2↑1111004H04H→R3〔2選擇將R0送74181的A端口,R1送B端口,進行算術功能驗算MCnS[3..0]RDRSDRWSBUSABUSDBUS[7..0]0100000001001550100010001001ff……011111000100154〔3選擇將R0送74181的A端口,R1送B端口,進行邏輯功能驗算MCnS[3..0]RDRSDRWSBUSABUSDBUS[7..0]1000000001001AA100001000100100……101111000100155當A=55H,B=AAH,S=0000~1111,M=0,CIN=1時仿真測試文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst<>;regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:0]RD;reg[1:0]RS;reg[3:0]S;reg[7:0]SD;wire[7:0]DBUS;wireC;alui1< .ABUS<ABUS>, .C<C>, .CIN<CIN>, .DBUS<DBUS>, .DRW<DRW>, .LDC<LDC>, .M<M>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .SD<SD>, .T3<T3>>;initialbeginT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00;SD=8'b01010101;#10RD=2'b01;SD=8'b10101010;#10RD=2'b10;SD=8'b00000011;#10RD=2'b11;SD=8'b00000100;#10RD=2'b00;RS=2'b01;SBUS=0;DRW=0;ABUS=1;CIN=1;LDC=1;M=0;endalwaysbegin#5T3=~T3;endintegeri;initialbegin#40S=4'b0000;for<i=1;i<16;i=i+1>#10S=i;endinitial$monitor<$time,,,"M=%bS=%bCIN=%bSD=%hDBUS=%hC=%b",M,S,CIN,SD,DBUS,C>;endmodule指令ADDR0,R1〔R0+R1→R0的仿真測試文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst<>;regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:0]RD;reg[1:0]RS;reg[3:0]S;reg[7:0]SD;wire[7:0]DBUS;wireC;alui1< .ABUS<ABUS>, .C<C>, .CIN<CIN>, .DBUS<DBUS>, .DRW<DRW>, .LDC<LDC>, .M<M>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .SD<SD>, .T3<T3>>;initialforkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00;SD=8'b00000111;#10RD=2'b01;#10SD=8'b00000001;#20RD=2'b00;#20RS=2'b01;#20SBUS=0;#20DRW=0;#20ABUS=1;#20CIN=1;#20LDC=1;#20M=0;#20S=4'b1001;#30RD=2'b00;#30DRW=1;#40DRW=0;joinalwaysbegin#5T3=~T3;endendmodule00nsDBUS=07HT3上升沿到來〔5ns時數據07H被寫R010nsDBUS=01HT3上升沿到來〔15ns時數據01H被寫R120nsDBUS=R0+R1=07+01=08H30nsT3上升沿到來〔35ns時DBUS數據08H被寫R0,因此DBUS=R0+R1=08H+01H=09H〔說明實現了R0+R1→R0注意:此時M=0,S=1001,CIN=1〔相當于C0=0,實現算術運算A+B指令SUBR0,R1〔R0-R1→R0的仿真測試文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst<>;regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:0]RD;reg[1:0]RS;reg[3:0]S;reg[7:0]SD;wire[7:0]DBUS;wireC;alui1< .ABUS<ABUS>, .C<C>, .CIN<CIN>, .DBUS<DBUS>, .DRW<DRW>, .LDC<LDC>, .M<M>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .SD<SD>, .T3<T3>>;initialforkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00;SD=8'b00000111;#10RD=2'b01;#10SD=8'b00000001;#20RD=2'b00;#20RS=2'b01;#20SBUS=0;#20DRW=0;#20ABUS=1;#20CIN=0;#20LDC=1;#20M=0;#20S=4'b0110;#30RD=2'b00;#30DRW=1;#40DRW=0;joinalwaysbegin#5T3=~T3;endendmodule00nsDBUS=03HT3上升沿到來〔5ns時數據07H被寫R010nsDBUS=01HT3上升沿到來〔15ns時數據01H被寫R120nsDBUS=R0-R1=07-01=06H30nsT3上升沿到來〔35ns時DBUS數據06H被寫R0,因此DBUS=R0-R1=06H-01H=05H〔說明實現了R0-R1→R0注意:此時M=0,S=0110,實現算術運算A-B-1,設置CIN=0〔相當于C0=1,讓進位C0=1,因此實現運算<A-B-1>+1=A-B指令ANDR0,R1〔R0&R1→R0的仿真測試文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst<>;regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:0]RD;reg[1:0]RS;reg[3:0]S;reg[7:0]SD;wire[7:0]DBUS;wireC;alui1< .ABUS<ABUS>, .C<C>, .CIN<CIN>, .DBUS<DBUS>, .DRW<DRW>, .LDC<LDC>, .M<M>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .SD<SD>, .T3<T3>>;initialforkT3=0;SBUS=1;DRW=1;ABUS=0;RD=2'b00;SD=8'b00000111;#10RD=2'b01;#10SD=8'b00001001;#20RD=2'b00;#20RS=2'b01;#20SBUS=0;#20DRW=0;#20ABUS=1;#20CIN=1;#20LDC=1;#20M=1;#20S=4'b1011;#30RD=2'b00;#30DRW=1;#38S=4'b0000;#40DRW=0;joinalwaysbegin#5T3=~T3;endendmodule00nsDBUS=00000111T3上升沿到來〔5ns時數據00000111被寫R010nsDBUS=00001001T3上升沿到來〔15ns時數據00001001被寫R120nsDBUS=R0&R1=0000000130nsDRW=1T3上升沿到來〔35ns時DBUS數據00000001被寫R0,38nsM=1,S=0000DBUS=R0&R1==11111110H實現了求反運算〔說明已經實現了R0&R1→R0〔3RAM4RAM4.bdfcnt256cnt256.vmodulet256<Q,DATA,LDN,reset,clk>;output[7:0]Q;input[7:0]DATA;inputLDN,reset,clk;reg[7:0]Q;always<posedgeclkornegedgereset>//clk上升沿觸發beginif<!reset>//異步清零,低電平有效Q<=8'b0;elseif<!LDN>Q<=DATA;//同步置數,低電平有效 elseQ<=Q+1;//計數endendmodulecnt256.vt`timescale1ns/1psmodulet256_vlg_tst<>;reg[7:0]DATA;regLDN;regclk;regreset;wire[7:0]Q;cnt256i1< .DATA<DATA>, .LDN<LDN>, .Q<Q>, .clk<clk>, .reset<reset>>;initialbeginDATA=1'hA;clk=0;reset=1;LDN=1;DATA=8'd00010010;#20reset=0;#40reset=1;#260LDN=0;#80LDN=1;endalwaysbegin#20clk=~clk;endendmoduleasdf 利用宏功能模塊先生成單端口存儲器,再用兩單端口存儲器進行連接生成雙端口存儲器RAM4仿真測試邏輯圖雙端口邏輯功能表〔1從左端口寫存儲器〔在01H單元中寫入數據11H〔右端口為只讀端口T2T3MEMWSBUSLARLPCMBUSCLR_ARINCPCINCSD[7..0]功能x↑011001000101H→AR↑x110001001111H→<01H>〔地址線和數據線分時復用技術,先送地址,再送數據用同樣方法在02H中寫入22H〔2從左端口讀存儲器〔從01H中讀出數據11H〔右端口為只讀端口T2T3MEMWSBUSLARLPCMBUSCLR_ARINCPCINCSD[7..0]功能x↑011001000101H→AR↑x00001100xx<01H>→DBUS〔地址線和數據線分時復用技術,先送地址,再送數據用同樣方法讀出02H中的22H〔3從右端口讀存儲器〔從01H中讀出數據11H〔右端口為只讀端口T2T3MEMWSBUSLARLPCMBUSCLR_ARINCPCINCSD[7..0]功能x↑010101000101H→PC↑x00001100xx<01H>→INS〔地址線和數據線分時復用技術,先送地址,再送數據用同樣方法讀出02H中的22H〔4AR自動加1讀存儲器〔從左端口連續讀存儲器T2T3MEMWSBUSLARLPCMBUSCLR_ARINCPCINCSD[7..0]功能↑x00001110XXM→DBUS〔5PC自動加1讀存儲器〔從右端口連續讀存儲器T2T3MEMWSBUSLARLPCMBUSCLR_ARINCPCINCSD[7..0]功能↑x00000101XXM→INS〔4UCU_ir_1UCU_ir_1.bdfram64_40rom64_40.vmodulerom64_40< addr, q>; input [5:0]addr; output [39:0]q; reg[39:0]q; always<addr[5]oraddr[4]oraddr[3]oraddr[2]oraddr[1]oraddr[0]> begin case<{addr[5],addr[4],addr[3],addr[2],addr[1],addr[0]}> 6'h00:q<=40'h0c00000041; 6'h01:q<=40'h00000410a0; 6'h02:q<=40'h4010034002; 6'h03:q<=40'h4010028002; 6'h04:q<=40'h4020024004; 6'h05:q<=40'h4010028004; 6'h06:q<=40'h6c00020000; 6'h07:q<=40'h4400020006; 6'h08:q<=40'h501002080a; 6'h09:q<=40'h4410020808; 6'h0a:q<=40'h641002080c; 6'h0b:q<=40'h4410020815; 6'h0c:q<=40'h7810020800; 6'h0d:q<=40'h401002a01a; 6'h0e:q<=40'h0020000c01; 6'h0f:q<=40'h4410020832; 6'h10:q<=40'h000e810401; 6'h11:q<=40'h0180020014; 6'h12:q<=40'h0000000401; 6'h13:q<=40'h8000000401; 6'h14:q<=40'h0010002001; 6'h15:q<=40'h5010020816; 6'h16:q<=40'h440a7a0017; 6'h17:q<=40'h44099a0018; 6'h18:q<=40'h440eca0019; 6'h19:q<=40'h440f8a0000; 6'h1a:q<=40'h401003401b; 6'h1b:q<=40'h401003501c; 6'h1c:q<=40'h401003501d; 6'h1d:q<=40'h401002a01f; 6'h1e:q<=40'h0000000000; 6'h1f:q<=40'h4020025030; 6'h20:q<=40'h0000000000; 6'h21:q<=40'h000a780c01; 6'h22:q<=40'h0009980c01; 6'h23:q<=40'h000ec80c01; 6'h24:q<=40'h0008180c01; 6'h25:q<=40'h000e80800e; 6'h26:q<=40'h000fc08010; 6'h27:q<=40'h0000000112; 6'h28:q<=40'h0000000212; 6'h29:q<=40'h000fc02401; 6'h2a:q<=40'h000e800401; 6'h2b:q<=40'h0040002401; 6'h2c:q<=40'h0100000001; 6'h2d:q<=40'h0200000001; 6'h2e:q<=40'h0000020401; 6'h2f:q<=40'h0000000000; 6'h30:q<=40'h4020025031; 6'h31:q<=40'h4020020000; 6'h32:q<=40'h5010020833; 6'h33:q<=40'h64100c0834; 6'h34:q<=40'h7810020835; 6'h35:q<=40'h4c1002a036; 6'h36:q<=40'h400e834037; 6'h37:q<=40'h440e835038; 6'h38:q<=40'h480e835039; 6'h39:q<=40'h4c0e83503a; 6'h3a:q<=40'h4c1002803b; 6'h3b:q<=40'h702002483c; 6'h3c:q<=40'h6c2002483d; 6'h3d:q<=40'h582002483e; 6'h3e:q<=40'h4420024800; 6'h3f:q<=40'h0000000000; default:beginend endcase end endmodulerom64_40.vt`timescale1ns/1psmodulerom64_40_vlg_tst<>;reg[5:0]addr;wire[39:0]q;rom64_40i1< .addr<addr>, .q<q>>;integeri;initialbeginfor<i=0;i<64;i=i+1>begin#50addr=i;endendendmodulereg6reg6.vmodulereg6<CLK,DOUT,D,CLR_>;inputCLK;wireCLK;input[5:0]D;wire[5:0]D;inputCLR_;wireCLR_;output[5:0]DOUT;reg[5:0]DOUT;always<negedgeCLKornegedgeCLR_>beginif<CLR_==0>DOUT<=6'd0;elseDOUT<=D;endendmodulereg6.vt`timescale1ps/1psmodulereg6_vlg_tst<>;regCLK;regCLR_;reg[5:0]D;wire[5:0]DOUT;reg6i1< .CLK<CLK>, .CLR_<CLR_>, .D<D>, .DOUT<DOUT>>;integeri;initialbeginCLK=0;D=6'd1;CLR_=1;#10CLR_=0;#10CLR_=1;#30D=6'd2;endalwaysbegin#20CLK=~CLK;endinitialbegin#50for<i=3;i<15;i=i+1>begin#40D=i;endendendmoduleaddrtranaddrtran.bdfaddrtran.vt`timescale1ps/1psmoduleaddrtran_vlg_tst<>;regeachvec;regC;regINT;reg[7:4]IR;reg[5:0]NuA;reg[4:0]P;regSWA;regSWB;regSWC;regZ;wire[5:0]uA;addrtrani1< .C<C>, .\INT<INT>, .IR<IR>, .NuA<NuA>, .P<P>, .SWA<SWA>, .SWB<SWB>, .SWC<SWC>, .uA<uA>, .Z<Z>>;initialbeginINT=0;C=0;Z=0;P=5'd1;NuA=2'o01;SWC=0;SWB=0;SWA=0;#20SWA=1;#20SWA=0;SWB=1;#20SWA=1;#20SWA=0;SWB=0;SWC=1;#20SWC=0;P=5'd2;NuA=6'd010000;endintegeri;initial#80beginfor<i=0;i<16;i=i+1>#20IR=i;endendmodulemicro_controller.bdfMicro_controller.vt`timescale1ns/1psmodulemicro_controller_vlg_tst<>;regeachvec;regC;regCLR_;regINT;reg[7:4]IR;regSWA;regSWB;regSWC;regT3;regZ;wireABUS;wireARINC;wireCIN;wire[39:0]CM;wireDRW;wireIABUS;wireINTDI;wireINTEN;wireLAR;wireLDC;wireLDZ;wireLIAR;wireLIR;wireLPC;wireM;wireMBUS;wireMEMW;wirePCADD;wirePCINC;wire[3:0]S;wireSBUS;wire[3:0]SEL;wireSELCTL;wireSTOP;micro_controlleri1< .ABUS<ABUS>, .ARINC<ARINC>, .C<C>, .CIN<CIN>, .CLR_<CLR_>, .CM<CM>, .DRW<DRW>, .IABUS<IABUS>, .\INT<INT>, .INTDI<INTDI>, .INTEN<INTEN>, .IR<IR>, .LAR<LAR>, .LDC<LDC>, .LDZ<LDZ>, .LIAR<LIAR>, .LIR<LIR>, .LPC<LPC>, .M<M>, .MBUS<MBUS>, .MEMW<MEMW>, .PCADD<PCADD>, .PCINC<PCINC>, .S<S>, .SBUS<SBUS>, .SEL<SEL>, .SELCTL<SELCTL>, .STOP<STOP>, .SWA<SWA>, .SWB<SWB>, .SWC<SWC>, .T3<T3>, .Z<Z>>;initialbeginCLR_=0;T3=0;#30Z=0;C=0;INT=0;CLR_=1;SWC=0;SWB=0;SWA=0;endalwaysbegin#20T3=~T3;endintegeri;initialbeginfor<i=1;i<16;i=i+1>begin#80IR=i;endendendmodulereg8 同ALU模塊中的reg8mux2_1mux2_1.vmodulemux2_1<d0,d1,sel,dout>;input[3:0]d0;input[3:0]d1;inputsel;outputdout;reg[3:0]dout;always<d0ord1orsel>case<sel>1'b0:dout=d0;1'b1:dout=d1;endcaseendmodulemux2_1.vt`timescale1ps/1psmodulemux2_1_vlg_tst<>;regeachvec;reg[3:0]d0;reg[3:0]d1;regsel;wire[3:0]dout;mux2_1i1< .d0<d0>, .d1<d1>, .dout<dout>, .sel<sel>>;initialbegind0=4'b0001;d1=4'b1110;endintegeri;initialwhile<1>beginfor<i=0;i<2;i=i+1>begin#50sel=i;endendendmoduleUCU_ir_1仿真測試ADD-SUB-AND-INC指令,2個CPU周期Testbench`timescale1ns/1psmoduleucu_ir_vlg_tst<>;regeachvec;regC;regCLR_;reg[7:0]INS;regINT;regSWA;regSWB;regSWC;regT3;regZ;wireABUS;wireARINC;wireCIN;wire[39:0]CM;wireDRW;wireIABUS;wireINTDI;wireINTEN;wireLAR;wireLDC;wireLDZ;wireLIAR;wireLIR;wireLPC;wireM;wireMBUS;wireMEMW;wirePCADD;wirePCINC;wire[1:0]RD;wire[1:0]RS;wire[3:0]S;wireSBUS;wireSTOP;ucu_iri1< .ABUS<ABUS>, .ARINC<ARINC>, .C<C>, .CIN<CIN>, .CLR_<CLR_>, .CM<CM>, .DRW<DRW>, .IABUS<IABUS>, .INS<INS>, .\INT<INT>, .INTDI<INTDI>, .INTEN<INTEN>, .LAR<LAR>, .LDC<LDC>, .LDZ<LDZ>, .LIAR<LIAR>, .LIR<LIR>, .LPC<LPC>, .M<M>, .MBUS<MBUS>, .MEMW<MEMW>, .PCADD<PCADD>, .PCINC<PCINC>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .STOP<STOP>, .SWA<SWA>, .SWB<SWB>, .SWC<SWC>, .T3<T3>, .Z<Z>>;initialbeginCLR_=0;T3=1;#30CLR_=1;Z=0;C=0;INT=0;SWC=0;SWB=0;SWA=0;endalwaysbegin#10T3=0;#20T3=1;endintegeri;initialbegin#40INS=8'b00010001;for<i=33;i<255;i=i+16>begin#60INS=i;endendendmoduleLD-ST-JC指令,3個CPU周期Testbench`timescale1ns/1psmoduleucu_ir_vlg_tst<>;regeachvec;regC;regCLR_;reg[7:0]INS;regINT;regSWA;regSWB;regSWC;regT3;regZ;wireABUS;wireARINC;wireCIN;wire[39:0]CM;wireDRW;wireIABUS;wireINTDI;wireINTEN;wireLAR;wireLDC;wireLDZ;wireLIAR;wireLIR;wireLPC;wireM;wireMBUS;wireMEMW;wirePCADD;wirePCINC;wire[1:0]RD;wire[1:0]RS;wire[3:0]S;wireSBUS;wireSTOP;ucu_iri1< .ABUS<ABUS>, .ARINC<ARINC>, .C<C>, .CIN<CIN>, .CLR_<CLR_>, .CM<CM>, .DRW<DRW>, .IABUS<IABUS>, .INS<INS>, .\INT<INT>, .INTDI<INTDI>, .INTEN<INTEN>, .LAR<LAR>, .LDC<LDC>, .LDZ<LDZ>, .LIAR<LIAR>, .LIR<LIR>, .LPC<LPC>, .M<M>, .MBUS<MBUS>, .MEMW<MEMW>, .PCADD<PCADD>, .PCINC<PCINC>, .RD<RD>, .RS<RS>, .S<S>, .SBUS<SBUS>, .STOP<STOP>, .SWA<SWA>, .SWB<SWB>, .SWC<SWC>, .T3<T3>, .Z<Z>>;initialbeginCLR_=0;T3=1;Z=0;C=0;INT=0;SWC=0;SWB=0;SWA=0;#30CLR_=1;endalwaysbegin#10T3=0;#20T3=1;endintegeri;initialbegin#40INS=8'b01011110;for<i=110;i<111;i=i+16>begin#90INS=i;endfor<i=112;i<225;i=i+16>begin#90INS=i;endendendmoduleJZ-JMP-OUT-STP指令Testbench`timescale1ns/1psmoduleucu_ir_vlg_tst<>;regeachvec;regC;regCLR_;reg[7:0]INS;regINT;regSWA;regSWB;regSWC;regT3;regZ;wireABUS;wireARINC;wireCIN;wire[39:0]CM;wireDRW;wireIABUS;wireINTDI;wireINTEN;wireLAR;wireLDC;wireLDZ;wireLIAR;wireLIR;wireLPC;wireM;wireMBUS;wireMEMW;wirePCADD;wirePCINC;wire[1:0]RD;wire[1:0]RS;wire[3:0]S;wireSBUS;wireSTOP;ucu_iri1< .ABUS<ABUS>, .ARINC<ARINC>, .C<C>, .CIN<CIN>, .CLR_<CLR_>, .CM<CM>, .DRW<DRW>, .I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論