集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2018-12-18 09:14:52 | 显示全部楼层
1121
        做仿真设置。
        同样指定周期1us。
        语法检查。
  

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-19 09:22:08 | 显示全部楼层
1122
        大家看到相同的结果。
        这三个例子就是用多路器说明的数据流和结构化。
        非常关键的行为,我们还没有介绍到。
        行为的描述,VHDL和Verilog有一个非常重要的区别。
        先休息十分钟。

(课间休息)

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-19 09:23:46 | 显示全部楼层
1129
        好,接着上课。
        现在我们来讨论VHDL的行为语句。
        非常重要。
        现在我们看看行为怎么写。
        同样另存为mux2_vh_behaviour_case.vhd。
        可以用if或者case。
        设置为顶层。
  

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-19 09:25:22 | 显示全部楼层
1130
        名字换过来。
        这边是行为了。
        Ctrl-S、Ctrl-K。
        行为语句,case、if是用人类的语言来描述。
        行为语句使得EDA充满了活力,使得它的效率得到了极大的提升。
        可以说行为语句是EDA的一种革命性的转变。
        它只需要描述电路的what to do。
        而不需要描述how to do。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-20 09:20:50 | 显示全部楼层
1131
        具体的how to do完全交给综合器。
        所以说行为语句必须具有三个特征。
        在Verilog里面,第一,行为语句的输出要声明成reg。
        第二,行为语句必须置于特定的行为体,EDA才能识别。
        第三,行为语句必须有信号敏感表。
        信号敏感表里面列出的信号发生变更的时候,EDA才对它进行处理。
        从而减轻EDA的负担。
        现在我们回到正宗的米德体系下,信号敏感表是跟综合无关。
        米德体系下,信号敏感表就是信号敏感表,它跟综合无关。
        它只跟非综合目的有关。
 楼主| lcytms 发表于 2018-12-20 09:21:40 | 显示全部楼层
1132
        仿真验证的时候,减轻EDA的开销。
        设计者通知,哪些信号变更了,EDA才处理这段行为。
        Verilog的莫比加上了一个negedge、posedge的修饰,有且仅有一个沿未被引用,会生成寄存器,影响它的结构,影响它的综合性。
        我们回到VHDL。
        它的信号敏感表跟综合性无关。
        在VHDL里面只有两个要素,声明成行为的时候。
        第一,行为语句必须置于循环行为体。
        循环行为体只有一个,就是process。
        不能直接写case语句,不能直接写if语句。
        EDA无法识别,直接报错。
        这跟Verilog是相同的。
        但是这个循环行为体在VHDL里面只有一个。
 楼主| lcytms 发表于 2018-12-20 09:22:41 | 显示全部楼层
1133
        Verilog里面有两个行为体,一个是初始化行为体,一个是循环行为体。
        VHDL只有一个,非常简单,就是一个process循环行为体。
        所有的行为语句必须置于行为体之中。
        第二个要素,要有信号敏感表。
        而且是真正的信号敏感表,与综合无关。
        无论你写还是不写,无论你写哪个信号,跟综合没有关系。
        综合完全是一模一样。
        只是跟非综合目的,验证的时候,第三方分析的时候,EDA软件处理的时候,信号敏感表里面列出的信号变更的时候,EDA软件才会处理这段行为。
        举例来说,在Verilog的信号敏感表里面,列出了部分信号,没有列出全部信号,你在下板的时候,可能是正确的。
        可是你仿真的时候,可能看着不正确。
        因为有部分信号没有列出来。
        就是这个原因。
 楼主| lcytms 发表于 2018-12-20 09:23:37 | 显示全部楼层
1134
        所以说VHDL它是一个严谨的体系。
        现在我们来写这个case语句。
        先写上process的框架。
        Case语句必须置于其中。
        其次呢,就是要有信号敏感表。
        就是圆括弧,不需要加上@。
        信号敏感表里面列出的信号变更的时候,EDA的软件才会来运行,才会来处理这段行为。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-26 09:36:00 | 显示全部楼层
1135
        从而减轻它的开销。这段代码也称为一个隐式建模IM。
        IM可以命名的。
        对隐式建模的命名,它也是米德体系下面的内容。
        莫比的Verilog并没有对它的直接支持。
        我们是在begin后面加冒号。
        并不是加在整个行为体的前面,有后面补充的嫌疑。
        VHDL可以直接命名。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-12-26 09:38:01 | 显示全部楼层
1136
        取个名字mux2_behaviour。
        这个名字也是可有可无的。
        哪些信号变更的时候,我们希望在仿真的时候,EDA能处理它呢?
        当然是所有输入的信号。
        A,b,s。
        看一下语法。
  

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

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

GMT+8, 2024-12-25 14:04 , Processed in 0.060147 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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