- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8讲 数电 中规模 加法器
4.2单元级组合逻辑电路的介绍、分析与应用 4.2.1加法器 不考虑低位进位,将两个1位二进制数相加的逻辑运算 半加器的真值表 逻辑表达式 逻辑电路图 1 0 0 0 C 0 1 1 1 1 0 1 0 1 0 0 0 S B A 半加器的真值表 C = AB 1.半加器(Half Adder) 逻辑符号图 逻辑符号图 下面我们分析一位全加器电路。 全加器进行加数、被加数和低位来的进位信号的相加 2.全加器(Full Adder) 分析: (1)由逻辑图逐级写出表达式,化简。 (2)由表达式列出真值表。 (3)分析逻辑功能 : 输入有奇数个1时,F=1; 输入有两个或以上1,CO=1。 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 CO F A B CI 真值表 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 CO F A B CI 真值表 分析: (3)分析逻辑功能 : 输入有奇数个1时,F=1; 输入有两个或以上1,CO=1。 A、 B为加数、被加数 Ci为低位向本位的进位位 F为本位的和 CO是本位向高位的进位位 故该电路又称为1位全加器。 1位全加器的逻辑符号 A + B + CI CO F 用异或门构成全加器 两个半加器构成一个全加器 用与或非门构成全加器 3、多位加法器 由多个一位全加器可以构成多位加法器。构成的方法有两种: A、逐位进位加法器(串行进位) B、超前进位加法器 A、逐位进位加法器(串行进位) 低位的进位信号送给邻近高位作为输入信号。 任一位的加法运算必须在低一位的运算完成之后才能进行。 串行进位加法器运算速度不高。 //结构体描述 module?add_4( input?[3:0]a, input?[3:0]b, Input ci, output?[3:0]s, output?co);? wire[3:0]?c_tmp;?? assign?co?=?c_tmp[3];? add_full i0(.a(a[0]),.b(b[0]),.ci(ci),.s(s[0]),.co(c_tmp[0]));? add_full?i1(a[1],b[1],c_tmp[0],s[1],c_tmp[1]);? add_full?i2(a[2],b[2],c_tmp[1],s[2],c_tmp[2]);? add_full?i3(a[3],b[3],c_tmp[2],s[3],c_tmp[3]);? endmodule?? //? add_full.v module add_full(input?a, b, ci, output s,?co);? assign?s?=?a^b^ci, co?=(ab)|((a^b)ci);? endmodule? //数据流(RTL描述) module?add_4( input?wire [3:0]a, input? wire [3:0]b, Input wire ci, output? wire [3:0]s, output? wire co);? wire [3:0]c; assign?s[0]?=?a[0]^b[0]^ci, c[0]?=(a[0]b[0])|((a[0]^b[0])ci);? assign?s[1]?=?a[1]^b[1]^c[1], c[1]?=(a[1]b[1])|((a[1]^b[1])c[0]);? assign?s[2]?=?a[2]^b[2]^c[2]
文档评论(0)