实验一-加法器的设计与实现

上传人:小** 文档编号:88209248 上传时间:2019-04-20 格式:DOC 页数:8 大小:495.50KB
返回 下载 相关 举报
实验一-加法器的设计与实现_第1页
第1页 / 共8页
实验一-加法器的设计与实现_第2页
第2页 / 共8页
实验一-加法器的设计与实现_第3页
第3页 / 共8页
实验一-加法器的设计与实现_第4页
第4页 / 共8页
实验一-加法器的设计与实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《实验一-加法器的设计与实现》由会员分享,可在线阅读,更多相关《实验一-加法器的设计与实现(8页珍藏版)》请在金锄头文库上搜索。

1、实验项目二:简单计算器设计与实现基本要求: 1. 能够实现加减运算 2. 能够实现乘法运算 扩展要求: 1.能够实现除法运算一、实验目的 利用原件例化语句完成一个8位加法器的设计。二、实验环境 Quartus II 开发系统 三、实验内容1、掌握层次化设计的方法;2、掌握一位全加器工作原理;3、掌握用VHDL文本输入法设计电子线路的详细流程;4、掌握元件例化语句用法;5、熟悉软硬件设计验证方法。四、实验过程设计思想:8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现

2、加法器。实验步骤:1、设计一个全加器新建工程,建立源文件,输入VHDL设计文件,如下图所示:完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:由图可知仿真结果正确。2、元件例化把VHDL设计文件转为原理图中使用的元件。在文件菜单File中选择Creat/Update选项,单击Create Symbol File for Current File 选项,系统自动生成相应的元件标号。重复新建文件的操作,选择Block Diagram/Schmatic File 选项,新建一个原理图文件,在添加元件列表中可以看到自动生成的元件,选择full_adder这个元件添加到原理图

3、中,如下图所示:3、完成顶层图的设计用生成的元件标号,完成顶层图的设计。这里有两种方法,一种是直接用原理图设计,根据原理图设计工具的使用方法,完成顶层文件的设计,这个方法比较复杂,所以这里选择另一种方法,通过VHDL设计文件。继续建立源文件,输入VHDL设计文件,如下图所示:依照上述步骤,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:五、实验总结本次实验的目的是设计一个8位二进制加法器,而8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。总结实验

4、过程中遇到的各种问题,问题产生的原因,解决方法,分析仿真结果,验证8位加法器设计的是否正确。根据实验设计思路,我先用VHDL设计了一个全加器full_adder.vhd,编译、仿真成功后,通过元件例化的方式,采用原理图设计了一个8位的加法器adder8.bdf,但是在这个过程中出现了很多问题,即由于我是把这个8位的加法器的每个全加器元件输入输出引脚分开的,因此一开始就设计了17个输入引脚,这使得我在给输入引脚添加信号时不知道添加什么信号,才能够起到验证仿真结果是否正确的目的。另外,我在这里还遇到了一些其他问题,由于在建立原理图文件adder8.bdf以后没有将该原理图文件设置成顶层文件,这使得

5、我在给输入引脚添加信号时无法添加引脚。这里还存在一个问题:当通过原理图设计8位加法器时,我不知道能不能把它当着一个整体,即3输入2输出。另外,怎么通过在原理图设计里面把这一思想表示出来。由于通过原理图设计无法完成8位加法器的设计,所以我又换了VHDL设计。通过VHDL设计比原理图设计简单,但是更容易出错,比如输入引脚、中间信号生成等的不匹配。建立VHDL源文件以后,保存为adder8.vhd文件名,编译、仿真,但是由于我是将8位加法器当成的一个整体,即3输入2输出,并且在端口定义时我所定义的数据类型为逻辑矢量,因此这里又出现一个问题,即在仿真时给输入信号添加信号时不能确定到底应该怎么添加,并且

6、其中间信号无法确定。不过后来在老师的指导下,我明白了错误根源在哪里。在对8位的加法器进行仿真时,一开始我是用的时序仿真,这里就出现一个问题,即仿真结果为未知,但是换用功能仿真的时候,其结果就是正确的,不指导是什么原因。还有另外一个问题,即我在将adder8.vhd文件设置为顶层文件以后,并没有进行编译就开始仿真,这使得我在给引脚添加信号时始终也找不到输入信号,不过好在面意识到了这个问题。在本次实验过程中,虽然出现了很多问题,但正是因为在操作过程中发现了很多问题并且通过对这些问题的解决,我对Quartus II 7.0 开发系统环境也有了更深入的了解和认识。每一次发现错误,都是一个新的进步,比起

7、上次实验课,我觉得自己在操作动手能力方面又有了提升,至少现在看到一个问题的时候,能够明白是什么问题,能够知道该怎么去问,该怎么去解决它。所以说,无论干什么,但凡是要想真正学一门知识,都要自己去摸索,只有自己亲自动手去做了,才能够真正深入地认识和了解它,才能够学到自己想要的东西。另外,在学习的过程中,还要掌握技巧,我觉得在这方面自己就很欠缺,因此,以后一定要注意,努力培养这方面的能力。实验六 乘法器的设计一、实验目的1、了解乘法器的工作原理。2、了解复杂时序电路的设计流程。二、实验原理及内容实验原理设计一个能进行两个十进制数的乘法器,乘数和被乘数的输入用开关K1K10代表09,用编码器对数据开关

8、进行编码,设置相乘信号,当输入完毕后,相乘信号有效,使输入的乘数送进寄存器寄存。在输入被乘数。设计等于信号。当输入完毕后。启动乘法模块。实验内容1、设计一个能进行两个十进制数相乘的乘法器,乘数和被乘数均小于100。 (可以参考教材231页的VHDL代码来设计)2、对所编写的电路进行编译及正确的仿真。三、实验条件Quartus II实验环境四、实验及仿真顶层文件如下:该器件multi对乘法过程进行时序控制。 Clk为时钟信号;lStart控制乘法器的开始; Endd控制乘法器结束; Clr起到复位作用; Ca用来控制乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;C

9、b0、cb1用来控制被乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;Cm0、cm1控制八位移位寄存器(74198)的移位功能,使得和乘数与被乘数的移位相一致;编码如下;library ieee;use ieee.std_logic_1164.all;entity multi is port ( start:in std_logic; i4:in std_logic; bi:in std_logic; clk:in std_logic; endd:out std_logic; clr:out std_logic; ca:out std_logic; cb1:out

10、 std_logic; cb0:out std_logic; cm1:out std_logic; cm0:out std_logic; cc:out std_logic );end multi;architecture multi_architecture of multi issignal current_state,next_state:bit_vector(1 downto 0);constant s0:bit_vector(1 downto 0):=00;constant s1:bit_vector(1 downto 0):=01;constant s2:bit_vector(1 d

11、ownto 0):=10;constant s3:bit_vector(1 downto 0):=11;begincom1:process(current_state,start,i4)begin case current_state is when s0=if(start=1)then next_state=s1; else next_statenext_statenext_stateif(i4=1)then next_state=s0; else next_stateendd=1;clr=1;ca=0;cb1=0;cb0=0; cm1=0;cm0=0;ccendd=0;clr=0;ca=1

12、;cb1=1;cb0=1; cm1=0;cm0=0;ccif(bi=1)then endd=0;clr=1;ca=0;cb1=0;cb0=0; cm1=1;cm0=1;cc=1; else endd=0;clr=1;ca=0;cb1=0;cb0=0; cm1=0;cm0=0;ccendd=0;clr=1;ca=0;cb1=0;cb0=1; cm1=0;cm0=1;cc=0; end case; end process com2; reg:process(clk) begin if clk=1and clkevent then current_state=next_state; end if; end process reg;end multi_architecture; 仿真如下:五、收获与总结在乘法器的试验中,主要设计的其实是乘法器的时序控制信号multi,把multi的对应输出与移位器,加法器和计数器相连之后,就能够进行4位二进制数移位相加的功能,即乘法功能。这次课程设计,期间遇到了许多的问题。我通过查阅课本及资料。以及相互讨论和老师的指导。最终设计成、功了。而且通过了仿真。不断的完善了自己的设计。经过浙西设计我体会到了合作的重要性,同时也发现了自身的问题。在以后的学习工作中,我希望能培养我的动手能力。

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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