计组原理课内实验报告

2024-04-09

计组原理课内实验报告(共2篇)

篇1:计组原理课内实验报告

存储器实验

预习实验报告

疑问:

1、数据通路是干嘛的?

2、数据通路如何实现其功能?

3、实验书上的存储器部分总线开关接在高电平上,是不是错了?

一、波形图:参数设置:

信号设置:

clk:

bus_sel:

alu_sel:

ld_reg:

pc_sel:

we_rd:

k:

d:

d~result:

ar:

pc:

仿真波形

实验报告

Endtime:2.0us

Gridsize:100.0ns

时钟信号,设置周期为100ns占空比为50%。

sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将

存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。

m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高

电平有效。

lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器

r1,r2,r4, r5或AR中,二进制输入,高电平有效。

pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装

载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效

k [7]~ k [0],数据输入端信号,十六进制输入。

d[7]~d[0],数据输出中间信号,十六进制双向信号。

d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。

以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:

1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。2)读取01H单元的05A:

① 置数法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 读01H单元的数据放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)读取02H单元的0AH:

① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 读01H单元的数据放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)将地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)验证数据并运算: bus_sel=11101 ① 读取R1中的数据:alu_sel=010000,得到R1=05H ② 读取R2中的数据:alu_sel=101010,得到R2=0AH ③ 计算(A加B)结果存于R4中:alu_sel=011001,ld_reg=00100,结果为0FH ④ 计算(非A与B)结果存于03H单元中:alu_sel=100010,we_rd=10,结果为0AH ⑤ 计算((A加B)加B)结果存于04H单元中:

 R4->R1:bus_sel=10111,ld_reg=10000  PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111  计算((A加B)加B)结果存于04H单元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 计算(((A加B)加B)减(非A与B))结果存于05H中:

((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 (非A与B)->R2:

 PC=03H:k=03H,bus_sel=01111,pc_sel=101  PC->AR:bus_sel=11110,ld_reg=00001 (非A与B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01  PC=05H:

 PC=05H:k=03H,bus_sel=01111,pc_sel=101  PC->AR:bus_sel=11110,ld_reg=00001 

(((A加B)加B)减(非A与B))结果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后结果为0FH。结论:

本实验的设计能结合了运算器和存储器,能实现在mif文件中进行初始化,将固定地址单元中存储的数据读取到运算器中进行(((A加B)加B)减(非A与B))的运算并将结果存于指定的内存单元中,与实验要求一致,故电路设计正确。

二、实验日志

预习疑问解答:

1.通路是干嘛的?

在数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路.2.通路如何实现其功能?

在这次的实验中,数据通路主要是由运算器部分和存储器部分组成的,通过运算器的运算结合存储器在mif文件的中的操作进行数据的传输与存储,从而构成一个数据通路.错

3.书上的存储器部分总线开关接在高电平上,是不是错了? 事实证明没有接错.

思考题:

1. 画数据通路电路图时,如何连结单一总线? 如图:

ALU模块的sw_bus依然连接bus_sel,存储器部分的sw_bus连接高电平.2. 如何统一两个模块的总线输入端k[7..0]及inputd[7..0]?

答:如图: 输入放在运算器部分,存储器部分无输入,存储器部分的数据要么来自总线传输,要么从mif文件中读取.实验中遇到的问题:

1.把之前的alu和ram的原理图拷到了当前工程下面。直接生成该工程的符号文件,连接起来,但是仿真有问题。

几乎是在每一次和总线交换数据的时候都得不到正确的值。下面是解决的过程:

我怀疑是两个模块之间通过总线传输的数据没有传输成功,于是把alu模块的d引了一个输出端口d_alu,从ram模块的d引出了一个输出端口d_ram,在仿真波形图上,然后就可以看到了数据到达总线上了,而且这个时候d的值也能看到了,只是后面的最后一个读操作出来的数据不对,本来应该是写进去的07,但现在是17,再仿真就会变成别的数据。

2.在连接电路图的时候,我以为存储器部分的sw_bus连在高电平上是错的,然后又连到了bus_sel[4],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了之后波形图有变化,但是,还是是错误的.但是在两种情况下功能仿真的结果都是正确的:

问题解决了~

原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。电路本身没有问题。

实验心得:

篇2:计组原理课内实验报告

实验报告并不要求非常严格的格式,大家参考实验指导书的格式即可。

实验一的实验报告除了参考实验指导书上的内容以外,最重要的是大家要把上次实验时的针对每一个小实验写出你的实验结果,例如138译码器的实验,在三个使能端开关以及其他三个输入开关A、B、C输入不同电平时,Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7各是什么样的输出(高电平还是低电平)(高电平、低电平分别用1、0表示);

我们下一次的实验室做RAM的那个实验,在实验前,请大家先把实验报告写好,以后的这三个实验,实验报告中要把实验的原理图画清楚,以便于在做实验时可以直接根据你画的图进行连接,较快的完成实验,这是很重要的。

上一篇:拟声词教案下一篇:慢慢张学友