实验2运算器实验报告参考模板_第1页
实验2运算器实验报告参考模板_第2页
实验2运算器实验报告参考模板_第3页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、班级:计算机科学与技术3班学号:20090810310姓名:康小雪日期:2011-9-24KyiiiiHjini.BiiiiuiJiiiwjiiujuiiiHjjumuiiiiujiiiiiuiiuiuimiiijiimiiiiiuiiiiiJHiiiiiiuiiiiHJiimiiiiluuinuuiiiiiuiimiiiimuniwuiiiiAumuiuiiiiiiiiimuiiiuuiiihminiuiiiiuMiimiiiiiHiiimuiiiiiuiiiuuiiiUiUiimjMiiiijaJiiiLQJiiiiaiiiiuuiiiu实验2运算器实验预习实验报告疑问:1、如何将结果显示

2、在数码管上?2、实验中输入端口比所给实验箱上的输入按钮多,如何解决这个问题?3、让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题?实验报告一、波形图:参数设置:Endtime:2.0usGridsize:100.0ns信号设置:Clk:时钟信号,设置周期为100ns占空比为50%。K:由k7k0八个信号组成,数据输入信号,十六进制。sw|r4|r5|ALU_bus:由sw_bus(输入数据到总线)、r4_bus(将R4寄存器的值反馈到总线上)、r5_bus(将R5寄存器的值反馈到总线上)、ALU_bus(将运算结果的值反馈到总线上)四个信号组成,输入信号,二进制,低电平有效。ld

3、_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:算数逻辑单元控制选择信号,由s3s0四个信号组成,输入信号,二进制。d:数据输出的中间信号,由d7d0八个信号组成,双向信号,显示总线上的数据,十六进制。dresult:最终的数据输出

4、信号,由d7resultd0result八个信号组成,输出信号,八进制。怀MasterTme-fiar了45蘑iRgrter13?Irtcrzal131讷StartApps3Z00asqfliCi.pheMOpns6COp1qus1imJ1既a一rn_L_r_L_n_L_r_L_n_Lr_L_r_L_i_r_L_r_L_rn网田k(叩XP5W皿乂R.卫,二|皓1皂1>1£】llX口2】_JCUHJLE1L工】皿】逸啻屿IBLIH屈|H肝,的00X】。00工。山。工园】JX叫R*1工"%JO】JX10OQMi:ntgaj国nls£叫":LXJU工5K

5、S:T±1aC0030WUKHKdM。MMX.ocooX3U0X眄3"jia,Ticsam鱼t也来芯J.w回心皿史JKi?1氏fttY1) 初始状态:K无输入,bus信号无效,lddr信号无效,总线上位高阻态。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。2) AorB的运算结果(m|cn=01、s=0001)总线(ALU_bus=0)R4(ld_r4=1):

6、alu_bus=0,ld_r4=1,m|cn=01,s=0001,可以看到dresult=0F。3) not(AandB)的运算结果(m|cn=10、s=0100)总线(ALU_bus=0)R5(ld_r5):alu_bus=0,ld_r5=1,m|cn=10,s=0100,可以看到dresult=0A。4) R4总线(r4_bus=0)r1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到dresult=0F。5) DR1加B的运算结果(m|cn=01、s=1001)总线(ALU_bus=0)R4(ld_r4):alu_bus=0,ld_r4=1,m

7、|cn=01,s=1001,可以看到dresult=19。R4总线(sw_bus=0)DR1(ld_r1=1):r4_bus=0,ld_r1=1,m|cn=00,s=0000,可以看到dresult=19;R5总线(sw_bus=0)DR2(ld_r2=1):r5_bus=0,ld_r5=1,m|cn=00,s=0000,可以看到dresult=0A。6) 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,可以看到dresult=0F。记录实验复合运算:(AorB)减not

8、(AandB)加B运算m,cn,s3.0DR1DR2ALU结果R4R5AorB01000105H0AH0FH0FH00Hnot(AandB)10010005H0AH0FH0FH0AHR4加B0110010FH0AH19H19H0AHR4减R500011019H0AH0FH19H0AH调换运算了加B与减R5的运算顺序,可以免去DR2中的数据被覆盖后重新输入B的麻烦。结论:通过将数据05H、0AH输入到两个寄存器中,经过实验设计的运算器,进行(AorB)减not(AandB)加B的复合运算,最终得出0FH的正确结果。说明本实验的设计能实现运算器的运算功能,电路设计正确。二、实验日志思考题:1、存入

9、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表示正数,

10、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的无符号的算术运算,这样才

11、能保证运算器功能的正常实现,得出正确的结果。7、VHDL语言中如何表示十六进制格式数据?答:通过在数据的前面加上x,然后再在里写入数据。遇到的问题及解决方案:1. 如何将结果显示在数码管上?加入以下附加电路模块:ri=.Lt.jJ:'dh'IO"'""""ma:im».IarapqiiiiibimiaiMg3隔IwHUM'*»!.泸邮qIl-lf-iil-lrf.V.i*dhSp伺2JJiL>书#!Bin!iiHwiariijfiajilrHIH-i-110I商XhF.前'L一做

12、纣Irriil1血华钊U:iqsp做qdn£3L(l|dr3Clan?ia.印侦叫刊,湖mi七Wjk.Cl-:b-I!rrrr>h|h-aibj:iMab-4B>I:学/_rm心iii.,<ii-.jaiBusAaHi&n|>03>R-l-IMillIIMIIIII!MIHh1_>8inniiiiiaaMiainizBiihuTlTWITnhibhibinnb-1?«-奇t11I'l;-.-BH-"-H-H>«riiiiijuifhiUJ;5J'i2. 实验中输入端口比所给实验箱上的输入按

13、钮多,如何解决这个问题?将数据输入部分用2个16进制的计算器组合而成,对于它的算术逻辑运算单元功能控制选择信号s3s0用一个16进制计数器来表示。3. 让7449在显示十六进制数的时候,会显示乱码,如何解决这个问题?自己重新写一个译码器,其具体的代码如下:libraryieee;useieee.std_logic_1164.all;entitybus_reg7isport(sin:instd_logic_vector(3downto0);sout:outstd_logic_vector(6downto0);endbus_reg7;architecturertlofbus_reg7issigna

14、lxsin:std_logic_vector(3downto0);signalxsout:std_logic_vector(6downto0);beginxsin<=sin;process(xsin,xsout)begincasesiniswhen"0000”=>xsout<="1111110”;-0when"0001”=>xsout<="0110000”;-1when"0010"=>xsout<="1101101"-2when"0011"=>xs

15、out<="1111001"-3when"0100"=>xsout<="0110011"-4when"0101"=>xsout<="1011011"-5when"0110"=>xsout<="1011111"-6when"0111”=>xsout<="1110000”;-7when"1000”=>xsout<="1111111”;-8when"

16、;1001"=>xsout<="1111011"-9when"1010”=>xsout<="1110111”;-Awhen"1011"=>xsout<="0011111"-bwhen"1100”=>xsout<="1001110”;-Cwhen"1101"=>xsout<="0111101"-dwhen"1110"=>xsout<="1001111"-Ewhen"1111"=>xsout<="1000111"-Fendcase;sout<=xsout;endprocess;endrtl;下载到数码管之后,只有K输入的低位能够正确显示16进制计数器的结果,剩下的s和K的高位都不能正确显示。设计电路时,数码管显示电路的内部实际上我将所有的输出都使用了,也就是可以点亮八个数码管,下载的时候,我只用到了5个,但是,我把方向搞反了,以至于下载到了错误的数码管上,还以为自己的电路设计有问题-_-!o实验心得:由于这阵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论