云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 实验2 运算器 实验报告

实验2 运算器 实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/29 16:17:51

班级:计算机科学与技术3班 学号: 20090810310 姓名: 康小雪

日期: 2011-9-24

实验2 运算器实验

预习实验报告

疑问:

1、 如何将结果显示在数码管上?

2、 实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题? 3、 让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题?

实验报告

一、 波形图:

参数设置:

Endtime:2.0us Gridsize:100.0ns

信号设置:

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

K: 由k[7]~k[0]八个信号组成,数据输入信号,十六进制。

sw|r4|r5|ALU_bus: 由sw_bus(输入数据到总线)、r4_bus(将R4寄存器的值反馈到总线

上)、r5_bus(将R5寄存器的值反馈到总线上)、ALU_bus(将运算结果的值反馈到总线上)四个信号组成,输入信号,二进制,低电平有效。

ld_r1|r2|r4|r5: 由ld_r1(将运算结果存入R1寄存器)、ld_r2(将运算结果存入R2寄

存器)、ld_r4(将运算结果存入R4寄存器)、ld_r5(将运算结果存入R5寄存器)四个信号组成,输入信号,二进制,高电平有效。

m|cn: 由m(运算种类的选择信号)、cn(表明有无进位的信号)两个信号组

成(其中m=0表示算术运算,m=1表示逻辑运算,cn=0表示有进位,cn=1表示无进位),输入信号,二进制。

s: 算数逻辑单元控制选择信号,由s[3]~s[0]四个信号组成,输入信号,二

进制。

d: 数据输出的中间信号,由d[7]~d[0]八个信号组成,双向信号,显示总线

上的数据,十六进制。

d~result: 最终的数据输出信号,由d[7]result~d[0]result八个信号组成,输出信号,

八进制。

1) 初始状态:K无输入,bus信号无效,lddr信号无效,总线上位高阻态。

2) 05H?总线(sw_bus=0)?DR1(ld_r1=1):K输入05,sw_bus=0,ld_r1=1,可以看到

d~result=05;

06H?总线(sw_bus=0)?DR2(ld_r2=1):K输入D2,sw_bus=0,ld_r2=1,可以看到d~result=0A。

3) AorB的运算结果(m|cn=01、s=0001)?总线(ALU_bus=0)?R4(ld_r4=1): alu_bus=0,

ld_r4=1,m|cn=01,s=0001,可以看到d~result=0F。

4) not(A and B)的运算结果(m|cn=10、s=0100)?总线(ALU_bus=0)?R5(ld_r5):alu_bus=0,

ld_r5=1,m|cn=10,s=0100,可以看到d~result=0A。

5) R4?总线(r4_bus=0)?r1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到

d~result=0F。

6) DR1加B的运算结果(m|cn=01、s=1001)?总线(ALU_bus=0)?R4(ld_r4):alu_bus=0,

ld_r4=1,m|cn=01,s=1001,可以看到d~result=19。

7) R4?总线(sw_bus=0)?DR1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到

d~result=19;

8) R5?总线(sw_bus=0)?DR2(ld_r2=1):r5_bus=0,ld_r5=1,m|cn=00,s=0000,可以看到

d~result=0A。

9) DR1减DR2的运算结果(m|cn=00、s=0110) ?总线(ALU_bus=0)?R4(ld_r4=1):

alu_bus=0,ld_r4=1,m|cn=00,s=0110,可以看到d~result=0F。

记录实验复合运算: (A or B) 减 not (A and B) 加 B 运算 AorB not(A and B) R4加B R4减R5 m,cn,s[3..0] 010001 100100 011001 000110 DR1 05H 05H 0FH 19H DR2 0AH 0AH 0AH 0AH ALU结果 0FH 0FH 19H 0FH R4 0FH 0FH 19H 19H R5 00H 0AH 0AH 0AH 调换运算了加B与减R5的运算顺序,可以免去DR2中的数据被覆盖后重新输入B的麻烦。

结论:

通过将数据05H、0AH输入到两个寄存器中,经过实验设计的运算器,进行(A or B) 减 not (A and B) 加 B的复合运算,最终得出0FH的正确结果。说明本实验的设计能实现运算器的运算功能,电路设计正确。

二、实验日志

思考题:

1、存入DR1、DR2的数据如何在总线上显示?

答:将m、cn、s分别置0、1、0000,并将alu_bus置0,可完成将DR1中数据在总线上显示。

将m、cn、s分别置1、0、1010,并将alu_bus置0,可完成将DR2中数据在总线上显示。

2、复合运算时,ALU出的中间结果为什么不能直接存入DR1或DR2?

答:因为DR1、DR2作为算术逻辑运算单元的入口,式中利用其他值的运算必须存于DR1

或DR2中才能完成运算。如果直接将中间结果存于DR1或DR2,则它有可能在接下来的它参与的运算中数值被覆盖掉。这样中间值没有被保存,得不出最后的正确结果。

3、计算机中的负数如何表示?

答:通过设置符号位,0表示正数,1表示负数。 4、74181的功能表中运算“+”于“加”的区别是什么?

答:运算“+”表示逻辑运算中的“与”;运算“加”表示算术运算中的“+”。 5、exp_r_alu.vhd中并置运算符“&”主要作用是什么?

答:主要作用是连接,由m、cn、s通过“&”组成六位的二进制数,作为运算的选择控制

信号,来进行算术逻辑运算的选择。

6、exp_r_alu.vhd代码中为什么要调用ieee.std_logic_unsigned库?

答:因为ieee.std_logic_unsigned库中定义了基于std_logic以及std_logic_vector的无符号

的算术运算,这样才能保证运算器功能的正常实现,得出正确的结果。

7、VHDL语言中如何表示十六进制格式数据?

答:通过在数据的前面加上x,然后再在“”里写入数据。

遇到的问题及解决方案:

1. 如何将结果显示在数码管上?

加入以下附加电路模块:

2. 实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题?

将数据输入部分用2个16进制的计算器组合而成,对于它的算术逻辑运算单元功能控制选择信号s[3]~s[0]用一个16进制计数器来表示。

3.让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题?

自己重新写一个译码器,其具体的代码如下: library ieee;

use ieee.std_logic_1164.all; entity bus_reg7 is

port( sin :in std_logic_vector(3 downto 0); sout :out std_logic_vector(6 downto 0)); end bus_reg7;

architecture rtl of bus_reg7 is

signal xsin:std_logic_vector(3 downto 0); signal xsout:std_logic_vector(6 downto 0); begin

xsin<=sin;

process(xsin,xsout) begin case sin is

when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ end case; sout<=xsout; end process; end rtl;

4.下载到数码管之后,只有K输入的低位能够正确显示16进制计数器的结果,剩下的s和K的高位都不能正确显示。

设计电路时,数码管显示电路的内部实际上我将所有的输出都使用了,也就是可以点亮八个数码管,下载的时候,我只用到了5个,但是,我把方向搞反了,以至于下载到了错误的数码管上,还以为自己的电路设计有问题-_-!!。

实验心得:

由于这阵子比较忙,实验也落下了好大一部分,前两次实验总体来说难度不是很大,但是在实验过程中依旧会出现很多错误,一些是由于对软件的不熟悉加上一个假期没有做EDA的生疏造成的,还有一些则是在实验过程中慢慢总结出来的错误,关于ALU部分,我觉得比较难的还是操作部分,稍微一个不小心,所有的运算就得重来一遍,所以,在今后的实验中不仅要加强开发能力,对已开发出来的程序的使用也是一个重点,特别是要结合实际环境对输入输出的更改,使自己设计的电路使用起来更加方便。

搜索更多关于: 实验2 运算器 实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

班级:计算机科学与技术3班 学号: 20090810310 姓名: 康小雪 日期: 2011-9-24 实验2 运算器实验 预习实验报告 疑问: 1、 如何将结果显示在数码管上? 2、 实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题? 3、 让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题? 实验报告 一、 波形图: 参数设置: Endtime:2.0us Gridsize:100.0ns 信号设置: Cl

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com