后仿验证的ABC

2022-12-02
阅读 3 分钟
1.9k
后仿检查数模接口异步路径时序紧张的同步路径时钟和复位不定态扩散问题重要用例和场景启动复位时钟切换后仿网表post-synth netlistpost-dft netlistpost-pnr netlistpost-pnr netlist with PG通常后仿用例跨时钟域异步关系上下电和启动流程数模接口时序关系时钟复位相关:时钟无毛刺切换、复位去毛刺滤波、复位解复位顺...

RTL monitor的文件输出效率优化和研究

2020-07-30
阅读 16 分钟
2.2k
最近在写RTL monitor, 发现如果频繁用$fdisplay写数据出来,性能会成为瓶颈。所以就研究用DPI-C把数据送出来,然后在C侧看看有什么优化手段。有几种优化方法, 一种是写raw data到C侧,C侧直接把raw data格式化输出。 另一种是把raw data存成文件后就返回到RTL侧。然后线下用一个进程把raw data进行格式化输出。线下的进...

SystemVerilog中关于DPI章节的翻译

2020-06-14
阅读 13 分钟
6.4k
随着时代的发展,现在的芯片规模越来越大,哪怕模块级的验证环境也需要相当长的build时间,各种仿真工具也在改进编译和运行性能,还发明了增量编译。但无论如何turnaround的时间还是比较长,而且方法越复杂越容易出错。而DPI-C则比较简单,能够解决某些场景下的问题。

Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

2018-09-14
阅读 3 分钟
17.3k
Vim之代码异步检测插件 ALE 前言 知名的 vim 代码检测插件主要是两个 syntastic neomake ALE ALE 虽是后起之秀,但目前是功能最强大的一个 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。 并发运...

systemverilog中Configuration的用法详解

2018-09-14
阅读 3 分钟
10.9k
SystemVerilog中Configuration的用法 1. Config configuration是一套用来描述设计中实例来源的一套显式规则, 它的规则如下: 2. 语法 {代码...} 3. example lib.map : {代码...} 上面就是一个最简单的例子,通过configuration来选择对于某个instance使用哪个module的实现 4. 讲解 一个configuration的基本元素包含: co...

在Vim中集成emacs下的verilog-mode功能

2018-07-15
阅读 3 分钟
14.7k
从网上找到的教程清一色是让在$HOME目录下新建一个elisp目录然后放verilog-mode.el进去,再写个.emacs要新建.emacs还需要用cmd窗口echo hi > .emacs但我照做了没有用在emacs下, 依次输入C-h v load-path回车, 就可以看到下面界面里面并不包含$HOME目录,所以它没有起作用

SystemVerilog中fork-join三种形式的应用

2017-11-15
阅读 7 分钟
34k
Overview fork...join结构提供了创建并行进程的能力。在Systemverilog里主要有三种版本: fork...join (join all) fork...join_none fork...join_any fork-join同verilog里面的功能是一样。fork-join_none不会等创建的进程完成,直接执行后面的语句。fork-join_any会等待至少一个进程完成,然后再执行后继的语句。 Examp...

使用开源RTL仿真器iverilog

2017-09-07
阅读 1 分钟
8.1k
linux下的硬件仿真工具VCS, NC, Questasim都是商业软件,如果想自己在自己机器上跑点小例子,那么通常人就需要去破解这些商业软件。这些年版权的意识越来越强,破解真不是一个好方法。不如使用一些开源的仿真器,来跑自己的小例子。本文要讲的iverilog是目前开源仿真器的不二选择。

Verilog PLI介绍及运行NC的三种方法

2017-08-10
阅读 4 分钟
10k
Verilog PLI(Programming Language Interface )是一种Verilog代码调用C/C++函数的机制。它能让Verilog像调用一些系统调用(如$display/$stop/$random)一样调用用户编写的C/C++函数,这样我们可以用C/C++语言开始自己的system task/function, 来实现用verilog不太方便的功能,并与外界建立了联系。PLI可以完成如下功能: