实验一-加法器的设计与实现_第1页
实验一-加法器的设计与实现_第2页
实验一-加法器的设计与实现_第3页
实验一-加法器的设计与实现_第4页
实验一-加法器的设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验项目二:简单计算器设计与实现基本要求:1.能够实现加减运算2.能够实现乘法运算扩展要求:1.能够实现除法运算一、实验目的利用原件例化语句完成一个8位加法器的设计。二、实验环境QuartusII开发系统三、实验内容1、掌握层次化设计的方法;2、掌握一位全加器工作原理;3、掌握用VHDL文本输入法设计电子线路的详细流程;4、掌握元件例化语句用法;5、熟悉软硬件设计验证方法。四、实验过程设计思想:8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。实验步骤:1、设计一个全加器新建工程,建立源文件,输入VHDL设计文件,如下图所示:完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:由图可知仿真结果正确。2、元件例化把VHDL设计文件转为原理图中使用的元件。在文件菜单File中选择Creat/Update选项,单击CreateSymbolFileforCurrentFile选项,系统自动生成相应的元件标号。重复新建文件的操作,选择BlockDiagram/SchmaticFile选项,新建一个原理图文件,在添加元件列表中可以看到自动生成的元件,选择full_adder这个元件添加到原理图中,如下图所示:顶层文件如下:

该器件multi对乘法过程进行时序控制。

Clk为时钟信号;

lStart控制乘法器的开始;

Endd控制乘法器结束;

Clr起到复位作用;

Ca用来控制乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;

Cb[0]、cb[1]用来控制被乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;

Cm[0]、cm[1]控制八位移位寄存器(74198)的移位功能,使得和乘数与被乘数的移位相一致;

编码如下;libraryieee;useieee.std_logic_1164.all;entitymultiisport(start:instd_logic;i4:instd_logic;bi:instd_logic;clk:instd_logic;endd:outstd_logic;clr:outstd_logic;ca:outstd_logic;cb1:outstd_logic;cb0:outstd_logic;cm1:outstd_logic;cm0:outstd_logic;cc:outstd_logic);endmulti;architecturemulti_architectureofmultiissignalcurrent_state,next_state:bit_vector(1downto0);constants0:bit_vector(1downto0):="00";constants1:bit_vector(1downto0):="01";constants2:bit_vector(1downto0):="10";constants3:bit_vector(1downto0):="11";begincom1:process(current_state,start,i4)begincasecurrent_stateiswhens0=>if(start='1')thennext_state<=s1;elsenext_state<=s0;endif;whens1=>next_state<=s2;whens2=>next_state<=s3;whens3=>if(i4='1')thennext_state<=s0;elsenext_state<=s2;endif;endcase;endprocesscom1;com2:process(current_state,bi)begincasecurrent_stateiswhens0=>endd<='1';clr<='1';ca<='0';cb1<='0';cb0<='0';cm1<='0';cm0<='0';cc<='0';whens1=>endd<='0';clr<='0';ca<='1';cb1<='1';cb0<='1';cm1<='0';cm0<='0';cc<='0';whens2=>if(bi='1')thenendd<='0';clr<='1';ca<='0';cb1<='0';cb0<='0';cm1<='1';cm0<='1';cc<='1';elseendd<='0';clr<='1';ca<='0';cb1<='0';cb0<='0';cm1<='0';cm0<='0';cc<='1';endif;whens3=>endd<='0';clr<='1';ca<='0';cb1<='0';cb0<='1';cm1<='0';cm0<='1';cc<='0';endcase;endprocesscom2;reg:process(clk)beginifclk='1'andclk'eventthencurrent_state<=next_state;endif;endprocessreg;endmulti_architecture;仿真如下:五、收获与总结在乘法器的试验中,主要设计的其实是乘法器的时序控制信号multi,把multi的对应输出与移位器,加法器和计数器相连之后,就能够进行4

温馨提示

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

评论

0/150

提交评论