1 / 52
文档名称:

MAXPLUS软件的使用().doc

格式:doc   大小:158KB   页数:52页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MAXPLUS软件的使用().doc

上传人:镜花流水 2019/4/6 文件大小:158 KB

下载得到文件列表

MAXPLUS软件的使用().doc

文档介绍

文档介绍:、易学的硬件描述语言,在max+plus2软件中使用它比VHDL语言更有效。蒂莀AHDL简介肈一个AHDL逻辑设计至少必须包含一个分设计段(SubdesignSection)和一个逻辑设计段(LogicSection),膈其它段和语句是可选择的,AHDL的设计文件是用Max+PlusⅡ软件的文本编辑器编写的源程序(*.tdf)袄下面介绍AHDL的一些语句。肃螈常数叙述语句羅该语句可以用一个字符串代表数字、算数表达式羃例:蒃CONSTANTUPPER_LIMIT=130;葿CONSTANTBAR=1+2DIV3+LOG2(256);肇CONSTANTFOO=1;莅CONSTANTFOO_PLUS_ONE=FOO+1;袂艿(2)定义函数语句肈该语句可以定义一个在分设计中使用函数,蒄例:莁DEFINEMAX(a,b)=(a>b)?a:b;罿SUBDESIGN袅(袆dataa[MAX(WIDTH,0)..0]:INPUT;螁datab[MAX(WIDTH,0)..0]:OUTPUT;螀)羇BEGIN羄datab[]=dataa[];膀END;蒀此例中MAX函数保证最小的数据位宽度。羈肃(3)参数叙述语句袃该语句可以声明参数化巨功能模块和宏功能模块的一个或几个参数芀例:螆PARAMETERS蒅(芃FILENAME="",--optionaldefaultvaluefollows"="sign羁WIDTH,袇AD_WIDTH=8,薃NUMWORDS=2^AD_WIDTH螂);蒇袈(4)函数描述语句羆共有4种形式的逻辑函数可以供用户调用,它们是:膂Megafunction—具有复杂逻辑功能的巨功能模块,放在mega_LPM库中,可以供用户调用膈Primitive—一些基本逻辑功能函数,可以直接调用蚆Macrofunction—具有高水平的逻辑宏功能模块,共有300多种,放在max2lib子目录中肄StateMachine—一种具有多个状态的时序电路,可以形成符号图形,用户可以调用薁以上几种逻辑功能函数都可以以逻辑函数名和符号图形的方式被调用,在AHDL源文件中调用时要首先进行声明,见如下例子。羈1)参数化函数:螇FUNCTIONlpm_add_sub(cin,dataa[LPM_WIDTH-1..0],datab[LPM_WIDTH-1..0],add_sub)膃WITH(LPM_WIDTH,LPM_REPRESENTATION,LPM_DIRECTION,ADDERTYPE,羀ONE_INPUT_IS_CONSTANT)蚈RETURNS(result[LPM_WIDTH-1..0],cout,overflow);衿该函数名为lpm_add_sub,输入端口为cin,dataa[LPM_WIDTH-1..0],anddatab[LPM_WIDTH-1..0];薅关键字WITH后是参数表,蒀关键字RETURN后是输出口result[LPM_WIDTH-1..0],cout,andoverflow葿2)非参数化函数:pare(a[3..0],b[3..0])蚃 RETURNS(less,equal,greater);pare,输入端口为a3,a2,a1,a0,b3,b2,b1,,equal,greater蚇3)状态机函数:肆当输入和输出是状态机时,应该按照如下例子定义函数,在返回结果语句中加MACHINE关键字薂FUNCTIONss_def(clock,reset,count)罿RETURNS(MACHINEss_out);蒅膄(5)最小位数选择语句羂定义一组数据中的最小数位是否是MSB(mostsignificantbit)或LSB(leastsignificantbit)蚀例:薆OPTIONSBIT0=MSB;节莁(6)断言语句莀该语句可以检验表达式、参数、数据、计算函数有效性和端口的使用情况。薇例:蚅ASSERT(WIDTH>0)袁 REPORT "Width(%)mustbeapositiveinteger"WIDTH膁 SEVERITY ERROR莅 HELP_ID INTVALUE; --forinternalAlterauseonly螃在该例中,WIDTH>0是断言条件,若此条件不满足,将显示REPORT后的内容和SEVERITY后的错误等级。芀袁(7)分设计段蒆分设计段声明输入、输出和双向口肆例:羃SUBDESIGNtop莇(蒈 foo,bar,clk1,clk2 :INPUT=VCC;芄 a0,a1,a2,a3,a4 :OUTPUT;莃 b[7..0] :BIDIR;肈)芅端口类型可