EDA技术基础 电路设计实践.ppt

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

EDA 技术基础 第 5 章 电路设计实践 5.1 8位加法器 5.1.1 设计原理 1.设计任务 设计一个可以对两个8位二进制数进行加法运算的加法器。 2.方案构思 多位加法器按其进位方式的不同可以分为两类:串行进位加法器和并行进位加法器。串行进位加法器是将多个1位全加器级联,低位全加器的进位输出送给相邻高位全加器作为进位输入,以此构成多位加法器。这种设计思路简单明了且占用资源较少,但运算速度较慢。并行进位方式则是在各位的加法环节之外,另外设有进位产生逻辑电路,各位的进位输入信号同时产生,从而各位可以同时完成全加运算,输出最后结果。 并行进位方式具有较快的运算速度,但是相对于串行进位方式来说,却往往占用更多的资源。尤其是当运算位数增加的时候,相同位数的并行进位和串行进位加法器的资源占用差距也越来越大。因此,常常需要设计者在运算速度和资源占用量之间做出折中和平衡。 实践证明,4位二进制并行进位加法器和串行级联加法器占用的资源几乎相同。因此,可以用两个4位二进制并行加法器级联以构成8位二进制加法器,这是一种较为合理的选择,其结构组成如图5.1所示。 5.1.2 程序设计 1. 子模块设计 4位二进制并行进位加法器源程序ADDER4B.VHD如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT(CIN: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(3 DOWNTO 0); B: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC); END ADDER4B; ARCHITECTURE A OF ADDER4B IS SIGNAL SINT: STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL AA,BB: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN AA=0A; BB=0B; SINT=AA+BB+CIN; S=SINT(3 DOWNTO 0); COUT=SINT(4); END A; 2.顶层模块设计 8位二进制加法器源程序ADDER8B.VHD如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8B IS PORT(CIN: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(7 DOWNTO 0); B: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT: OUT STD_LOGIC); END ADDER8B; ARCHITECTURE ART OF ADDER8B IS COMPONENT ADDER4B PORT(CIN: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(3 DOWNTO 0); B: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC); END COMPONENT; SIGNAL CARRY_OUT: STD_LOGIC; BEGIN U1:ADDER4B PORT MAP(CIN=CIN,A=A(3 DOWNTO 0), B=B(3 DOWNTO 0),S=S(3 DOWNTO 0), COUT=CARRY_OUT); U2:ADDER4B PORT MAP(CIN=CARRY_OUT,A=A(7 DOWNTO 4),B=B(7 DOWNTO 4),S=S(7 DOWNTO 4),COUT=COUT); END ART; 在本例中,顶层设计可以用VHDL程序输入法,也可以用图5-1所示的原理图输入法。 5.1.3 编译/仿真 1.编译过程 (1) 建立顶层设计文件夹AD

文档评论(0)

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

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

1亿VIP精品文档

相关文档