1. 程序段定义:
SUBDESIGN decode1
(
a[3..0] : input; %定义输入变量%
chip_enable : output; %定义输出变量%
)
begin %初始化开始%
chip_enable = (a[3..0] == H"7"); %将变量初始化为十六进制的‘7’%
chip_enable = (a[3..0] == B"1x0x"); %无关的量可以用 x 代替%
end;
Chip_enable = a0 & a1 & a2 & !a3 %赋值语句%
2. 逻辑或: #
3. 用常数函数: CONSTANT IO_ADDRESS = H"A";
...
chip_enable = (a[3..0] == IO_ADDRESS);
if (a[3..0] == IO_ADDRESS) then
...
4. 定义中间变量
variable %开始中间变量的定义
temp : node; %将 temp 变量定义为节点变量%
begin %开始初始化%
temp = a0 & !a1;
out2 = temp # b;
out3 = temp & d;
end;
5. 总线的使用
out0 = a0 & b0;
out1 = a1 & b1;
out2 = a2 & b2;
out3 = a3 & b3;
以上等价于:
out[] = a[] & b[];
总线操作:
a[9..0], b[9..0]
a[] = b[];
a[7..4] = b[9..6]; %对应赋值%
a[9..8] = VCC;
a[9..8] = 1; %a[9..8]=B’01’%
a[9..8] = 2; %a[9..8]=B’10’%
a[9..8] = 3; %a[9..8]=B’11’%
a[3..0] = GND
a[3..0] = 0;
temp = b0& b1;
a[2..1] = temp
高级总线:
总线 Bus
b[3..0] : b3, b2, b1, b0 (有四个成员) MSB 是 b3, LSB 是 b0
temp