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