基于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 正确

实验总结

  1. 本次实验利用ABEL-HDL语言实现了4位二进制乘法器与二进制转8421BCD译码器的设计与仿真,增强了ispLEVER设计组合型逻辑电路的能力。

  2. 本设计包含乘数和译码两个模块,元件端口特性分别定义在cheng.abl和tran.abl中,它们的节点连接关系定义在原理图文件multi44,sch中。

  3. MODULE CHENG依照竖式的计算过程实现。

  4. MODULE TRAN中使用了大量的分支结构,较为繁琐。按照C#的逻辑,曾考虑优化为:

    EQUATIONS
    Q=(D/10)*6-(D/100)*96+D;
    

    但是编译未能通过。查阅ABEL-HDLReferenceManual[1]知,SETS未定义除法,遂放弃。


  1. 官方文档下载地址:https://www.latticesemi.com/~/media/LatticeSemi/Documents/UserManuals/1D/ABEL-HDLReferenceManual.PDF?document_id=589 ↩︎

posted @ 2021-10-05 23:59  Huesponge  阅读(1449)  评论(0)    收藏  举报