打印
[AVR单片机]

电工常识之(1):用三极管做的4*4乘法器(连载)

[复制链接]
楼主: xuyiyi
手机看帖
扫描二维码
随时随地手机跟帖
41
占座,学习,顶帖。

使用特权

评论回复
42
宇宙飞船| | 2010-8-10 22:54 | 只看该作者
逻辑门,是有口决的。

使用特权

评论回复
43
宇宙飞船| | 2010-8-10 22:57 | 只看该作者
楼主让飞船想起在公社中的大便版主,本来三两句话就能说明白的东西,却把贴子写得又长又臭。看到飞船差点吐了。

使用特权

评论回复
44
dzchb| | 2010-8-11 10:29 | 只看该作者
解释得很清楚,不错

使用特权

评论回复
45
xuyiyi|  楼主 | 2010-8-11 10:42 | 只看该作者
俺在LZ位已强调,本文只适合菜鸟初学者学习,老鸟请绕道,象LS这种老老鸟,看了就吐,吐坏了身体就是俺的不是啦!呵呵!

使用特权

评论回复
46
xuyiyi|  楼主 | 2010-8-11 10:44 | 只看该作者
2.4 异或门(半加器)

2.4.1 异或门的逻辑符号


使用特权

评论回复
47
xuyiyi|  楼主 | 2010-8-11 10:45 | 只看该作者
2.4.2  异或门的真值表


使用特权

评论回复
48
xuyiyi|  楼主 | 2010-8-11 10:47 | 只看该作者
2.4.3  异或门的逻辑表达式

  异或门的逻辑表达式:   Z = (/A0 * A1) + (A0 * /A1)
   经变换后,可写成:     Z = /(( A0 + /A1) * (/A0 + A1))

   由上可得出,所有位域的逻辑异或门(半加器),可先“与”运算再“或”运算,
  也可先“或”运算再“与”运算,最后再求反。

  由于异或门的逻辑运算结果和1位加法器的低位结果一致,故异或门又称为半加器(没有进位的加法器)。

  C语言中的书写表示方法: ^  ,例如:Z = A0 ^ A1

  
   附:C语言的^用法

   ^是位域运算符,在运算中表示“异或”,代表双目运算,就是运算符左右两边都需要表达式。

   比如:0xf0 ^ 0x0f
    将两边数值按位求异或,最后得出结果。

使用特权

评论回复
49
xuyiyi|  楼主 | 2010-8-11 11:47 | 只看该作者
2.5  全加器

2.5.1  全加器的逻辑符号


使用特权

评论回复
50
xuyiyi|  楼主 | 2010-8-11 11:51 | 只看该作者
2.5.2  全加器的真值表


使用特权

评论回复
51
xuyiyi|  楼主 | 2010-8-11 11:52 | 只看该作者
2.5.3  全加器的逻辑表达式

   设输入位为 A0, B0 和进位 C0, 则输出位为:
     D0 =  A0 ^ B0 ^ C0
        =  (A0 ^ B0) ^ C0

   新的下一进位为C1(或D1):
     C1(D1) = (A0 & B0) | (C0 & (A0 ^ B0))

   根据全加器的真值表,下一进位为C1(或D1)也可写作:
     C1(D1) = (A0 & B0) | (C0 & B0) | (C0 & A0)

  全加器又称作带进位的1位加法器。

使用特权

评论回复
52
xuyiyi|  楼主 | 2010-8-11 13:22 | 只看该作者
2.6  N位加法器

   将N位全加器串接起来,可组成N位加法器,其逻辑符号由下图表示





   这就是我们常用的N位(二进制)加法器。

使用特权

评论回复
53
xuyiyi|  楼主 | 2010-8-11 16:48 | 只看该作者
2.7  乘法器

2.7.1  1位乘法器的真值表


使用特权

评论回复
54
xuyiyi|  楼主 | 2010-8-11 16:50 | 只看该作者
2.7.2  1位乘法器的逻辑符号

   由1位乘法器的真值表可知,1位乘法器的功能和“与门”相同,其逻辑符号也相同。

   这里就不多列举了。

使用特权

评论回复
55
xuyiyi|  楼主 | 2010-8-11 18:03 | 只看该作者
2.8  2位乘法器

2.8.1  将N位全加器串接起来,可组成N位加法器,但N位乘法器就不那么简单了,其2位乘法器有16种状态,3位乘法器有64种状态,4位乘法器有256种状态,...... 成几何级数上升,位数越多越复杂,这里以2位乘法器为例。

使用特权

评论回复
56
xuyiyi|  楼主 | 2010-8-11 18:04 | 只看该作者
2.8.2  2位乘法器的真值表


使用特权

评论回复
57
xuyiyi|  楼主 | 2010-8-11 18:05 | 只看该作者
本帖最后由 xuyiyi 于 2010-8-11 18:09 编辑

2.8.3  2位乘法器的逻辑表达式

   2位乘法器的逻辑表达式由真值表可看出,比较复杂,有16种状态,经化简后:

     D0 = (A0 * /A1 * B0 * /B1) + (A0 * A1 * B0 * /B1) + (A0 * /A1 * B0 * B1) + (A0 * A1 * B0 * B1)

     D1 = (/A0 * A1 * B0 * /B1) + (A0 * A1 * B0 * /B1) + (A0 * /A1 * /B0 * B1) + (A0 * A1 * /B0 * B1) + (A0 * /A1 * B0 * B1) + (/A0 * A1 * B0 * B1)

     D2 = (/A0 * A1 * /B0 * B1) + (A0 * A1 * /B0 * B1) + (/A0 * A1 * B0 * B1)

     D3 = (A0 * A1 * B0 * B1)

    尽管我们对逻辑表达式进行了化简,但还是可看出,逻辑表达式还是比较复杂的,并且位数越多越复杂,如要做到4*4的硬件乘法器,有256种状态。如用晶体管等分列元件来搭,按照常规逻辑算法,要用到几千个晶体二极管!!!再加上还需用上几十个晶体三极管,上百个电阻,结构非常复杂。

    如通过对逻辑表达式进行化简,经粗步估算,还需要使用近千个电子元件,这是一个不小的工程。

使用特权

评论回复
58
xuyiyi|  楼主 | 2010-8-11 18:11 | 只看该作者
题外话:

  最早期的微处理器芯片,由于受制造工艺(密度)限制,芯片内都没有集成乘法器、除法器,就是由于硬件乘法器、除法器随着位数的增加,芯片元件成几何级增加,当时的芯片容量(密度)无法达到这一水平。

  典型产品如英特尔公司的微处理器8086(PC/XT),由于受制造集成度(密度)的限制,内部没有集成乘法器、除法器,需外接一片包含硬件乘法器、除法器的协处理器8087, 并且当时8087的价格是天价,比8086高数十倍!!!
  后来英特尔公司的微处理器80286(PC/AT,外接协处理器80287), 微处理器80386(外接协处理器80387), 都继续这一风格,只是从微处理器80486开始,由于芯片的制造工艺改进,制造密度提高,才取消了外接协处理器,微处理器芯片内部集成了硬件乘法器、除法器,当时微处理器80486,相当于微处理器80386+协处理器80387总成。

  同理,早期的8位单片机内部也没有硬件乘法器、除法器,后来,到七十年代末,由于芯片的制造工艺改进,制造密度提高,才开始加入了硬件乘法器、除法器,如英特尔公司的8051, 集成了8位硬件乘法器、除法器,代表了当时最先进的制造水平。

  因此,匠人这个用晶体管等分列元件来搭的4*4硬件乘法器,原理简单,实施起来并不简单哦!

使用特权

评论回复
59
黄俊霖00613| | 2010-8-11 20:48 | 只看该作者
我对模电的理解又加深了一步。

使用特权

评论回复
60
zsyf0918| | 2010-8-12 14:40 | 只看该作者
路过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则