命令: sverilog:表示支持systemverilog,如果只编译verilog不需要加 test.sv :这个可以是一个systemverilog/verilog文件,也可以是一个filelist -full64:表示使用64位的机器。 verilog中可执行的单元是module;syste ...
分类:
其他好文 时间:
2018-10-13 13:42:31
阅读次数:
579
截位(rnd/prnd/floor):都是去掉低位数据的操作(去掉低位低精度的数据,或者说小数位,降低数据的精度) 饱和(sat/sym_sat):都是去掉高位数据的操作,(去掉无符号数高位的0,或者有符号数高位多余的符号位) 函数说明: floor: 这个操作很简单,就是把低位直接截掉,精度损失大 ...
分类:
其他好文 时间:
2018-10-13 02:21:19
阅读次数:
213
6.6 pre_randomize和post_randomize函数 我们在调用randomize()函数之前或者之后要立即执行一些操作。比如,在随机化之前可能要设置类里的一些非随机变量(上下限、权重),或者随机化之后需要计算随机数据的误差矫正位。 SystemVerilog中可以使用void类型的 ...
分类:
其他好文 时间:
2018-08-28 21:11:20
阅读次数:
212
在进行验证已编写过的模块时,我们往往需要一些随机的测试方法来检测隐藏的漏洞。sv相比于verilog而言,在随机化上则是非常有力,有许多关于随机化的操作。===================================================一 随机数据:一般而言随机化的操作都是需要封装成为类的。class Bus;
rand
分类:
其他好文 时间:
2018-07-17 18:09:50
阅读次数:
720
在verilog中每当遇到复杂的模块时,我们都不得不书写一长串端口声明,稍有不慎就会写错,并且难以检查。但在systemverilog中,接口interface则是避免了这个问题。下面的代码是对一个一位加法器的验证,使用了接口。`timescale 1ns / 1ps
interface if_port( input bit c
分类:
其他好文 时间:
2018-07-17 16:32:25
阅读次数:
307
systemverilog中的队列操作十分简单,只需要调用函数即可。/*??
??Exercise?platform:????Questa?Sim?10.1b
*/
module?queue;
??int?q[$]?;
?&nbs
分类:
其他好文 时间:
2018-07-14 14:50:11
阅读次数:
2654
sv中的数组基本操作:/*
Exercsise platform : Questa Sim 10.1b
*/
class Array;
int array[9:0] ;
&nb
分类:
编程语言 时间:
2018-07-14 13:08:43
阅读次数:
2166
在verilog或systemVerilog中出现三态时我们需要使用wire语句声明类型,而在systemC中我们则是需要另外的一些类型:???????????????? sc_signal_rv???&nbs
分类:
其他好文 时间:
2018-07-07 10:42:48
阅读次数:
203
在硬件仿真上的语言不是很多,主流的有vhdl,verilog,systemverilog以及systemC。systemC是一种系统级语言也是一种硬件仿真的语言,它是由c++经过修改得到的。想比于其他的硬件语言,它主要有以下的优势:(1)更高的仿真速度(2)硬件与软件的协同仿真(3)体系的架构探索一般的数字系统开发有以下的部分,它们由高向低逐步进行:(1)c/c++形成可执行规范(2)RTL级的设
分类:
其他好文 时间:
2018-06-29 12:08:27
阅读次数:
223
1.一般是单独写一个module 里面放assertion, 然后在验证平台顶层和RTL的实例化bind起来? 2. |->表示直接进行判断,|=>表示下一拍判断,一般一个断言最好只写一个蕴含。? $rose()表示该信号当前拍为1,上一拍为0,作用与 miso_oe && !past(miso_o ...
分类:
其他好文 时间:
2018-06-07 17:47:26
阅读次数:
210