计算机组成原理模型机实验报告Word格式.docx

上传人:b****3 文档编号:16591229 上传时间:2022-11-24 格式:DOCX 页数:61 大小:1,021.09KB
下载 相关 举报
计算机组成原理模型机实验报告Word格式.docx_第1页
第1页 / 共61页
计算机组成原理模型机实验报告Word格式.docx_第2页
第2页 / 共61页
计算机组成原理模型机实验报告Word格式.docx_第3页
第3页 / 共61页
计算机组成原理模型机实验报告Word格式.docx_第4页
第4页 / 共61页
计算机组成原理模型机实验报告Word格式.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

计算机组成原理模型机实验报告Word格式.docx

《计算机组成原理模型机实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理模型机实验报告Word格式.docx(61页珍藏版)》请在冰豆网上搜索。

计算机组成原理模型机实验报告Word格式.docx

begin

if(en)

Dout<

=Din;

else

Dout<

=8'

bzzzzzzzz;

end

endmodule

`timescale1ps/1ps

moduletri_74244_vlg_tst();

regeachvec;

reg[7:

regen;

wire[7:

0]Dout;

tri_74244i1(

.Din(Din),

.Dout(Dout),

.en(en)

);

integeri;

initial

i=0;

Din=8'

b00000000;

en=0;

en=1;

#30en=0;

#40en=1;

end

for(i=0;

i<

10;

i=i+1)

begin

#10Din=i;

endmodule

tri74244功能仿真

 

〔2〕ALU

modolue_74181

使用quartus库中的74181模块转换为verilog文件即可

de2_4

modulede2_4(en,in,out);

input[2:

1]in;

inputen;

output[4:

1]out;

reg[4:

always@(enorin)

if(en)

case(in)

2'

b00:

out=4'

b0001;

b01:

b0010;

b10:

b0100;

b11:

b1000;

default:

b0000;

endcase

elseout=4'

`timescale1ns/1ps

modulede2_4_vlg_tst();

reg[2:

1]in;

wire[4:

1]out;

de2_4i1(

.en(en),

.in(in),

.out(out)

en=0;

end

#10en=1;

#5in=2'

b00;

#15in=2'

b01;

b10;

b11;

#40$finish;

initial

$monitor($time,,,"

en=%bin=%bout=%b"

en,in,out);

reg8

modulereg8(T3,DOUT,D);

inputT3;

wireT3;

0]D;

0]DOUT;

always@(posedgeT3)

DOUT<

=D;

endmodule

modulereg8_vlg_tst();

0]D;

regT3;

0]DOUT;

reg8i1(

.D(D),

.DOUT(DOUT),

.T3(T3)

begin

T3=0;

D=8'

d0;

always

#5T3=~T3;

11;

i=i+1)

begin

#10D=i;

mux4_1

modulemux4_1(

d1,

d2,

d3,

d4,

se1,

se2,

dout

);

0]d1;

0]d2;

0]d3;

0]d4;

inputse1;

inputse2;

outputdout;

0]dout;

always@(d1ord2ord3ord4orse1orse2)

case({se2,se1})

b00:

dout=d1;

b01:

dout=d2;

b10:

dout=d3;

b11:

dout=d4;

modulemux4_1_vlg_tst();

0]d1;

0]d2;

0]d3;

0]d4;

regse1;

regse2;

0]dout;

mux4_1i1(

.d1(d1),

.d2(d2),

.d3(d3),

.d4(d4),

.dout(dout),

.se1(se1),

.se2(se2)

integeri,j;

#10d1=8'

b00000001;

d2=8'

b00000010;

d3=8'

b00000011;

d4=8'

b00000100;

#5

while

(1)

2;

for(j=0;

j<

j=j+1)

#5se2=i;

se1=j;

ALU逻辑电路图

逻辑功能表

〔1〕写存放器〔例如:

向通用存放器R0-R3分别写入数据55H/AAH/03H/04H〕

T3

RD

DRW

SBUS

ABUS

DBUS[7..0]

功能(写R)

00

1

55H

55H→R0

01

AAH

AAH→R1

10

03H

03H→R2

11

04H

04H→R3

〔2〕选择将R0送74181的A端口,R1送B端口,进行算术功能验算

M

Cn

S[3..0]

RS

0

0000

00

01

55

0001

ff

……

1111

54

〔3〕选择将R0送74181的A端口,R1送B端口,进行逻辑功能验算

1

AA

当A=55H,B=AAH,S=0000~1111,M=0,CIN=1时仿真测试文件及功能仿真波形

modulealu_vlg_tst();

regSBUS;

regDRW;

regABUS;

regLDC;

regCIN;

regM;

reg[1:

0]RD;

0]RS;

reg[3:

0]S;

0]SD;

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),

SBUS=1;

DRW=1;

ABUS=0;

RD=2'

SD=8'

b01010101;

#10RD=2'

b10101010;

RS=2'

SBUS=0;

DRW=0;

ABUS=1;

CIN=1;

LDC=1;

M=0;

always

#5T3=~T3;

end

#40S=4'

for(i=1;

16;

#10S=i;

initial

M=%bS=%bCIN=%bSD=%hDBUS=%hC=%b"

M,S,CIN,SD,DBUS,C);

指令ADDR0,R1〔R0+R1→R0〕的仿真测试文件及功能仿真波形

fork

b00000111;

#10RD=2'

#10SD=8'

#20RD=2'

#20RS=2'

#20SBUS=0;

#20DRW=0;

#20ABUS=1;

#20CIN=1;

#20LDC=1;

#20M=0;

#20S=4'

b1001;

#30RD=2'

#30DRW=1;

#40DRW=0;

join

00nsDBUS=07HT3上升沿到来〔5ns时〕数据07H被写R0

10nsDBUS=01HT3上升沿到来〔15ns时〕数据01H被写R1

20nsDBUS=R0+R1=07+01=08H

30nsT3上升沿到来〔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〕的仿真测试文件及功能仿真波形

#20RD=2'

#20CIN=0;

b0110;

#30RD=2'

00nsDBUS=03HT3上升沿到来〔5ns时〕数据07H被写R0

20nsDBUS=R0-R1=07-01=06H

30nsT3上升沿到来〔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〕的仿真测试文件及功能仿真波形

b00001001;

#20M=1;

b1011;

#38S=4'

join

00nsDBUS=00000111T3上升沿到来〔5ns时〕数据00000111被写R0

10nsDBUS=00001001T3上升沿到来〔15ns时〕数据00001001被写R1

20nsDBUS=R0&

R1=00000001

30nsDRW=1T3上升沿到来〔35ns〕时DBUS数据00000001被写R0,

38nsM=1,S=0000DBUS=R0&

R1==11111110H实现了求反运算

〔说明已经实现了R0&

R1→R0〕

〔3〕RAM4

cnt256

modulecnt256(Q,DATA,LDN,reset,clk);

output[7:

0]Q;

input[7:

0]DATA;

inputLDN,reset,clk;

always@(posedgeclkornegedgereset)//clk上升沿触发

if(!

reset)//异步清零,低电平有效

Q<

=8'

b0;

elseif(!

LDN)Q<

=DATA;

//同步置数,低电平有效

elseQ<

=Q+1;

//计数

endmodule

modulecnt256_vlg_tst();

regLDN;

regclk;

regreset;

cnt256i1(

.DATA(DATA),

.LDN(LDN),

.Q(Q),

.clk(clk),

.reset(reset)

DATA=1'

hA;

clk=0;

reset=1;

LDN=1;

DATA=8'

d00010010;

#20reset=0;

#40reset=1;

#260LDN=0;

#80LDN=1;

always

#20clk=~clk;

asdf

利用宏功能模块先生成单端口存储器,再用两单端口存储器进行连接生成双端口存储器

RAM4仿真测试逻辑图

双端口逻辑功能表

〔1〕从左端口写存储器〔在01H单元中写入数据11H〕〔右端口为只读端口〕

T2

T3

MEMW

SBUS

LAR

LPC

MBUS

CLR_

ARINC

PCINC

SD[7..0]

功能

x

01

01H→AR

11

11H→(01H)

〔地址线和数据线分时复用技术,先送地址,再送数据〕用同样方法在02H中写入22H

〔2〕从左端口读存储器〔从01H中读出数据11H〕〔右端口为只读端口〕

xx

(01H)→DBUS

〔地址线和数据线分时复用技术,先送地址,再送数据〕用同样方法读出02H中的22H

〔3〕从右端口读存储器〔从01H中读出数据11H〕〔右端口为只读端口〕

01H→PC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1