MAXPLUS软件的使用(第3章 第5节)(5)

2019-04-22 18:28

IF /request_in == GND # /local_request == GND THEN /request_out = GND;

END IF;

IF /grant_in == GND THEN IF /local_request == GND THEN /local_grant = GND; ELSIF /request_in == GND THEN

/grant_out = GND;

END IF;

END IF;

END;

(4) 时序逻辑

例1:定义D触发器的输入输出信号。 SUBDESIGN bur_reg (

clk, load, d[7..0] : INPUT; q[7..0] : OUTPUT; )

VARIABLE

ff[7..0] : DFFE; BEGIN ff[].clk = clk; ff[].ena = load; ff[].d = d[]; q[] = ff[].q; END;

该例中分别定义7个D触发器的信号

例2:调用巨功能模块 INCLUDE \SUBDESIGN lpm_reg (

clk, load, d[7..0] : INPUT; q[7..0] : OUTPUT;

134

) BEGIN

q[] = lpm_dff (.clock=clk, .enable=load, .data[]=d[]) WITH (LPM_WIDTH=8) RETURNS (.q[]); END;

例3:在变量段声明寄存器的输出。 SUBDESIGN reg_out (

clk, load, d[7..0] : INPUT; q[7..0] : OUTPUT; )

VARIABLE

q[7..0] : DFFE; % outputs also declared as registers % BEGIN q[].clk = clk; q[].ena = load; q[] = d[]; END;

例4:16位计数器例 SUBDESIGN ahdlcnt (

clk, load, ena, clr, d[15..0] : INPUT; q[15..0] : OUTPUT; )

VARIABLE

count[15..0] : DFF; BEGIN

count[].clk = clk;

count[].clrn = !clr; %清零% IF load THEN

count[].d = d[]; %置数% ELSIF ena THEN

count[].d = count[].q + 1; %计数%

135

ELSE

count[].d = count[].q; %保持% END IF; q[] = count[]; END;

例5:具有D触发器功能的状态机 SUBDESIGN simple (

clk, reset, d : INPUT; q : OUTPUT; )

VARIABLE

ss: MACHINE WITH STATES (s0, s1); BEGIN ss.clk = clk; ss.reset = reset; CASE ss IS WHEN s0 => q = GND; IF d THEN ss = s1; END IF; WHEN s1 => q = VCC; IF !d THEN ss = s0; END IF; END CASE; END;

例6:步进马达控制器 SUBDESIGN stepper (

clk, reset : INPUT;

136

ccw, cw : INPUT; phase[3..0] : OUTPUT; )

VARIABLE

ss: MACHINE OF BITS (phase[3..0]) WITH STATES ( s0 = B\ s1 = B\ s2 = B\ s3 = B\BEGIN

ss.clk = clk; ss.reset = reset; TABLE

ss, ccw, cw => ss; %--------------------------------------------------% s0, 1, x => s3; s0, x, 1 => s1; s1, 1, x => s0; s1, x, 1 => s2; s2, 1, x => s1; s2, x, 1 => s3; s3, 1, x => s2; s3, x, 1 => s0; END TABLE; END;

例7:指定一个输出BIT的状态机 SUBDESIGN moore1 (

clk : INPUT; reset : INPUT; y : INPUT; z : OUTPUT; )

137

VARIABLE

% current current % % state output % ss: MACHINE OF BITS (z) WITH STATES (s0 = 0, s1 = 1, s2 = 1, s3 = 0); BEGIN

ss.clk = clk; ss.reset = reset; TABLE

% current current next % % state input state % ss, y => ss; %-------------------------------------% s0, 0 => s0; s0, 1 => s2; s1, 0 => s0; s1, 1 => s2; s2, 0 => s2; s2, 1 => s3; s3, 0 => s3; s3, 1 => s1; END TABLE; END;

例8:不声明输出状态的状态机 SUBDESIGN moore2 (

clk : INPUT; reset : INPUT; y : INPUT; z : OUTPUT; )

138


MAXPLUS软件的使用(第3章 第5节)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:秦腔《安安送米》剧本

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: