使用Verdi理解RTL design

接触到一些RTL代码,在阅读与深入理解的过程中的一些思考记录

协议与设计框图


认真反复阅读理解相关协议与设计框图,一个design的设计文档中,设计框图展示了这个设计的核心框架,包括协议的整体框架作者的设计思路design的组成结构等。

  • 1.根据协议理解设计框图
  • 2.根据设计框图理解module
  • 3.根据设计框图初步追踪输入输出关键信号

理解Schematic及module间的关系


结合设计框图,使用Verdi的Schematic功能,整体理清各个module间的连接关系,各个module的数据交互关系。

擅用Trace功能


1.Driver
2.Load
3.Connectivity

4.Show Previous
5.Show Next

6.Show Previous in Hierarchy
7.Show Next in Hierarchy
8.Forward History
9.Backward History



细节请参考verdi的Verdi3.pdf手册

理解module划分


依据对RTL的分析与琢磨,信号的顺藤摸瓜与端口/module间的数据流动,深入体会这个module划分的深意。

代码风格与RTL基础模块


1.基本的Verilog语句块(assign/if-else/always/case)
2.组合逻辑
3.时序逻辑
4.FSM有限状态机阅读

边猜边仿真


1.可以依据端口输入输出及协议猜测RTL的大致意图。
2.根据设计文档的寄存器描述,使用Verdi追踪(trace)RTL。
2.结合仿真结果,追踪理解信号。

参考资料

[1]. verdi3.pdf(Verdi安装目录doc下)

使用Verdi理解RTL design的更多相关文章

  1. how to forget about delta cycles for RTL design

    A delta cycle is a VHDL construct used to makeVHDL, a concurrent language, executable on asequential ...

  2. Verdi如何编译design并打开

    HDL Source文件的编译 针对Verilog文件的编译: 使用vericom工具,将verilog source文件写入一个run.f中,如: system.v pram.v TopModule ...

  3. RTL 与 technology schematic的区别,包含概念与实例

    2013-06-25 16:40:45 下面是xilinx官网上的问答贴: http://china.xilinx.com/support/answers/41500.htm#solution The ...

  4. Android Design Support Library使用详解

    Android Design Support Library使用详解 Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的And ...

  5. scan design flow(二)

    在scan stitch之后,scan synthesis就已经完成, Scan extraction主要用来从scan design中extracing所有的instance,来保证scan cha ...

  6. scan design flow(一)

    一个典型的scan实现的flow: clock mux和一些rst,在Scan中都被bypass掉,是不能测到的.所以DFT的test coverage一般就在97%或98%. scan design ...

  7. 怎么知道RTL Schematic中的instance与哪段代码对应呢

    2013-06-23 20:15:47 ISE综合后可以看到RTL Schematic,但我们知道在RTL编码时,要经常问自己一个问题“我写的这段代码会综合成什么样的电路呢”.对于一个简单的设计,比如 ...

  8. ant design pro 当中改变ant design 组件的样式和 数据管理

    ant design pro 简介 官网简介 链接 https://pro.ant.design/docs/getting-started-cn 项目结构 https://github.com/ant ...

  9. [转]关于几本模拟IC设计书

    1.P.R.Gray的书 这本书被业界誉为模拟IC的Bible,盛名之下,必无虚士.现在已经出到第四版,作者无一例外是业界大牛,该书论述严谨,思路清晰,对电路分析透彻,定义严格明确,无愧Bible之名 ...

随机推荐

  1. 在Google Drive上建立免费静态站点

    现今建立一个属于自己的站点已经是一件非常普遍和简单的事情了. 你能够选择买空间,买域名.你也能够使用免费空间.免费域名.你能够选择动态的php wordpress,joomla或者是静态的站点(如使用 ...

  2. Python - 字典(dict)删除元素

    字典(dict)删除元素, 能够选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, ke ...

  3. 关于我遇到的“LNK 2019无法解析的外部符号”的链接错误

    昨天在调试程序的时候出现了"LNK 2019无法解析的外部符号"的问题(VS2008),依照网上说的方法都没有解决这个问题,最后在项目文件里发现有两个同名的可是不在同一个目录下的c ...

  4. BZOJ2243: [SDOI2011]染色(树链剖分/LCT)

    Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如 ...

  5. 六、Docker+Gitlab

    原文:六.Docker+Gitlab (1)下载镜像: docker pull gitlab/gitlab-ce (2)运行镜像: GITLAB_HOME=`pwd`/data/gitlab dock ...

  6. listctrl调整表头高度

    CListCtrl派生类下CMyListCtrl.h class CMyListCtrl :public CListCtrl { public: // 设置表头高度 void SetHeadHeigh ...

  7. [Javascirpt AST] Babel Plugin -- create new CallExpression

    The code we want to trasform: 2 ** 3; a ** b; a **b * c; a ** b ** c; (a+1) ** (b+1); transform to: ...

  8. Log4j中为什么设计isDebugEnabled()方法

    转自:https://www.jianshu.com/p/e1eb7ebfb21e 先看下面的代码,在真正执行logger.debug()之前,进行了logger.isDebugEnabled()的判 ...

  9. Android Multiple dex files define BuildConfig

    dexOptions { preDexLibraries = false }

  10. Python 极简教程(十二)逻辑控制语句 if else

    计算机软件之所以能够对不同的情况进行不同的处理,就是我们在编码的时候,通过逻辑控制语句,告诉软件在不同的情况下应该做什么处理. 比如我们在登录的时候,那么当你输入正确的账号密码和错误的账号密码,完全是 ...