全加器的VHDL程序实现及仿真.docVIP

  • 47
  • 0
  • 约3.09千字
  • 约 6页
  • 2019-07-08 发布于江西
  • 举报
第 PAGE 4 页 共 NUMPAGES 5 页 全加器的VHDL程序实现及仿真 一、基本功能概述 在计算机的各种运算过程中,加法运算是最基本的,其他各种运算都可以由加法运算推得,如减法可以转换成补数的加法,乘法可以转换成连续的加法,而除法可以转换成连续的减法,再用补数实现加法运算,因此加法在计算机的运算过程中是非常重要的。 本系统所设计的加法器就是计算机上实现加法运算的基本器件,它的逻辑功能如下表所示: 二进制输入 进位位输入 和输出 进位位输出 a b cin s co 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 根据以上真值表,设计系统的VHDL源程序,并进行程序的编译和仿真。 二、VHDL源程序 下面为全加器的VHDL源程序: --全加器VHDL源程序,它由两个半加器组成。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; --半加器实体定义 ENTITY half_adder IS PORT( a , b : IN STD_LOGIC; --定义输入管脚 s , co : OUT STD_LOGIC --定义输出管脚 ); END half_adder; --半加器结构体定义 ARCHITECTURE half1 OF half_adder IS SIGNAL c,d:STD_LOGIC; BEGIN c = a OR b; d = a NAND b; co = NOT d; s = c AND d; END half1; --全加器定义 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; --全加器实体定义 ENTITY adder IS PORT( a , b , cin : IN STD_LOGIC; --定义全加器输入管脚 s , co : OUT STD_LOGIC --定义全加器输出管脚 ); END adder; --全加器结构体定义 ARCHITECTURE full1 OF adder IS --调用前述半加器逻辑描述模块 COMPONENT half_adder --管脚说明 PORT( a , b : IN STD_LOGIC; s , co : OUT STD_LOGIC ); END COMPONENT; SIGNAL u0_co,u0_s,u1_co:STD_LOGIC; --中间信号变量定义 BEGIN --进行端口映射 u0:half_adder PORT MAP(a,b,u0_s,u0_co); u1:half_adder PORT MAP(u0_s,cin,s,u1_co); co=u0_co OR u1_co; END full1; 三、编译及仿真 在建立了以上全加器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件,如*.cnf,*.rpt,*.snf,*.pof等。 编译过程如下: 1、输入完以上全加器的源程序后,进入File/Project子菜单,选择Name项,在工程名(Project name)对话框中输入adder.vhd,按OK按钮;再在相同的子菜单中选择Set Project to Current File项; 2、进入MAX+plus Ⅱ菜单,在出现的子菜单中选择Compiler选项,将弹出编译对话框; 3、选定最终要下载的芯片:点击主菜单Assign选项,在子菜单中选择Device项,在弹出的对话框中寻找系统适用的芯片,本系统选取MAX 7000,按OK按钮; 4、确定源程序的版本:点击主菜单Interfaces选项,在下级子菜单中选择VHDL Netlist Reader Settings项,弹出对应的对话框,在该对话框中选择所编VHDL源程序对应的版本号,按OK按钮; 5、完成以上步骤后,按编译对话框中的Start按钮,编译器即可启动。 因为上面输入的源程序没有错误,因此编译会顺利通过,显示编译成功对话框。这样整个编译过程就结束了。 为了验证所编VHDL程序的功能是否满足设计要求,下面对编译通过的程

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档