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

2019-04-22 18:28

highest_level[1..0] : OUTPUT; ) BEGIN

IF high THEN highest_level[] = 3; ELSIF middle THEN highest_level[] = 2; ELSIF low THEN highest_level[] = 1; ELSE

highest_level[] = 0; END IF; END;

在本例中,high信号具有最高优先权,若三个信号high,middle和low都被VCC驱动,则只有high信号起作用,输出highest_level[] = 3。 例5:有CASE的语句的例。 SUBDESIGN decoder ( ) BEGIN

CASE code[] IS

WHEN 0 => out[] = B\WHEN 1 => out[] = B\WHEN 2 => out[] = B\WHEN 3 => out[] = B\code[1..0]

: INPUT;

out[3..0] : OUTPUT;

END CASE;

END;

例6:7段显示译码器例 7段显示器的笔划顺序 % -a- % % f| |b % % -g- % % e| |c %

129

% -d- % 该显示器可以显示如下数字和字母: % 0 1 2 3 4 5 6 7 8 9 A b C d E F % 7段译码器程序: SUBDESIGN 7segment (

i[3..0] : INPUT; a, b, c, d, e, f, g : OUTPUT; ) BEGIN TABLE

i[3..0] => a, b, c, d, e, f, g;

H\ => 1, 1, 1, 1, 1, 1, 0; H\ => 0, 1, 1, 0, 0, 0, 0; H\ => 1, 1, 0, 1, 1, 0, 1; H\ => 1, 1, 1, 1, 0, 0, 1; H\ => 0, 1, 1, 0, 0, 1, 1; H\ => 1, 0, 1, 1, 0, 1, 1; H\ => 1, 0, 1, 1, 1, 1, 1; H\ => 1, 1, 1, 0, 0, 0, 0; H\ => 1, 1, 1, 1, 1, 1, 1; H\ => 1, 1, 1, 1, 0, 1, 1; H\ => 1, 1, 1, 0, 1, 1, 1; H\ => 0, 0, 1, 1, 1, 1, 1; H\ => 1, 0, 0, 1, 1, 1, 0; H\ => 0, 1, 1, 1, 1, 0, 1; H\ => 1, 0, 0, 1, 1, 1, 1; H\ => 1, 0, 0, 0, 1, 1, 1; END TABLE; END;

例7:地址译码器例。 SUBDESIGN decode3 (

addr[15..0], m/io : INPUT;

130

rom, ram, print, sp[2..1] : OUTPUT; ) BEGIN TABLE

m/io, addr[15..0] => rom, ram, print, sp[]; 1, B\ => 1, 0, 0, B\ 1, B\ => 0, 1, 0, B\ 0, B\ => 0, 0, 1, B\ 0, B\ => 0, 0, 0, B\ 0, B\ => 0, 0, 0, B\

END TABLE; END;

例8:使用lpm译码功能译码

该译码器功能:

Enable data[LPM_WIDTH1..0] eq[LPM_DECODES-1..0] 0 X 0000...00 1 LPM_DECODES 1 1000...00 1 L _DECODES PM 2 0100...00 … … … 1 1 0000...10 1 0 0000...01

该函数的AHDL说明:

FUNCTION lpm_decode (data[LPM_WIDTH-1..0], enable, clock, aclr) WITH (LPM_WIDTH, LPM_DECODES, LPM_PIPELINE) RETURNS (eq[LPM_DECODES-1..0]); 在此例中不需要enable,clock和acir端口。 该译码器源文件:

INCLUDE \SUBDESIGN decode4 (

address[15..0] : INPUT; chip_enable : OUTPUT; ) BEGIN

chip_enable = lpm_decode(data[]=address[])

131

WITH (LPM_WIDTH=16, LPM_DECODES=2^10)

RETURNS (.eq[H\返回地址为H\位置的码% END;

(4) 变量缺省值的使用 例1:

SUBDESIGN default1 (

i[3..0] : INPUT; ascii_code[7..0] : OUTPUT; ) BEGIN DEFAULTS

ascii_code[] = B\问号的ASCII码 % END DEFAULTS; TABLE

i[3..0] => ascii_code[];

B\ B\ B\ B\ END TABLE; END;

在该例中若没有译码输出时,输出问号。 例2:

SUBDESIGN default2 (

a, b, c : INPUT; select_a, select_b, select_c : INPUT; wire_or, wire_and : OUTPUT; ) BEGIN DEFAULTS wire_or = GND; wire_and = VCC;

132

END DEFAULTS;

IF select_a THEN wire_or = a; wire_and = a; END IF;

IF select_b THEN wire_or = b; wire_and = b; END IF;

IF select_c THEN wire_or = c; wire_and = c; END IF; END;

(5) 低电平激活信号 例1:

SUBDESIGN daisy ( /local_request : INPUT; /local_grant : OUTPUT; /request_in

: INPUT;

/request_out : OUTPUT;

/grant_in : INPUT; /grant_out

: OUTPUT; ) BEGIN DEFAULTS /local_grant = VCC; /request_out = VCC;

/grant_out

= VCC;

END DEFAULTS;

133


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

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

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

马上注册会员

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