第3章 MAXPLUS软件的使用第7节文档格式.docx
- 文档编号:16526189
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:11
- 大小:50.06KB
第3章 MAXPLUS软件的使用第7节文档格式.docx
《第3章 MAXPLUS软件的使用第7节文档格式.docx》由会员分享,可在线阅读,更多相关《第3章 MAXPLUS软件的使用第7节文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
counter.dnup=dnup;
decoder.i[3..0]=counter.(qd,qc,qb,qa);
xs[]=counter.(qd,qc,qb,qa);
(sg,sf,se,sd,sc,sb,sa)=decoder.(g,f,e,d,c,b,a);
out=counter.cout;
END;
该设计的仿真结果见图3.7.1。
图3.7.1
例2:
N位计数译码电路
四位十进制计数器AHDL设计文件(pdec9999.tdf):
SUBDESIGNpdec9999
clk,ena,clrs:
INPUT;
a[15..0]:
OUTPUT;
count1[3..0]:
DFF;
count2[3..0]:
count3[3..0]:
count4[3..0]:
count1[].clk=clk;
count1[].clrn=clrs;
count2[].clk=clk;
count2[].clrn=clrs;
count3[].clk=clk;
count3[].clrn=clrs;
count4[].clk=clk;
count4[].clrn=clrs;
IFenaTHEN
ifcount1[]==B"
1001"
then
count1[]=B"
0000"
;
ELSE
count1[].d=count1[].q+1;
ENDIF;
ELSE
count1[].d=count1[].q;
IFenaTHEN
then
ifcount2[]==B"
count2[]=B"
count2[].d=count2[].q+1;
ENDif;
count2[].d=count2[].q;
endif;
ELSE
ENDIF;
IFenaTHEN
&
count1[]==B"
then
ifcount3[]==B"
count3[]=B"
count3[].d=count3[].q+1;
count3[].d=count3[].q;
ENDIF;
&
count3[]==B"
ifcount4[]==B"
count4[]=B"
count4[].d=count4[].q+1;
count4[].d=count4[].q;
a[3..0]=count1[];
a[7..4]=count2[];
a[11..8]=count3[];
a[15..12]=count4[];
七段译码器设计文件(7segd.tdf):
SUBDESIGN7segd
i[3..0]:
s[6..0]:
TABLE
i[3..0]=>
s[6..0];
H"
0"
=>
B"
"
1"
2"
3"
4"
5"
6"
7"
8"
9"
A"
B"
C"
D"
E"
F"
ENDTABLE;
四位十进制计数并七段译码设计,该设计中调用了设计文件7segd.tdf和pdec9999.tdf
FUNCTION7segd(i[3..0])
RETURNS(s[6..0]);
FUNCTIONpdec9999(clk,ena,clrs)
RETURNS(a[15..0]);
SUBDESIGN4dec7sp
clk,ena,clrs:
sd1[6..0],sd2[6..0],sd3[6..0],sd4[6..0]:
cntn:
pdec9999;
decd1,decd2,decd3,decd4:
7segd;
cntn.clrs=clrs;
cntn.clk=clk;
cntn.ena=ena;
decd1.i[]=cntn.a[3..0];
decd2.i[]=cntn.a[7..4];
decd3.i[]=cntn.a[11..8];
decd4.i[]=cntn.a[15..12];
sd1[]=decd1.s[];
sd2[]=decd2.s[];
sd3[]=decd3.s[];
sd4[]=decd4.s[];
该设计的仿真结果见图3.7.2:
图3.7.2
该电路可以形成在图形编辑器中使用符号图3.7.3。
图3.7.3
例三:
四位十进制扫描式七段译码显示设计
本设计调用了如下文件:
7segment.tdf
pdec9999.tdf
decoder.tdf
mux24.tdf
老功能模块:
4count
其中7segment.tdf(3.6节例3)、decoder.tdf(3.6节例7)和pdec9999.tdf(本节例2)中已经使用过了,下面列出和mux24.tdf文件。
多路选择器(mux24.tdf)文件如下:
SUBDESIGNmux24
sel[1..0],inp[3..0]:
sc:
ifsel[]==B"
00"
sc=inp[0];
ELSIFsel[]==B"
01"
sc=inp[1];
ELSIFsel[]==B"
10"
sc=inp[2];
11"
sc=inp[3];
四位十进制扫描式七段译码显示设计文件:
FUNCTION7segment(i3,i2,i1,i0)
FUNCTIONdecoder(code[1..0])
RETURNS(out[3..0]);
FUNCTIONmux24(sel[1..0],inp[3..0])
RETURNS(sc);
FUNCTION4count(clk,clrn,setn,ldn,cin,dnup,d,c,b,a)
SUBDESIGN47sm
clk,ena,clrs,clk1:
g,f,e,d,c,b,a,yinji[3..0]:
count4:
seven:
7segment;
mux1,mux2,mux3,mux4:
mux24;
count1:
4count;
yima:
decoder;
count4.clrs=clrs;
count4.clk=clk;
count4.ena=ena;
count1.clk=clk1;
count1.clrn=!
ena;
yima.code[1]=count1.qb;
yima.code[0]=count1.qa;
mux1.sel[1]=count1.qb;
mux1.sel[0]=count1.qa;
mux2.sel[1]=count1.qb;
mux2.sel[0]=count1.qa;
mux3.sel[1]=count1.qb;
mux3.sel[0]=count1.qa;
mux4.sel[1]=count1.qb;
mux4.sel[0]=count1.qa;
mux1.inp[0]=count4.a[0];
mux1.inp[1]=count4.a[4];
mux1.inp[2]=count4.a[8];
mux1.inp[3]=count4.a[12];
mux2.inp[0]=count4.a[1];
mux2.inp[1]=count4.a[5];
mux2.inp[2]=count4.a[9];
mux2.inp[3]=count4.a[13];
mux3.inp[0]=count4.a[2];
mux3.inp[1]=count4.a[6];
mux3.inp[2]=count4.a[10];
mux3.inp[3]=count4.a[14];
mux4.inp[0]=count4.a[3];
mux4.inp[1]=count4.a[7];
mux4.inp[2]=count4.a[11];
mux4.inp[3]=count4.a[15];
seven.i[0]=mux1.sc;
seven.i[1]=mux2.sc;
seven.i[2]=mux3.sc;
seven.i[3]=mux4.sc;
g=seven.g;
f=seven.f;
e=seven.e;
d=seven.d;
c=seven.c;
b=seven.b;
a=seven.a;
yinji[3..0]=yima.out[3..0];
该四位十进制扫描式七段译码显示的仿真结果见图3.7.4。
图3.7.4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 MAXPLUS软件的使用第7节 MAXPLUS 软件 使用
![提示](https://static.bdocx.com/images/bang_tan.gif)