VHDL四位加法器實验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL四位加法器實验报告

硬件描述语言实验:四位加法器实验 实验人姓名: 王 昭 学号: 2010482062 实验地点: B3-216 实验三: -- Quartus II VHDL Template -- Basic Shift Register 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; 实验原理: a和b为两个四位的数,定义三个信号量,c0,c1,c2;低位进位si=0; s(0)=a(0)+b(0)+si;进位为c0; s(1)=a(1)+b(1)+c0;进位为c1; s(2)=a(2)+b(2)+c1;进位为c2; s(3)=a(3)+b(3)+c2;进位为co; 低位进位si都为0; 如果a+b的值大于15时,则co为1,s=a+b-16; 如果不是大于15,则相加时则s=a+b的值,co=0;经仿真可以验证此四位加法器正确。 实验四: -- Quartus II VHDL Template -- Basic Shift Register library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity adder4_2 is port ( a,b : 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=0 a; bb=0 b; ss=aa+bb+ci; s = ss(3 downto 0); co=ss(4); end rtl; 实验分析:此实验与上一实验功能相同,但此实验代码中运用了高层次抽象行为描述,直接使用了现实中使用的加法运算。 定义了aa,bb,ss三个信号量,来存储a,b,s的值,通过aa=’0’a 把四位的a和b变成五位。来实现ss=aa+bb+si;最终把ss的低四位赋给s;ss的高位赋给co;便实现了四位加法器。 观察仿真图,可以发现,si=0;因为最低位没有最低进位,通过高层次抽象行为描述直接把aa(4 downto 0)+bb(4 downto 0)的和赋给ss,把ss(3 downto 0)赋给s ,co=ss(4); 从仿真图上看出来,计算正确。此四位加法器正确。 实验八: -- Quartus II VHDL Template -- Basic Shift Register library ieee; use ieee.std_logic_1164.all; entity adder4_3 is port ( A,B : in std_logic_vector(3 downto 0); Ci : in std_logic; S :

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档