集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之D02:EDA建模、HDL描述语言(20160424课堂笔记)

[复制链接]
芙蓉王 发表于 2016-12-12 16:25:38 | 显示全部楼层
                         感谢楼主分享
 楼主| lcytms 发表于 2016-12-18 22:28:22 | 显示全部楼层
1129
        设置好仿真。
        在verilog里面,什么信号应该声明成reg,什么信号应该声明成线呢?
        是一个老生常谈的问题,但是现在我们讨论了。
        实质上,我们做了今天的学习,就应该非常清楚这件事情,而且永远不会错。
        就是你只要记住这样一个事实,是行为语句的输出就声明成reg,没有错,非行为语句,除了行为语句,其它的任何语句,就是线,这是很好记的。
        在行为语句的代码里面,有一个信号出现在赋值号的左侧,这个信号就一定要声明成reg,非行为语句就是线。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:30:05 | 显示全部楼层
1130
        查看仿真波形。
        现在我们看到,当s为低电平的时候,是短周期的a输出,当s为高电平的时候,是长周期的b输出。
        和我们之前数据里做的完全相同,不同的描述得到不同的结果,这个呢就是行为的描述。
        行为是一个非常重要的描述方式,带来效率的提升。
        在做行为的时候呢,我们也注意这两件事实,一是它的可综合性,要做到综合友好,得知道什么样的行为,得到什么样的代码。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:32:49 | 显示全部楼层
1131
        反之,你需要什么样的电路,用什么样的行为语句来描述。
        我们稍后会有一门课程,称之为CSS,coding style for synthesis,就是面向综合的编码风格。
        这门课程会精确地讨论,what statements,what circuit,反之,什么样的电路,用什么样的代码描述。
        一定要有这个知识,你才能够把综合写好,做到综合友好。
        下面呢,我们来写它的结构。
        也就说,行为语句的时候,是真正做到了只描述what to do,而没有描述how to do。
        可是结构化的时候,显然是既要描述what to do,也需要描述how to do。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:35:05 | 显示全部楼层
1132
        并且真正是站在电子电路设计的角度上,有点还原到返璞归真了,回到原始的设计上。
        但是呢,虽然它的效率降低,但是它却带来了核心技术,带来了创造力。
        一些竞争性的想法,具有核心技术的想法,具有专利的想法,是在结构化上实现的,现在我们就来做它的结构化。
        同样是这个双输入与门。
        结构化就意味着what to do、how to do都要结合,how to do就是如何用电路来实现,这个时候回到了事情的本质上,需要这个布尔表达式,F=A•~S + B•S。
        what to do只描述了这么一个事实,S为真值的时候B输出,S为假值的时候B输出。
        但是如果how to do呢,要回到本质问题上,要用逻辑门来实现。
        根据这个布尔表达式,有两个与门,一个或门,一个非门,两个逻辑要用类似的逻辑门来实现。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:36:45 | 显示全部楼层
1133
        两个与门我们绘制出来。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:40:24 | 显示全部楼层
1134
        现在才返璞归真,回到了电路设计的本质上。
        这张图的电子设计的思想,是用逻辑门来实现的。
        逻辑门来实现how to do,如何来做这件事情。
        What to do的语言描述,how to do的语言描述,结构化。
        那么我们把这段代码做出来,这段代码呢,我们用verilog的底层原语。
        底层原语它支持非门、与门、或门,甚至与非、或非,它都支持,门级原语。
        我们需要做的呢就是,输入信号有了,已经声明出来,然后呢我们还需要把它的实例声明出来。
1135
        实例呢,我们把反相器的实例名标为U1,然后呢,U2、U3、U4,然后呢,这个构成了结构的部件。
        这个部分就是我们的mux2。mux2的建模,出了这个方框的,就是端口,在方框内部的,就是中间信号。
        同样新建一个,另存为mux2_structure.v,我们用结构化来做。
        使用结构化的时候呢,也必须设置为顶层,然后一仿真的时候,综合的时候,EDA支持它,这个时候才能在Hierarchy这棵树上找到它。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:42:40 | 显示全部楼层
1136
        我们刚才已经说了,凡是行为输出的都是reg,非行为的都是线,所以说呢,这些信号肯定都是非行为的。
        中间信号有三个,分别是s_n、bs、as_n,然后呢,我们来做它的门级原语。
        门级原语,首先写它的非门。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:44:34 | 显示全部楼层
1137
        非门的门级原语就是not,是u1,第一个参数是输出,其它是输入的重载。
        然后呢,我们再准备与门and,是u2。
        还有u3。
        或门,u4。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-18 22:45:55 | 显示全部楼层
1138
        填写参数。这就构成了结构的顶层的代码。Ctrl+S、Ctrl+K。

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 15:10 , Processed in 0.066799 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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