第一部分CPLD器件及开发系统的使用
如果是生成的“include”模块,程序如下: include\subdesign xadd16
(ci,ma[15..0],mb[15..0]:input; co,s[15..0] ) variable
mxadd8,nxadd8:xadd8; coa:node; begin
mxadd8.a[]=ma[7..0]; mxadd8.b[]=mb[7..0]; mxadd8.ci=ci;coa=mxadd8.co; s[7..0]=mxadd8.s[7..0]; -----------------------
nxadd8.a[]=ma[15..8];nxadd8.b[]=mb[15..8];nxadd8.ci=coa; s[15..8]=nxadd8.s[]; co=nxadd8.co; end;
可见除了第一条语句更换外,其它的语句完全一样。
下面是利用波形编辑生成的12归1 “include”模块生成60进制、12归一电路:
include \subdesign countx (inclk :input;
outa[6..0],outb[6..0],outc[6..0],outd[6..0]:output; ) variable
a[3..0],b[3..0]:dff; fp:node; mn12t:12to1s; begin
(a[],b[]).clk=inclk; mn12t.inclk=fp;
143
:output;
第一部分CPLD器件及开发系统的使用
if a[]==9 then a[]=0;
if b[]==5 then b[]=0; fp=vcc; else
b[]=b[]+1;fp=gnd;end if; else
a[]=a[]+1;b[]=b[]; fp=vcc;
end if; Table
a[3..0]=>outa[6..0]; h\ h\ h\ h\ h\ =>h\ h\ =>h\ h\ =>h\ h\ h\ =>h\ h\
h\ =>h\ h\ =>h\ h\ h\
=>h\
h\ h\ =>h\End table; Table
b[3..0]=>outb[6..0]; h\ h\ h\
144
第一部分CPLD器件及开发系统的使用
h\ h\ =>h\ h\ =>h\ h\ =>h\ h\ h\ =>h\ h\
h\ =>h\ h\ =>h\ h\ h\
=>h\
h\ h\ =>h\End table; Table
mn12t.n[]=>outc[]; h\ h\ h\ h\ h\ =>h\ h\ =>h\ h\ =>h\ h\ h\ =>h\ h\
h\ =>h\ h\ =>h\ h\ h\
=>h\
h\ h\ =>h\End table; Table
145
第一部分CPLD器件及开发系统的使用
mn12t.n[]=>outd[]; h\ h\ h\ h\ h\ h\
=>h\ =>h\
h\ h\ h\ h\ h\ h\
=>h\ =>h\ =>h\ =>h\
h\
h\ h\ h\ =>h\End table; end;
当然,利用文本编辑形成的模块在文本编辑时使用的方式和上面介绍的一样。 2、 波形编辑、和文本编辑形成的模块在图形编辑时使用 先用AHDL语言编辑7段译码显示电路如下: subdesign 7ss
(a3,a2,a1,a0 :input; outa[6..0]:output; ) begin
(a3,a2,a1,a0)=>outa[6..0]; h\ h\ h\ h\ h\ h\
=>h\ =>h\
146
第一部分CPLD器件及开发系统的使用
h\ h\ h\ h\ h\
=>h\ =>h\ =>h\ =>h\ =>h\
h\ h\
h\ h\ h\ =>h\End table; end;
编译后形成普通模块,7ss。
打开图形编辑界面,分别调用如图所示的74290两个,与门,波形编辑形成的
图5-6 在语言编辑、波形编辑中形成的符号在图形编辑下使用
模块12to1和用文本编辑形成的模块7ss,将电路如图连接,进行编译。然后
147