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输出。
        和我们所做的模型是一致的。
        上午先到这。
        可以下课了。

(午休)
页: 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27
查看完整版本: 跟李凡老师学FPGA之VHDL基础D01(20160720课堂笔记)