
Verilog/SystemVerilog
文章平均质量分 53
Verilog 语法技巧
poena
中科院理学博士,从事大规模数字电路架构设计10多年。IC/FPGA领域全栈工程师。芯片互联/通讯,存储,定制计算等领域的多面手。
展开
-
verilog/systemverilog的随机数生成问题
verilog/systemverilog里面的随机数生成方法,及其概率分布。原创 2022-06-28 21:18:27 · 6093 阅读 · 0 评论 -
【如何快速学会verilog开发】
verilog的基本语法特征有哪些?本文删繁就简地提炼出来原创 2022-06-07 23:59:38 · 1148 阅读 · 0 评论 -
verilog 中的 log2
对数的作用log2是指2的对数,对于二进制的计算机系统来说非常有用。比如,10bits的地址线,可寻址的地址空间为2^10。那么反过来对于1024深的地址空间,需要多少bits的地址线?需要用log2(depth)来计算。如何求对数system verilog 有系统函数$clog2可以实现2的对数。但是系统函数使用上有一定的缺陷。比如1的对数,数学上 log2(1)=0 没有问题。但是工程上就有问题了。仍然拿memory举例,深度为1的memory,地址位宽仍然需要1bits(不存在0bit的信号)原创 2022-05-19 11:25:23 · 9254 阅读 · 0 评论 -
verilog中慎用对genvar变量的位操作
对一一种generate coding style仿真时发现一个奇怪的现象。这很有可能是VCS的bug,不过尽量在语法上规避这个问题。原创 2021-04-25 19:13:34 · 2791 阅读 · 0 评论 -
如何将fsdb波形转成csv等可读性文本格式
如何将fsdb波形转成csv等可读性文本格式工具用处工具利用verdi的fsdbreport,verdi命令如下:~% fsdbreport test.fsdb -bt 1000ns -et 1100ns -s "top/abc[31:0]" -csv -of h -o test.csv解释一下:fsdbreport是verdi的一个工具,可以分析fsdb波形。其中参数bt是波形的开始时间;et是波形的结束时间;s是导出的信号名,可以用通配符匹配;of是输出的数据格式,h为16进制;o为导出的原创 2021-01-20 18:33:41 · 5402 阅读 · 0 评论 -
画波形图的工具
在数字电路设计中,常常会看波形图,通过波形图来表达时序关系。波形图也是设计者直接的标准语言。比如:A模块的开发者会用波形图来表示接口的输入信号或者输出信号的时序关系。B模块,对应A模块的驱动或者接收者会根据接口时序做相应的数据传输控制。那么波形图就称为数字电路的设计人员必备的技能。那么,画波形图有哪些工具呢?首先通用绘图工具都可以胜任,比如viso等。但是确实相应的库,只能一根线一根线地画上去,非常费力。今天,我推荐一个轻量级的波形图绘制软件wavedrom。用它可以直接用json文件描述波形。比如原创 2020-07-05 23:32:14 · 6663 阅读 · 0 评论 -
SystemVerilog中的program和module有什么区别?
SystemVerilog中的program和module有什么区别?在传统的verilog验证环境中,测试激励也往往封装在module里。测试module用来产生激励,发送到DUT待测实例的端口上,也可以接收DUT的输出,并做结果比对。在systemverilog中,多了一个program,作用和module有些类似,是专门用来编写测试bfm/monitor的。按照 IEEE Std 1800-2012 § 3.4 & § 24的描述,program和module有几点不同:cannot原创 2020-05-30 00:12:59 · 3501 阅读 · 0 评论 -
如何在verilog仿真中生成fsdb波形?
如何在verilog仿真中生成fsdb波形?verilog仿真波形有多种格式,其中标准格式为VCD,可以作为跨工具的数据交换格式。但是VCD本身非压缩格式,通常比较大。对于纯数字仿真来说可以有其他的波形文件格式作为替代。比如Synopsys的VPD格式,还有FSDB。fsdb是verdi工具(被synopsys收购)的波形格式。而verdi的易用性收到广大数字工程师的青睐,本文介绍一下如何导出fsdb波形。以vcs+verilog为例,其他工具类似。方法一:在verilog文件中在测试文件中(一般是顶原创 2020-05-24 10:16:51 · 7149 阅读 · 1 评论 -
如何通过DPI-C连接Verilog/SystemVerilog和C/C++
1. 在Verilog中调用C函数首先:准备好纯C/C++代码。比如:#include <iostream> int helloFromCpp(int a) { // 0 is 0 // 1 is 1 // 2 is Z // 3 is X int a_int = a; cout << "(C++) a is " << a_int << endl; return 0; }其次:在verilog调用C函数module原创 2020-05-09 13:28:07 · 5832 阅读 · 0 评论