简易两位二进制乘法器设计

一、   设计原理:

1、基本公式:   A1 A0 * B1 B0=Y3 Y2 Y1 Y0

2、设计理念:  两位二进制数 A1 A0 和B1 B0 相乘后,结果最高为四位Y3 Y2 Y1 Y0

简易两位二进制乘法器设计
 

3、归纳得出:由上式可归纳得出输出的4位二进制数与输入的两位二进制数之间的逻辑,得出下表:

Y0

A0 B0

Y1

A1 B0  A0 B1

Y2

A1 B1  ( A1 B0 * A0 B1 )

Y3

A1 B1 * ( A1 B0 * A0 B1 )

  

 

 

 

 

二、 Verilog模块描述:

代码表:

源代码:

module multiply(A,B,Y);

input[1:0] A,B;

output[3:0] Y;

and #1 u1(Y[0],A[0],B[0]);

and #1 u2(sela,A[1],B[0]);

and #1 u3(selb,A[0],B[1]);

and #1 u4(selc,A[1],B[1]);

and #1 u5(seld,sela,selb);

xor #1 u6(Y[1],sela,selb);

xor #1 u7(Y[2],seld,selc);

and #1 u8(Y[3],seld,selc);

endmodule

测试文件:

module multiply_t;

reg[1:0]ain,bin;

reg clock;

wire[3:0]yout;

initial

begin

   ain=0;bin=0;clock=0;

end

  always #50 clock=~clock;

always@(posedge clock)

begin

ain={$random}%4;

bin={$random}%4;

end

multiply m(.A(ain),.B(bin),.Y(yout));

endmodule

仿真图:

简易两位二进制乘法器设计
 

仿真图分析: 在  117ns时,ain=01,bin=11,yout=0011;

                 275ns时,ain=01,bin=01,yout=0001;

                 375ns时,ain=01,bin=10,yout=0010;

                 575ns时,ain=10,bin=01,yout=0010;

分析可知  yout=ain*bin 式成立,此逻辑设计可行。

三、 电路设计:

由verilog逻辑代码可作出以下逻辑电路图:

简易两位二进制乘法器设计

 Multisim电路连接图:

 简易两位二进制乘法器设计

 

逻辑仿真图:

简易两位二进制乘法器设计

(仿真先自上到下依次为 A1 A0 B1 B0 Y3 Y2 Y1 Y0)

由仿真图分析:8ms时     A1A0*B1B0=11*00=0000

              14.4ms时  A1A0*B1B0=11*10=0110

              20.8ms时  A1A0*B1B0=01*10=0010

              24ms时    A1A0*B1B0=00*00=0000

由仿真图分析可得出此两位二进制乘法器电路设计可行。

(以下电路图及版图均为手绘图,不考虑尺寸宽长比)

 简易两位二进制乘法器设计
 

简易两位二进制乘法器设计
 

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值