乘法器的设计试解 |
送交者: 粱远声 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。 |
|
|
|
实用资讯 | |
|
|
一周点击热帖 | 更多>> |
|
|
一周回复热帖 |
|
|
历史上的今天:回复热帖 |
2008: | 马和瓦的问题 | |
2007: | 最小周长整数三角形简单办法 | |
2007: | 求个位数字解 | |
2005: | 怎样过桥 | |
2005: | 如何对 cos ^3/2 X 积分? | |