VHDL硬件描述语言四位加法器实验报告.docVIP

VHDL硬件描述语言四位加法器实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
题目:硬件描述语言实验四:四位加法器 姓名:***** 学号: ****** 地点: 主楼402 时间: 3月21日 一、实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。 二、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。 三、设计要求:采用三种方式设计一个四位加法器,实体名称分别为“adder4”、“adder4_2”、和“adder_3”,四位加法器的引脚与功能如下表。 端口模式 端口名 数据类型 说明 in (输入) a std_logic_vector(3 downto 0) 加数 b 加数 ci std_logic 低位进位 out (输出) s std_logic_vector(3 downto 0) 和 co std_logic 高位进位 四、实验步骤: 1、采用寄存器传输的描述方式: 首先新建一个工程,命名为“adder4”,然后编辑代码。注意在模块内部(构造体说明部分)需要定义三个连接线,定义语句为: signal c0,c1,c2 : std_logic 代码如下: library ieee; use ieee.std_logic_1164.all; entity adder4 is port ( a,b : in std_logic_vector (3 downto 0); ci : in std_logic; s : out std_logic_vector (3 downto 0); co : out std_logic ); end entity; architecture rtl of adder4 is signal c0,c1,c2 : std_logic; begin s(0) = a(0) xor b(0) xor ci; c0= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci); s(1)= a(1) xor b(1) xor c0; c1= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0); s(2)= a(2) xor b(2) xor c1; c2= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1); s(3)= a(3) xor b(3) xor c2; co= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2); end rtl; 仿真波形图如下: 仿真电路图如下: 由上图可知设计是正确的。 采用行为描述方式: 首先新建一个工程,命名为“adder4_2”,然后编辑代码。在编写代码过程中应注意以下几个要点: 1、VHDL语言可以进行高层次抽象的行为描述,而不用描述硬件电路的具体逻辑关系。例如在描述加法器时,可以用如下语句: s = a + b + ci; 上述描述方法需要用到ieee库中的ieee.std_logic_unsigned.all。 2、为了能够生成进位,四位加法器在内部应得到五位的和,因此两个加数也应扩充为五位。扩充字长可应用并置运算完成。如下语句将四位信号a在最高端并置一个’0’而成为五位信号aa: aa = ‘0’ a; 将五位信号ss的低四位赋值给四位信号s的语句如下: s = ss(3 downto 0); 和的最高位作为加法器的进位输出。 代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity adder4_2 is port ( a,b: in std_logic_vector(3 downto 0); ci : in std_logic; s : out std_logic_vector(3 downto 0); co : out std_logic ); end entity; architecture rtl of adder4_2 is signal aa,bb,ss:std_logic_vector(4 downto 0); begin aa = 0a; bb = 0b; ss = aa+bb+ci; s = ss(3 downto 0); co= ss(4); end rtl; 仿真波形图如下: 仿真电路图如下: 由上图可知

文档评论(0)

ygxt89 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档