设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
乘法器的设计试解
送交者: 粱远声 2010年10月28日15:53:08 于 [灵机一动] 发送悄悄话
乘法器的设计

假设有一个4位(bit)的乘法器,是组合电路构成。还有一个16位的加法器,也是
组合电路构成。当加法器的输入悬空时,加法器把它理解成逻辑 0 (低电位)。
现在要完成 8 位乘  8 位的乘法。乘数和被乘数分别放在2个8位的寄存器里。
结果放在一个16位的寄存器里,初始状态是全0。

还有2个4位的 2 传 1 多路传输器。选择线为0时,第0组(4位)输入被传到输出端。
选择线为1时,第1组(4位)输入被传到输出端。

还提供一个8位的 1 传 4 译码器。选择线为00时,输入(8位)被传到第0组输出端。
选择线为01时,输入(8位)被传到第1组输出端。选择线为10时,输入(8位)被传到
第2组输出端。选择线为11时,输入(8位)被传到第3组输出端。没有选到的输出端
处在高阻抗状态。

还有1个2位的计数器。每个主钟脉冲后,计数器 的状态是 00, 01, 10, 11。

请问怎样连接才能完成8 位乘  8 位的乘法?

解:

设乘数为A1*2^4+A0,被乘数为B1*2^4+B0,分别放在乘数寄存器和被乘数寄存器
里。结果的表达式是 A1*B1*2^8 + A1*B0*2^4 + A0*B1*2^4 + A0*B0

加法器的输出(16位)接结果寄存器的输入(16位)。结果寄存器的输出(16位)接加
法器的被加数(16位)。

被乘数寄存器输出的低4位接被乘数2传1多路传输器的第0组(4位)输入。被乘数寄
存器输出的高4位接被乘数2传1多路传输器的第1组(4位)输入。选择线接计数器的
低位。被乘数多路传输器的输出接乘法器的被乘数(4位)。

乘数寄存器输出的低4位接乘数2传1多路传输器的第0组(4位)输入。乘数寄存器输
出的高4位接乘数2传1多路传输器的第1组(4位)输入。选择线接计数器的高位。乘
数多路传输器的输出接乘法器的乘数(4位)。

乘法器的积(8位)接1传4译码器的输入(8位)。译码器的第0组输出接加法器加数的
低8位。第1组输出接加法器加数的中8位。第2组输出接加法器加数的中8位。第3组
输出接加法器加数的高8位。

分析:

初始状态,结果寄存器是全0。计数器是00。
计数器的低位0选择被乘数B0,计数器的高位0选择乘数A0。计数器是00把积A0*B0
送到法器加数的低8位。一个时钟脉冲后,结果寄存器的内容是A0*B0。计数器是01。

计数器的低位1选择被乘数B1,计数器的高位0选择乘数A0。计数器是01把积A0*B1
送到法器加数的中8位。一个时钟脉冲后,结果寄存器的内容是
A0*B1*2^4 + A0*B0。
计数器是10。

计数器的低位0选择被乘数B0,计数器的高位1选择乘数A1。计数器是10把积A1*B0
送到法器加数的中8位。一个时钟脉冲后,结果寄存器的内容是
A1*B0*2^4 + A0*B1*2^4 + A0*B0。
计数器是10。

计数器的低位1选择被乘数B1,计数器的高位1选择乘数A1。计数器是11把积A1*B1
送到法器加数的高8位。一个时钟脉冲后,结果寄存器的内容是
A1*B1*2^8 + A1*B0*2^4 + A0*B1*2^4 + A0*B0。

计数器是00。

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2008: 马和瓦的问题
2007: 最小周长整数三角形简单办法
2007: 求个位数字解
2005: 怎样过桥
2005: 如何对 cos ^3/2 X 积分?