实验2运算器实验报告

上传人:博****1 文档编号:455136886 上传时间:2023-11-18 格式:DOC 页数:4 大小:79KB
返回 下载 相关 举报
实验2运算器实验报告_第1页
第1页 / 共4页
实验2运算器实验报告_第2页
第2页 / 共4页
实验2运算器实验报告_第3页
第3页 / 共4页
实验2运算器实验报告_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验2运算器实验报告》由会员分享,可在线阅读,更多相关《实验2运算器实验报告(4页珍藏版)》请在金锄头文库上搜索。

1、班级:计算机科学与技术3班 学号: 20090810310 姓名: 康小雪 日期: 2011-9-24 实验2运算器实验预习实验报告疑问:1、 如何将结果显示在数码管上?2、 实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题?3、 让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题?实验报告一、 波形图:参数设置:Endtime:2.0us Gridsize:100.0ns信号设置:Clk: 时钟信号,设置周期为100ns占空比为50%。K: 由k7k0八个信号组成,数据输入信号,十六进制。sw|r4|r5|ALU_bus: 由sw_bus(输入数据到总线)、r4_bus

2、(将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: 算数逻

3、辑单元控制选择信号,由s3s0四个信号组成,输入信号,二进制。d: 数据输出的中间信号,由d7d0八个信号组成,双向信号,显示总线上的数据,十六进制。dresult: 最终的数据输出信号,由d7resultd0result八个信号组成,输出信号,八进制。 1) 初始状态:K无输入,bus信号无效,lddr信号无效,总线上位高阻态。2) 05H总线(sw_bus=0)DR1(ld_r1=1):K输入05,sw_bus=0,ld_r1=1,可以看到dresult=05;06H总线(sw_bus=0)DR2(ld_r2=1):K输入D2,sw_bus=0,ld_r2=1,可以看到dresult=0A

4、。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,可以看到dresult=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,可以看到dresult=0A。5) R4总线(r4_bus=0)r1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到dresult=0F。6) DR1加B的运算结果(

5、m|cn=01、s=1001)总线(ALU_bus=0)R4(ld_r4):alu_bus=0,ld_r4=1,m|cn=01,s=1001,可以看到dresult=19。7) R4总线(sw_bus=0)DR1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到dresult=19;8) R5总线(sw_bus=0)DR2(ld_r2=1):r5_bus=0,ld_r5=1,m|cn=00,s=0000,可以看到dresult=0A。9) DR1减DR2的运算结果(m|cn=00、s=0110) 总线(ALU_bus=0)R4(ld_r4=1):alu

6、_bus=0,ld_r4=1,m|cn=00,s=0110,可以看到dresult=0F。记录实验复合运算: (A or B) 减 not (A and B) 加 B运算m,cn,s3.0DR1DR2ALU结果R4R5AorB01000105H0AH0FH0FH00Hnot(A and B)10010005H0AH0FH0FH0AHR4加B0110010FH0AH19H19H0AHR4减R500011019H0AH0FH19H0AH调换运算了加B与减R5的运算顺序,可以免去DR2中的数据被覆盖后重新输入B的麻烦。结论: 通过将数据05H、0AH输入到两个寄存器中,经过实验设计的运算器,进行(A

7、 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中才能完成运算。如果直接将中间结果

8、存于DR1或DR2,则它有可能在接下来的它参与的运算中数值被覆盖掉。这样中间值没有被保存,得不出最后的正确结果。3、计算机中的负数如何表示?答:通过设置符号位,0表示正数,1表示负数。4、74181的功能表中运算“+”于“加”的区别是什么?答:运算“+”表示逻辑运算中的“与”;运算“加”表示算术运算中的“+”。5、exp_r_alu.vhd中并置运算符“&”主要作用是什么?答:主要作用是连接,由m、cn、s通过“&”组成六位的二进制数,作为运算的选择控制信号,来进行算术逻辑运算的选择。6、exp_r_alu.vhd代码中为什么要调用ieee.std_logic_unsigned库?答:因为ie

9、ee.std_logic_unsigned库中定义了基于std_logic以及std_logic_vector的无符号的算术运算,这样才能保证运算器功能的正常实现,得出正确的结果。7、VHDL语言中如何表示十六进制格式数据?答:通过在数据的前面加上x,然后再在“”里写入数据。遇到的问题及解决方案:1. 如何将结果显示在数码管上?加入以下附加电路模块:2. 实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题?将数据输入部分用2个16进制的计算器组合而成,对于它的算术逻辑运算单元功能控制选择信号s3s0用一个16进制计数器来表示。3.让7449在显示十六进制数的时候,会显示乱码,如何解决这

10、个问题?自己重新写一个译码器,其具体的代码如下: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); beg

11、in xsinxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsoutxsout=1000111;-F end case; sout=xsout; end process; end rtl;4.下载到数码管之后,只有K输入的低位能够正确显示16进制计数器的结果,剩下的s和的高位都不能正确显示。设计电路时,数码管显示电路的内部实际上我将所有的输出都使用了,也就是可以点亮八个数码管,下载的时候,我只用到了5个,但是,我把方向搞反了,以至于下载到了错误的数码管上,还以为自己的电路设计有问题-_-!。实验心得: 由于这阵子比较忙,实验也落下了好大一部分,前两次实验总体来说难度不是很大,但是在实验过程中依旧会出现很多错误,一些是由于对软件的不熟悉加上一个假期没有做EDA的生疏造成的,还有一些则是在实验过程中慢慢总结出来的错误,关于ALU部分,我觉得比较难的还是操作部分,稍微一个不小心,所有的运算就得重来一遍,所以,在今后的实验中不仅要加强开发能力,对已开发出来的程序的使用也是一个重点,特别是要结合实际环境对输入输出的更改,使自己设计的电路使用起来更加方便。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号