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