版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验六计算机系统综合设计与实现一、实验目的1、深入理解计算机系统工作的基本原理,建立整机概念。2、融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。3、培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。二、实验要求1、将已经设计的运算器、存储器和控制器连接,构建完整的计算机系统;2、编写一段可以实现一定功能的指令程序,进行计算机整机系统功能的验证。3、所有任务要求功能仿真和必要的验证。实验完成后,一周内提交实验报告。三、 实验设备PC机+ Quartus10.0 + FPGA(DE2-115)+TEC-8实验箱四、计算机系统(T
2、EC-8)综合逻辑框图硬连线控制器控制信号切换电路ALU A端口B端口C Z R0 R1 R2 R3 IR PC AR 双端口RAM DBUS 五、实验任务1、将实验二的运算器、实验三的存储器和实验五的控制器连接,构建完整的计算机系统;2、计算机整机系统功能测试,进行功能仿真和时序仿真并在DE2-115上验证。(1)根据指令系统,编写一段可以实现一定功能的程序,要求:有一个合理的运算功能和逻辑关系;指令数量:不少于8条;指令类型:停机、跳转、RR、读存、写存、算术和逻辑运算;(2)将指令程序手工汇编成二进制代码;(3)理论上设置寄存器的初值,并计算程序执行后的结果;(4)将指令程序的二进制代码
3、存入存储器RAM中;(5)将需要的运算数据初值存入寄存器R0-R3中;(6)进行程序连续运行的功能仿真和时序仿真,将仿真运算结果与理论计算结果进行比较。六、实验步骤实验电路图子模块(1)tri_74244tri74244.vmodule tri_74244 (en,Din,Dout ); input en ; wire en ; input 7:0 Din; wire 7:0 Din ; output 7:0 Dout ; reg 7:0 Dout ; always (en or Din)begin if (en)Dout= Din ; else Dout = 8bzzzzzzzz; end
4、endmoduletimescale 1 ps/ 1 psmodule tri_74244_vlg_tst();reg eachvec;reg 7:0 Din;reg en;wire 7:0 Dout;tri74244.vttimescale 1 ps/ 1 psmodule tri_74244_vlg_tst();reg eachvec;reg 7:0 Din;reg en;wire 7:0 Dout;tri_74244 i1 (.Din(Din),.Dout(Dout),.en(en);integer i; initial begin i=0; Din=8b00000000; en=0;
5、en=1; #30 en=0; #40 en=1;end initial begin for(i=0;i10;i=i+1) begin #10 Din=i; end end endmoduletri74244功能仿真(2)ALUALU.bdfmodolue_74181使用quartus库中的74181模块转换为verilog文件即可de2_4de2_4.vmodule de2_4(en,in,out); input 2:1 in ; input en; output 4:1 out ; reg 4:1 out ; always (en or in) if (en) case (in) 2b00
6、:out=4b0001; 2b01:out=4b0010; 2b10:out=4b0100; 2b11:out=4b1000; default:out=4b0000; endcase else out=4b0000; endmodulede2_4.vttimescale 1 ns/ 1 psmodule de2_4_vlg_tst();reg eachvec;reg en;reg 2:1 in; wire 4:1 out; de2_4 i1 (.en(en),.in(in),.out(out);initial begin en=0;endinitial begin # 10 en=1;endi
7、nitial begin # 5 in=2b00;#15 in=2b01;#15 in=2b10;#15 in=2b11;#40 $finish;endinitial$monitor($time,en=%b in=%b out=%b,en,in,out); endmodulereg8reg8.vmodule reg8 ( T3,DOUT ,D ); input T3 ; wire T3 ; input 7:0 D ; wire 7:0 D ; output 7:0 DOUT ; reg 7:0 DOUT ; always ( posedge T3 ) begin DOUT = D ; end
8、endmodule reg8.vttimescale 1 ps/ 1 psmodule reg8_vlg_tst();reg eachvec;reg 7:0 D;reg T3;wire 7:0 DOUT;reg8 i1 (.D(D),.DOUT(DOUT),.T3(T3);integer i;initialbegin T3=0; D=8d0;end alwaysbegin #5 T3= T3; end initial begin for(i=0;i11;i=i+1) begin #10 D=i; end end endmodulemux4_1mux4_1.vmodule mux4_1( d1,
9、 d2, d3, d4, se1, se2, dout ); input 7:0d1; input 7:0d2; input 7:0d3; input 7:0d4; input se1; input se2; output dout; reg 7:0dout; always (d1 or d2 or d3 or d4 or se1 or se2) case(se2,se1) 2b00 : dout=d1; 2b01 : dout=d2; 2b10 : dout=d3; 2b11 : dout=d4; endcaseendmodulemux4_1.vttimescale 1 ps/ 1 psmo
10、dule mux4_1_vlg_tst();reg eachvec;reg 7:0 d1;reg 7:0 d2;reg 7:0 d3;reg 7:0 d4;reg se1;reg se2;wire 7:0 dout;mux4_1 i1 (.d1(d1),.d2(d2),.d3(d3),.d4(d4),.dout(dout),.se1(se1),.se2(se2);integer i,j;initial begin #10 d1=8b00000001; d2=8b00000010; d3=8b00000011; d4=8b00000100; end initial begin #5 while(
11、1) for(i=0;i2;i=i+1) for(j=0;j2;j=j+1) begin #5 se2=i; se1=j; end end endmoduleALU逻辑电路图逻辑功能表(1)写寄存器(例如:向通用寄存器R0-R3分别写入数据55H/AAH/03H/04H)T 3RDDRWSBUSABUSDBUS7.0功能(写R)0 011055H55HR00 1110AAHAAHR11 011003H03HR21 111004H04HR3 (2)选择将R0送74181的A端口,R1送B端口 ,进行算术功能验算MCnS3.0RDRSDRWSBUSABUSDBUS7.00 100000001001
12、550100010001001ff011111000100154(3)选择将R0送74181的A端口,R1送B端口 ,进行逻辑功能验算MCnS3.0RDRSDRWSBUSABUSDBUS7.01 000000001001AA100001000100100101111000100155当A=55H,B=AAH,S=00001111,M=0,CIN=1时仿真测试文件及功能仿真波形timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg 1:0 RD;reg
13、1:0 RS;reg 3:0 S;reg 7:0 SD;wire 7:0 DBUS;wire C;alu i1 (.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);initial begin T3=0; SBUS=1; DRW=1; ABUS=0; RD=2b00; SD=8b01010101; #10 RD=2b01; SD=8b10101010;#10 RD=2b10; SD=8b00000011; #10 R
14、D=2b11; SD=8b00000100; #10 RD=2b00; RS=2b01; SBUS=0; DRW=0; ABUS=1; CIN=1; LDC=1; M=0; end always begin #5 T3=T3; endinteger i;initial begin #40 S=4b0000; for(i=1;i16;i=i+1) #10 S=i; end initial $monitor($time,M=%b S=%b CIN=%b SD=%h DBUS=%h C=%b,M,S,CIN,SD,DBUS,C);endmodule指令ADD R0,R1( R0+R1 R0)的仿真测
15、试文件及功能仿真波形timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg 1:0 RD;reg 1:0 RS;reg 3:0 S;reg 7:0 SD;wire 7:0 DBUS;wire C;alu i1 (.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);initia
16、l fork T3=0; SBUS=1; DRW=1; ABUS=0; RD=2b00; SD=8b00000111; #10 RD=2b01; #10 SD=8b00000001; #20 RD=2b00; #20 RS=2b01; #20 SBUS=0; #20 DRW=0; #20 ABUS=1; #20 CIN=1; #20 LDC=1; #20 M=0; #20 S=4b1001; #30 RD=2b00; #30 DRW=1; #40 DRW=0;join always begin #5 T3=T3; endendmodule00ns DBUS=07H T3上升沿到来(5ns时)数
17、据07H被写R010ns DBUS=01H T3上升沿到来(15ns时)数据01H被写R120ns DBUS= R0+R1=07+01=08H30ns T3上升沿到来(35ns)时DBUS数据08H被写R0,因此DBUS=R0+R1=08H+01H=09H(说明实现了R0+R1 R0) 注意:此时M=0, S=1001,CIN=1(相当于C0=0),实现算术运算A+B指令SUB R0,R1( R0-R1 R0)的仿真测试文件及功能仿真波形timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg L
18、DC;reg CIN;reg M;reg 1:0 RD;reg 1:0 RS;reg 3:0 S;reg 7:0 SD;wire 7:0 DBUS;wire C;alu i1 (.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);initial fork T3=0; SBUS=1; DRW=1; ABUS=0; RD=2b00; SD=8b00000111; #10 RD=2b01; #10 SD=8b0000000
19、1; #20 RD=2b00; #20 RS=2b01; #20 SBUS=0; #20 DRW=0; #20 ABUS=1; #20 CIN=0; #20 LDC=1; #20 M=0; #20 S=4b0110; #30 RD=2b00; #30 DRW=1; #40 DRW=0;join always begin #5 T3=T3; endendmodule00ns DBUS=03H T3上升沿到来(5ns时)数据07H被写R010ns DBUS=01H T3上升沿到来(15ns时)数据01H被写R120ns DBUS= R0-R1=07-01=06H30ns T3上升沿到来(35ns)
20、时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指令AND R0,R1( R0&R1 R0)的仿真测试文件及功能仿真波形timescale 1 ns/ 1 psmodule alu_vlg_tst();reg T3;reg SBUS;reg DRW;reg ABUS;reg LDC;reg CIN;reg M;reg 1:0 RD;reg 1:0 RS;reg 3:0 S;reg 7:0 SD
21、;wire 7:0 DBUS;wire C;alu i1 (.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);initial fork T3=0; SBUS=1; DRW=1; ABUS=0; RD=2b00; SD=8b00000111; #10 RD=2b01; #10 SD=8b00001001; #20 RD=2b00; #20 RS=2b01; #20 SBUS=0; #20 DRW=0; #20 ABU
22、S=1; #20 CIN=1; #20 LDC=1; #20 M=1; #20 S=4b1011; #30 RD=2b00; #30 DRW=1; #38 S=4b0000; #40 DRW=0; join always begin #5 T3=T3; endendmodule00ns DBUS=00000111 T3上升沿到来(5ns时) 数据00000111被写R010ns DBUS=00001001 T3上升沿到来(15ns时)数据00001001被写R120ns DBUS= R0&R1=0000000130ns DRW=1 T3上升沿到来(35ns)时DBUS数据00000001被写R
23、0,38 ns M=1,S=0000 DBUS=R0&R1=11111110H 实现了求反运算(说明已经实现了R0&R1 R0)(3)RAM4RAM4.bdfcnt256cnt256.vmodule cnt256(Q,DATA,LDN,reset,clk); output 7:0 Q;input 7:0 DATA;input LDN,reset,clk;reg 7:0 Q;always (posedge clk or negedge reset) /clk上升沿触发 begin if(!reset) /异步清零,低电平有效 Q=8b0; else if(!LDN) Q=DATA; /同步置数,
24、低电平有效 else Q=Q+1; /计数endendmodule cnt256.vttimescale 1 ns/ 1 psmodule cnt256_vlg_tst();reg 7:0 DATA;reg LDN;reg clk;reg reset; wire 7:0 Q;cnt256 i1 (.DATA(DATA),.LDN(LDN),.Q(Q),.clk(clk),.reset(reset);initial begin DATA=1hA; clk=0; reset=1; LDN=1; DATA=8d00010010; #20 reset=0; #40 reset=1; #260 LDN=
25、0; #80 LDN=1; end always begin #20 clk=clk; end endmoduleasdf利用宏功能模块先生成单端口存储器,再用两单端口存储器进行连接生成双端口存储器RAM4仿真测试逻辑图双端口逻辑功能表 (1)从左端口写存储器(在 01H 单元中写入数据 11H)(右端口为只读端口) T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD7.0 功能 x 0 1 1 0 0 1 0 0 01 01HAR x 1 1 0 0 0 1 0 0 11 11H(01H) (地址线和数据线分时复用技术,先送地址,再送数据)用同样
26、方法在 02H 中写入 22H (2)从左端口读存储器(从 01H 中读出数据 11H)(右端口为只读端口) T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD7.0 功能 x 0 1 1 0 0 1 0 0 01 01HAR x 0 0 0 0 1 1 0 0 xx (01H) DBUS (地址线和数据线分时复用技术,先送地址,再送数据)用同样方法读出 02H 中的 22H (3) 从右端口读存储器(从 01H 中读出数据 11H)(右端口为只读端口) T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC S
27、D7.0 功能 x 0 1 0 1 0 1 0 0 01 01HPC x 0 0 0 0 1 1 0 0 xx (01H) INS (地址线和数据线分时复用技术,先送地址,再送数据)用同样方法读出 02H 中的 22H (4)AR 自动加 1 读存储器(从左端口连续读存储器) T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC SD7.0 功能 x 0 0 0 0 1 1 1 0 XX MDBUS (5 )PC 自动加 1 读存储器 (从右端 口连续 读存储 器) T2 T3 MEMW SBUS LAR LPC MBUS CLR_ ARINC PCINC
28、 SD7.0 功能 x 0 0 0 0 0 1 0 1 XX MINS (4)UCU_ir_1UCU_ir_1.bdfram64_40rom64_40.vmodule rom64_40 (addr,q);input5:0 addr;output39:0 q;reg 39:0 q;always (addr5 or addr4 or addr3 or addr2 or addr1 or addr0)begincase(addr5,addr4,addr3,addr2,addr1,addr0)6h00 : q = 40h0c00000041;6h01 : q = 40h00000410a0;6h02
29、: q = 40h4010034002;6h03 : q = 40h4010028002;6h04 : q = 40h4020024004;6h05 : q = 40h4010028004;6h06 : q = 40h6c00020000;6h07 : q = 40h4400020006;6h08 : q = 40h501002080a;6h09 : q = 40h4410020808;6h0a : q = 40h641002080c;6h0b : q = 40h4410020815;6h0c : q = 40h7810020800;6h0d : q = 40h401002a01a;6h0e
30、: q = 40h0020000c01;6h0f : q = 40h4410020832;6h10 : q = 40h000e810401;6h11 : q = 40h0180020014;6h12 : q = 40h0000000401;6h13 : q = 40h8000000401;6h14 : q = 40h0010002001;6h15 : q = 40h5010020816;6h16 : q = 40h440a7a0017;6h17 : q = 40h44099a0018;6h18 : q = 40h440eca0019;6h19 : q = 40h440f8a0000;6h1a
31、: q = 40h401003401b;6h1b : q = 40h401003501c;6h1c : q = 40h401003501d;6h1d : q = 40h401002a01f;6h1e : q = 40h0000000000;6h1f : q = 40h4020025030;6h20 : q = 40h0000000000;6h21 : q = 40h000a780c01;6h22 : q = 40h0009980c01;6h23 : q = 40h000ec80c01;6h24 : q = 40h0008180c01;6h25 : q = 40h000e80800e;6h26
32、: q = 40h000fc08010;6h27 : q = 40h0000000112;6h28 : q = 40h0000000212;6h29 : q = 40h000fc02401;6h2a : q = 40h000e800401;6h2b : q = 40h0040002401;6h2c : q = 40h0100000001;6h2d : q = 40h0200000001;6h2e : q = 40h0000020401;6h2f : q = 40h0000000000;6h30 : q = 40h4020025031;6h31 : q = 40h4020020000;6h32
33、: q = 40h5010020833;6h33 : q = 40h64100c0834;6h34 : q = 40h7810020835;6h35 : q = 40h4c1002a036;6h36 : q = 40h400e834037;6h37 : q = 40h440e835038;6h38 : q = 40h480e835039;6h39 : q = 40h4c0e83503a;6h3a : q = 40h4c1002803b;6h3b : q = 40h702002483c;6h3c : q = 40h6c2002483d;6h3d : q = 40h582002483e;6h3e
34、: q = 40h4420024800;6h3f : q = 40h0000000000;default : begin endendcaseendendmodulerom64_40.vttimescale 1 ns/ 1 psmodule rom64_40_vlg_tst();reg 5:0 addr; wire 39:0 q; rom64_40 i1 (.addr(addr),.q(q);integer i;initial begin for(i=0;i64;i=i+1) begin #50 addr=i; end end endmodulereg6reg6.vmodule reg6 (
35、CLK,DOUT ,D,CLR_ ); input CLK ; wire CLK ; input 5:0 D ; wire 5:0 D ; input CLR_; wire CLR_; output 5:0 DOUT ; reg 5:0 DOUT ; always ( negedge CLK or negedge CLR_ ) begin if(CLR_=0) DOUT = 6d0 ; else DOUT = D; end endmodulereg6.vttimescale 1 ps/ 1 psmodule reg6_vlg_tst();reg CLK;reg CLR_;reg 5:0 D;
36、wire 5:0 DOUT;reg6 i1 (.CLK(CLK),.CLR_(CLR_),.D(D),.DOUT(DOUT);integer i;initialbegin CLK=0; D=6d1; CLR_=1; #10 CLR_=0; #10 CLR_=1; #30 D=6d2;end alwaysbegin #20 CLK= CLK; end initial begin #50 for(i=3;i15;i=i+1) begin #40 D=i; end end endmoduleaddrtranaddrtran.bdfaddrtran.vttimescale 1 ps/ 1 psmodu
37、le addrtran_vlg_tst();reg eachvec;reg C;reg INT;reg 7:4 IR;reg 5:0 NuA;reg 4:0 P;reg SWA;reg SWB;reg SWC;reg Z;wire 5:0 uA;addrtran i1 (.C(C),.INT (INT),.IR(IR),.NuA(NuA),.P(P),.SWA(SWA),.SWB(SWB),.SWC(SWC),.uA(uA),.Z(Z);initial begin INT=0; C=0; Z=0; P=5d1; NuA=2o01; SWC=0; SWB=0; SWA=0; #20 SWA=1; #20 SWA=0;SWB=1; #20 SWA=1; #20 SWA=0;SWB=0;SWC=1; #20 SWC=0;P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海立达学院《AutoCAD》2025-2026学年第一学期期末试卷(B卷)
- 2026年实验室仪器日常维护保养计划表
- 2026年中医十大名方深度解析与临床思维训练
- 上海立信会计金融学院《Access 数据库程序设计》2025-2026学年第一学期期末试卷(B卷)
- 上海科技大学《安全法学》2025-2026学年第一学期期末试卷(A卷)
- 2026年机场航显系统操作与日常维护手册
- 上海科技大学《Android 开发基础》2025-2026学年第一学期期末试卷(A卷)
- 上海科学技术职业学院《安全经济原理与实践》2025-2026学年第一学期期末试卷(B卷)
- 北方工业大学《舌尖上的安全-食源性寄生虫病》2025-2026学年第一学期期末试卷(A卷)
- 北方工业大学《跨文化商务沟通》2025-2026学年第一学期期末试卷(A卷)
- (2025.v4)NCCN临床实践指南:头颈部肿瘤解读课件
- 叉车司机N1证理论考试练习题(100题)
- 2025福建永泰闽投抽水蓄能有限公司招聘14人笔试历年参考题库附带答案详解
- 食品机械成品质量检测标准
- 夏季食堂食品安全培训课件
- 2025年仙桃市引进研究生考试笔试试题(含答案)
- 2025至2030长链二元酸行业产业运行态势及投资规划深度研究报告
- 南京市2026届高三化学考前专题复习题
- 对外汉语教材《HSK标准教程1》与《快乐汉语1》对比研究
- 2025高考江苏卷地理试题讲评
- 印刷包装安全培训课件
评论
0/150
提交评论