1157
写else if是嵌套结构,写elsif是分支。
含义是不一样的。
这边是01,f输出b。
10输出c。
11输出d。
1158
Else的时候,我们输出4个0,在Verilog里面是4’b0。
现在写”00000000”。
更多的时候是用others来写。
写成X”00”。
或者是others=>’0’,写成单比特。
1159
Ctrl-S、Ctrl-K。
然后写它的验证。
新建VHDL文件另存为mux4_vh_tb.vhd。
库声明。
Tb我们只用到了一个库,1164。
写实体。
1200
结构体。
组件声明。
复制端口。
1201
我们声明tb内部的信号a、b、c、d。
绑定标准逻辑向量。
S。
f。
信号名和端口名一样。
我们写它的验证。
Dut,实例名。
写端口的map。
1202
例化做好。
然后我们写它的激励。
这次在写process的时候,为什么不写信号敏感表?
VHDL里面使用信号敏感表来通知EDA什么时候来执行这段代码。
1203
如果没有写信号敏感表,EDA的非综合目的的时候,可以时时刻刻来注意它,会占用开销。
但是如果你写了wait语句,它就不忙了,它就有时间奇点了。
使用wait for语句的时候,就不应该加载信号敏感表。
加载信号敏感表,它就直接报错了。
A输出16进制的aa。
VHDL是大小写不敏感,但是有些保留字是大小写敏感,保留字X这个时候要大写。
1204
C赋值16进制的cc。
d赋值16进制的dd。
s赋值2进制的00。
1205
我们可不可以把s直接写成0/1/2/3,写成10进制呢?
我们明天来讨论数据类型,你直接写,它就报错了。
它是强数据类型。
如何来转换,我们明天讨论。
01,10,11。然后后面还要做循环。
写完了它的激励。
做仿真设置。
指定2us,稍微长一点。
跨平台检查。
1206
运行仿真。
下午我会再做一个时序逻辑。
计数器,它该如何用行为描述?
之后我们同学就可以尝试做一些练习。
比方说,把我们数码管的驱动,把它转译成VHDL,并且下板。
同样格式改为16进制。
S,格式改为unsigned。
输出f,格式改为16进制。
0,a输出。
1,b输出。
2,c输出。
3,d输出。
和我们所做的模型是一致的。
上午先到这。
可以下课了。
(午休)
