基于ABEL-HDL语言的四位二进制乘法器设计与仿真
基于ABEL-HDL语言的四位二进制乘法器设计与仿真
WHUT信息1901
ispLEVER3.0 2021/10/6
实验电路图
程序代码
芯片代码
MODULE CHENG
A1..A4,B1..B4 PIN;
C1..C8 PIN ISTYPE 'COM';
C=[C8..C1];
TEMP1=[0,0,0,0,A4*B1,A3*B1,A2*B1,A1*B1];
TEMP2=[0,0,0,A4*B2,A3*B2,A2*B2,A1*B2,0];
TEMP3=[0,0,A4*B3,A3*B3,A2*B3,A1*B3,0,0];
TEMP4=[0,A4*B4,A3*B4,A2*B4,A1*B4,0,0,0];
EQUATIONS
C=TEMP1+TEMP2+TEMP3+TEMP4;
END
MODULE TRAN
D1..D8 PIN;
Q1..Q12 PIN ISTYPE 'COM';
D=[0,0,0,0,D8..D1];
E=[Q12..Q1];
EQUATIONS
WHEN(D>=0)&(D<=9) THEN E=D+0;
WHEN(D>=10)&(D<=19) THEN E=D+6;
WHEN(D>=20)&(D<=29) THEN E=D+12;
WHEN(D>=30)&(D<=39) THEN E=D+18;
WHEN(D>=40)&(D<=49) THEN E=D+24;
WHEN(D>=50)&(D<=59) THEN E=D+30;
WHEN(D>=60)&(D<=69) THEN E=D+36;
WHEN(D>=70)&(D<=79) THEN E=D+42;
WHEN(D>=80)&(D<=89) THEN E=D+48;
WHEN(D>=90)&(D<=99) THEN E=D+54;
WHEN(D>=100)&(D<=109) THEN E=D+156;
WHEN(D>=110)&(D<=119) THEN E=D+162;
WHEN(D>=120)&(D<=129) THEN E=D+168;
WHEN(D>=130)&(D<=139) THEN E=D+174;
WHEN(D>=140)&(D<=149) THEN E=D+180;
WHEN(D>=150)&(D<=159) THEN E=D+186;
WHEN(D>=160)&(D<=169) THEN E=D+192;
WHEN(D>=170)&(D<=179) THEN E=D+198;
WHEN(D>=180)&(D<=189) THEN E=D+204;
WHEN(D>=190)&(D<=199) THEN E=D+210;
WHEN(D>=200)&(D<=209) THEN E=D+312;
WHEN(D>=210)&(D<=219) THEN E=D+318;
WHEN(D>=220)&(D<=229) THEN E=D+324;
WHEN(D>=230)&(D<=239) THEN E=D+330;
WHEN(D>=240)&(D<=249) THEN E=D+336;
WHEN(D>=250)&(D<=259) THEN E=D+342;
END
仿真代码
MODULE MULTI
A4..A1,B4..B1,Q12..Q1 PIN;
X=.X.;
A=[A4..A1];
B=[B4..B1];
Q=[Q12..Q1];
TEST_VECTORS
([A,B]->[Q])
[1,2]->[X];
[5,6]->[X];
[6,2]->[X];
[11,1]->[X];
[12,12]->[X];
[13,12]->[X];
[15,15]->[X];
END
仿真波形
图示仿真波形表示:因数A*因数B=积,积以8421BCD码给出百位、十位和个位。测试点如下:
| 测试点序号 | 因数A | 因数B | 积 | 正确性 |
|---|---|---|---|---|
| 1 | 1 | 2 | 002 | 正确 |
| 2 | 5 | 6 | 030 | 正确 |
| 3 | 6 | 2 | 012 | 正确 |
| 4 | 11 | 1 | 011 | 正确 |
| 5 | 12 | 12 | 144 | 正确 |
| 6 | 13 | 12 | 156 | 正确 |
| 7 | 15 | 15 | 225 | 正确 |
实验总结
-
本次实验利用ABEL-HDL语言实现了4位二进制乘法器与二进制转8421BCD译码器的设计与仿真,增强了ispLEVER设计组合型逻辑电路的能力。
-
本设计包含乘数和译码两个模块,元件端口特性分别定义在cheng.abl和tran.abl中,它们的节点连接关系定义在原理图文件multi44,sch中。
![]()
-
MODULE CHENG依照竖式的计算过程实现。
-
MODULE TRAN中使用了大量的分支结构,较为繁琐。按照C#的逻辑,曾考虑优化为:
EQUATIONS Q=(D/10)*6-(D/100)*96+D;但是编译未能通过。查阅ABEL-HDLReferenceManual[1]知,SETS未定义除法,遂放弃。


浙公网安备 33010602011771号