lcytms 发表于 2018-11-26 11:59:04

1014
        也就是说我们声明出信号,绑定数据类型。
        然后我们把组件声明的部分,内部信号声明的部分,放在architecture和begin之间,那么这些声明的信号作用域,就是整个结构体的作用域。
        现在我们来写它的例化。
        例化的时候加上实例名dut,放在它的前面。
        Verilog的实例名放在名称的后面。然后我们做端口的映射。

lcytms 发表于 2018-11-26 12:00:15

1015
        它写成port map,一看即知。
        做端口的映射。
        拷贝过来,然后接线。连接符是=>。
        连接符左侧的是电路端口,连接符右侧的是线。
        当然端口跟线现在同名。

lcytms 发表于 2018-11-26 12:01:08

1016
        接着我们要写它的激励。
        我们用行为来激励。
        VHDL里面的循环行为体也只有一个,process。
        循环行为体的定义,跟Verilog一样。

lcytms 发表于 2018-11-26 12:02:35

1017
        这一点,Verilog有抄袭VHDL的嫌疑。
        我们不需要写时标,它有自己的时间单位。
        用wait for语句。
        wait for 0 ns,立即做一件什么事呢?

lcytms 发表于 2018-11-26 12:03:34

1018
        A赋值为0,b赋值为0。

lcytms 发表于 2018-11-26 12:06:07

1019
        验证是基于执行,还是基于综合?
        验证肯定是非综合目的嘛。
        它是在电脑上做的。

lcytms 发表于 2018-11-26 12:06:38

1020
        周而复始,形成循环。

lcytms 发表于 2018-11-26 12:26:40

1021
        然后我们来做它的nativelink的设置。
        分析综合。
        检查一下有没有打字错误。
        做nativelink的设置。
        跟我们Verilog完全相同。
        这个testbench我们没有写系统的停机任务。
        VHDL没有那么多的系统任务,它有第三方的库支持,它的语法上并没有。
        所以我们要在仿真工具上指定。

lcytms 发表于 2018-11-26 12:28:14

1022
        我们让它运行1us。
        虽然它在第三方的库里面包含这个功能,但是语法上并不支持。
        系统任务这一点上没有Verilog灵活。
        分析综合。
        运行仿真。
        结果并不出乎我们的意料。

lcytms 发表于 2018-11-26 12:29:36

1023
        这是前仿。
        现在我们看VHDL如何做后仿。
        后仿也要全编译。
        但是设置上有一点不同。
        EDA要你告诉它,它的顶层的实例名是什么。
        这一点不是很方便,没有Verilog方便。
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: 跟李凡老师学FPGA之VHDL基础D01(20160720课堂笔记)