集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之VHDL基础D01(20160720课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2018-11-23 10:14:34 | 显示全部楼层
1004
        蓝色的部分是保留字,一个都不能错,错了就不能显示出蓝色了。
        它肯定会报错。
        这样的话呢,我们就得到了结构体的描述。
        17行的空白行,是结构体的库声明部分。
        在VHDL里面有变量的作用域,声明在什么地方,它的作用域就在什么地方。
        现在我们就得到了框架frame部分。
        相当于我们写了Verilog的一个框架,module和end module,端口列表,input和output声明出来之后,一行代码都不用写。
        然后Ctrl-S、Ctrl-K。
        执行一次分析综合。
        这个就是称之为一个frame,框架。
        VHDL的框架同样如此。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-23 10:16:13 | 显示全部楼层
1005
        代码一行都不写。下面这个代码很简单。
        Verilog里面用的是assign。
        这里不需要。
        数据流直接写驱动。
        F声明是什么呢?
        它绑定了一个标准类型signal。
        唯一的signal的赋值符<=。
        不称为非阻塞,就是唯一的赋值符。
        凡是放在端口部分的就是signal,就是信号。
        信号就一定用这个符号赋值。
        至于它会综合成什么,那就完全交给综合器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:46:43 | 显示全部楼层
1006
        与运算符是and。
        Ctrl-S、Ctrl-K。
        这个双输入与门,用VHDL的建模就完成了。
        三个部分形成。
        同样的模型,用Verilog要很少的代码,VHDL要很多的代码才能描述。
        代码量要多一些。
        现在我们同样地写验证。
        取它的名字,copy出来,新建VHDL。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:50:54 | 显示全部楼层
1007
        立刻另存为and_gate_vh_tb。
        这里不需要写时标timescale。
        因为VHDL有自己的时标单位。
        Testbench仍然是一个抽象的电路模型,它也必须由三个部分组成,它的写法仍然是这样。
        带下划线的部分是一个封装。
        同样写它的实体,这次呢是testbench。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:51:59 | 显示全部楼层
1008
        我们在写Verilog的testbench的时候,它是没有端口列表的。
        所以说它的外在的端口列表是可以省略的。
        所以说在VHDL里面是这样写的。
        End entity或者直接写end and_gate_vh_tb。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:53:20 | 显示全部楼层
1009
        这种写法就是,库声明、实体、结构体,三位一体来声明一个显式建模。
        这个跟Verilog是一样的。
        Verilog也是一个显式声明的结构,用module和endmodule括起来。
        这个是三个部分组成而已。
        Architecture,我们这次用行为来写它,behaviour。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:54:33 | 显示全部楼层
1010
        这是testbench的行为。
        这个就是testbench的框架。
        在Verilog的时候,我们直接把待测试的抽象的模型例化过来。
        这个时候我们仍然要例化,但是我们要预先声明,你不能直接做例化。
        它是一个强数据类型的语句,或者说它是一个严谨的语句。
        任何引用都必须先声明。
        怎么声明呢?
        组件,component and_gate_vh。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:55:59 | 显示全部楼层
1011
        End component。
        一定是分号打在最末尾。
        我们把端口的部分粘过来。
        这个是做组件的声明。
        只有做组件的声明,我们才可以引用这个组件。
        然后我们再声明testbench内部的信号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-26 11:56:52 | 显示全部楼层
1012
        就相当于我们在Verilog里面声明的reg信号。
        VHDL里面就简化了,这是它的可爱之处。
        它不需要你判断哪些信号是reg,哪些信号是wire。
        在Verilog里面是行为驱动的信号是声明成reg。
        非行为的声明成线。
        声明之前,设计者你要判断一下。
        VHDL没有这个限制。
        要么声明成signal信号,要么声明成变量。
        现在我们肯定声明成信号了。
 楼主| lcytms 发表于 2018-11-26 11:57:52 | 显示全部楼层
1013
        VHDL的可恨之处,就是它一定要绑定一个数据类型。
        Std_logic,标准逻辑类型。
        稍后我们在数据类型的时候再精确讨论。
        你不用顾及哪个是寄存器,哪个是线,哪个是输入,哪个是输出。
        它们都是std_logic。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 10:40 , Processed in 0.152690 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表