集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2016-12-11 22:36:15 | 显示全部楼层
本帖最后由 lcytms 于 2016-12-11 22:37 编辑

1040
        然后再找下一个边界。
        仍然是从65535回到0,这就证明了,两次边界检查,称之为黑盒白盒里面的一次边界覆盖,边界检查。
        这种方式简单,这就证明了,我们这个全加器是运行正常的。
        在全加器运行正常的基础上,如果我们还有些其它的问题出现,在顶层现在的仿真模型支持对底层结构的实现。
        仍然是这棵树,看见在dut,我们的实例名下面,testbench,rca_16这棵树,层次化这棵树仍然正确的体现出来。
        m0,b0,h0,h1。
        所以说hierarchy这棵树能到哪,EDA就能识别到哪。
        EDA就是依靠这棵树,这是在仿真器上,这是在综合器上,全部都是依靠这棵树。
        正是由于EDA理解了这棵树,你的设计意图才能被它理解执行,变成对应的电路结构。
        或者说仿真,或者说综合,或者说第三方工具的支持。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:40:03 | 显示全部楼层
本帖最后由 lcytms 于 2016-12-11 22:45 编辑

1041
        如果我们需要它的底层的信号,比方说,现在我们所关注的信号是顶层的,也就说是rca_16的这些信号。
        如果我想看其中的某个部件的信号,可不可能呢?
        仿真工具现在非常方便。
        如果我想看m0的信号,m0的b0的信号,m0的b0的h0的信号,我只需要选中它,加进来,这是m0的b0的h0的信号。
        给它做个group,m0:b0:h0。
        Restart,重新run。
        任何一个底层的信号,都可以非常清楚地装配进来,非常容易。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:48:38 | 显示全部楼层
1042
        如果想看m3,我想看m3的b1,做个group,m3:b1,同样restart,重新run。
        任何底层的信号都可以观测出来,如果在用户的这个过程之中,迅速地来做这种验证呢,你也可以一开始就加载顶层。
        如果呢,出现任何问题,最好是底层的信号,一级级地调出来。
        可是底层的这种验证,用在团队作战的时候呢,这是不可或缺的。
        因为当你把你的工作成果交付给你的上层做装配之前,你不可能不做任何的检查。
        这个呢,就是一种施工方法。
        现在我们把这种施工方法做一个总结。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:50:40 | 显示全部楼层
1043
        这是rca_16的步骤。
        rca_16下面是rca_4,rca_4下面是全加器,全加器下面是半加器,等等。
        这个时候呢,我们刚刚是这个过程,流程是这样的。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:52:12 | 显示全部楼层
1044
        因为我们会得到rca_16的框架。
        第一步,rca_16的框架嘛。
        框架的步骤,就是只有显式声明的变量名称、显式声明的电路端口、端口的方向、端口的宽度,代码一行都没有,这是它的框架。
        做完rca_16的框架之后,我们接着做什么施工呢?
        第二步,我们会做rca_4的框架,第二步是做rca_4的框架。
        当rca_4的框架完成之后,并不是直接做全加器的框架,和半加器的框架全部实现。
        而是rca_4的框架实现以后,就用rca_4的框架来做它的装配,直接做rca_16的装配。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:55:53 | 显示全部楼层
1045
        三步,第一步,rca_16的框架,第二步,rca_4的框架,第三步,完成rca_16的组装。
        组装打两撇,表明这个过程是做组装,做装配。
        当完成了rca_16的装配以后,也就说,这个时候,剩下的代码都没有完成,顶层,打了两撇之后,这个框架,这个rca_16的电路模型,就已经全部施工完成。
        它不是施工了一半,做到哪里,就走到哪里,而是全部完成。
        顶层就全部完成了。
        这个呢,就是我们说的EDA的一种特殊性,它是自上而下。
        市场还没有开展之前,开展之初,总装就已经做完了,有点有悖常理,但是呢,施工方法就是如此。
1046
        然后我们第四步做什么?
        第四步要准备装配它。
        rca_16需要是全加器的框架,所以说,我们第四步是准备全加器的框架。
        当全加器的框架完成了之后,我们并没有接着做半加器的框架,而是第五步,装配rca_4,这样rca_4就装配完成了。
        它不是我们的盖楼房,这有点违背常理,楼房嘛,我们是从第一层盖到第二层,盖到第三层。
        而这个呢,EDA呢,是先把顶楼盖了,再盖第二层,然后再盖第三层,一层一层地实现的。
        然后呢,盖完rca_4之后,然后呢,我们再来准备装它,装它是用半加器的框架,这是第六步,这是半加器的框架。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:57:19 | 显示全部楼层
1047
        得到了第六步,半加器的框架之后,我们会在第七步,装配全加器。
        这个装配的过程是,先装3,也就说是先装rac_16,rac_16组装完了之后是组装rac_4,rac_4组装完了之后是组装全加器。
        最后第八步,才完成它,最后才做底层的装配。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 22:58:44 | 显示全部楼层
1048
        虽然底层的这个装配看起来是代码很简短,但是呢,这个过程就是这样。
        装配实现的过程,楼房是这样,上面这层楼房完成了,才完成第二层的楼房,第三层,第四层。
        这种施工的方法呢,在国外的文件上有一个非常有意思的名字,Climbing solutions,攀岩法。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 23:01:17 | 显示全部楼层
1049
        攀岩运动的时候呢,往上攀登一层,打一个岩钉,系一根绳子,再往上攀一层。
        但是这个呢,我们是从上往下面爬的,这个过程是打岩钉的过程,从上面往下面爬的。
        另外一种施工方案呢,就称为一揽子解决方案。
        我们在讨论攀岩法之前,会做得更多一些,国内有些施工。
        当然我们也看到攀岩法,团队的施工有它的优势,上层的团队的制定者呢,他不必制定细节,他只要制定接口。
        rac_16的团队,他只要制定rac_4的端口,rac_4以下的端口,上层团队的决策者不必做过多的考虑,只要把这个框架制定出来。
        所以这种方法比较快,便于管理。
1050
        另外一种解决方案,就称之为一揽子解决方案,package solution。
        一揽子解决方案呢,施工过程呢,跟我们的常理呢就比较吻合了。
        一揽子解决方案首先完成顶层,团队的制定者完成顶层,完成第二层,第三层,第四层,最后统一地来做装配。
        这个一揽子解决方案呢,就是我们以往施工的这种方法,就是常理的施工的这种方法,顶层的设计者,必须把所有的细节讨论清楚。
        所有的细节都由顶层团队来决定,顶层团队把每个细节、每一个步骤、每一个细微之处都要设计得准确,然后呢,才开始进这里实施。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2016-12-11 23:04:07 | 显示全部楼层
1051
        所以说呢,这种一揽子解决方案,施工的进度没有攀岩法来得快,也就是说用于一揽子解决方案的话,它的设计者必须要知道全部的细节,要进行完整的总体规划。
        攀岩法就用不到,而且攀岩法也便于组织。
        那么,我们向同学们推荐的,以后在工作之中,施工的方法,也是国外的教材里面说的比较多的,在EDA领域里面,尽可能地用攀岩法,攀岩法做得更多。
        下面呢,我们很多的课程,都是用攀岩法来做。
        这个就是层次化和源代码的组织方式,那么呢,我们来讨论另外一个问题。
        或者说,也是今天的主要的一个问题,就是建模方式。
1052
        抽象层次这棵树,在很多的教材上都叙述了,就是我们语言描述的时候,即可以用我们的RTL级的,称之为register transfer level的这样一个描述。
        RTL的这种思想呢,来源于算法语言,算法语言对一件任务的处理呢,总是从寄存器里面取出对应的数,在CPU里面运算了以后再存回去。
        可以看成是不同寄存器的传输,或者说不同变量的传输来实现的,实现这种任务。
        那么,我们现在的这种描述,HDL语言的这种描述呢,也可以把它归结为寄存器传输,通过不同的寄存器传输,来实现对执行任务的一种描述。
        但是呢,我们在在代码里面会把它转成一个逻辑门,与门、或门、与非门、或非门的描述,gate level的描述。

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

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

GMT+8, 2024-12-24 00:28 , Processed in 0.064128 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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