
SystemVerilog
文章平均质量分 60
xavi_siege
这个作者很懒,什么都没留下…
展开
-
Makefile
=变量赋值语句。如果右值包含另一个变量,则可以在后面定义这个变量。:=变量赋值语句。如果右值包含另一个变量,则只能引用已定义的变量。?=条件赋值语句。如果此变量未定义才重新赋值。%通配符@放在命令前面隐藏命令输出原创 2013-04-10 14:31:18 · 606 阅读 · 0 评论 -
SystemVerilog----关于foreach
foreach结构指定在数组元素上的迭代。它的自变量是一个指明任意类型数组(固定尺寸的、动态的、及联合数组)的标识符,然后紧跟着一个包围在方括号内的循环变量的列表。每一个循环变量对应于数组的某一维。foreach结构类似于一个使用数组范围替代一个表达式来指定重复次数的repeat循环。 例子: Copy Codestring words[2] = {"hello", "w原创 2013-04-10 14:54:41 · 20141 阅读 · 1 评论 -
SystemVerilog------2011新解
In 2005 there were separate standards for Verilog and SystemVerilog which are merged here with SystemVerilog 2009. There are 30+ noticeable new constructs and 25+ system task are introduced in SystemV转载 2013-04-10 14:55:57 · 3365 阅读 · 1 评论 -
SystemVerilog 学习笔记-----环境check
1、post_run check para.check_ind(各个模块)根据模式整理需要check的ENV模块 正确比对包的个数是否等于配置的包个数(组解帧) 各个模式下需要比对的包数量(CPRI_CORE) 保证正确比对的包数量不为零 2、RM队列 分模式check RM队列(在post_run里处理) 3、收集非SB处理的比对原创 2013-04-10 14:52:31 · 1026 阅读 · 0 评论 -
影响仿真效率的随机约束写法(多层foreach)和随机数据bit位宽表示
通过分析,对IC环境的随机效率影响较大的主要是随机constraint中有较多的多层(2层)foreach,和一些数据位宽选择较大。下面通过比对修改前后的仿真结果,探讨一下随机约束中多层foreach和bit位宽对随机效率和机器资源的影响。随机约束写法一表示修改之前的写法,随机约束写法二代表修改后的写法。随机约束写法一:1. 多层foreach约束动态数组一维动态数转载 2013-04-10 14:45:17 · 1453 阅读 · 0 评论 -
SVA在VCS和NC下仿真差异总结
1 前言 用VCS仿真SVA的资料已经很多,所以本文重点阐述了NC下使用SVA的脚本,以及SVA在VCS和NC下仿真的差异。2 脚本2.1 NC仿真脚本-access +r 读存储这个方式必须有,为了断言检测用的。-sv 大家都懂的-assert 断言使能-gui 启动图形化界面-input 从文件里面读tcl命令转载 2013-04-10 14:44:16 · 5693 阅读 · 0 评论 -
system verilog学习笔记---intersting Q&A
1、关于RM的数据来源,一则可以从Transfer中取包,另外可以从逻辑接口处采集而来。2、关于激励的来源,一则可以从激励源数据文件得之,另外可以通过环境的约束自己产生。3、关于激励的描述,一则可以直接用时序语言描述,另外可以用定义式的语言进行描述。原创 2013-04-10 14:43:01 · 860 阅读 · 0 评论 -
system verilog学习笔记---coding style
1. 定义一个系统级的config类, 如 syscfg. 在类中集中了所有的控制变量(总开关),这些变量决定了是否允许randomize,error injection, delay injection, 产生包的个数,等等 这样可以有效的消除一些不必要的callback。一般callback只是用于将某段代码开放给后面的维护人员以便进行一些复杂的修改之用。 Callb原创 2013-04-10 14:41:34 · 5598 阅读 · 1 评论 -
SystemVerilog--关于force用法
逻辑在具体实现上是通过2个计数器来控制100ms的计时控制,具体如下:定义计数器A(取值范围在0~9),计数器B(取值范围0~38399),且计数器B的启动是在计数器A取值为9时才开始,而计数器A的计数条件为模块端口输入的10ms同步信号。在Netlist仿真中验证这个100ms能量统计时,如果基于Netlist仿真真实的100ms需要很长的时间(以周为时间单位了),为了达到测试的目的,直原创 2013-04-10 14:40:01 · 34880 阅读 · 2 评论 -
system verilog学习笔记assertion & debug
断言:Design Engineer用 assert来检查 1)模块输入有没有X,Z态 2)发现design不支持的用法,报警 3)设计时的假设,包括接口的时序 4) buffer/FIFO 的overflow 5) 一些不能出现的情况,譬如read和write同时有效 6) 握手总是能够完成 (ack总是跟在req之后)原创 2013-04-10 14:38:34 · 2811 阅读 · 0 评论 -
system verilog学习笔记--time slot division
Postponed区域是监视信号和其它类似事件的区域,一旦到达Postponded区域后,在这个时隙中不允许有新的值变化。Observed和Reactive区域是新的区域,并且只有来自新的语言结构的事件才能被调度进这些新的区域。当特性表达式被触发的时候,Observed区域用来计算这些特性表达式。这个确定性的一个标准就是特性计算在任意时钟触发时隙中只能发生一次。在特性计算期间,通过/失败代码应原创 2013-04-10 14:37:30 · 3551 阅读 · 0 评论 -
SystemVerilog 学习笔记--randomize function
rand_mode()方法可以用来使能或关闭任何随机变量。使用randc声明的变量是周期随机变量,它在一个它们声明范围内的一个随机排列中循环地选择所有的值。如果一个约束块被声明成静态的,那么对constraint_mode()的调用会影响所有对象中指定约束的所有实例。 rand join生成式控制被用来随机地交叉两个或多个生成式序列而又能维持每一个序列的相对顺序。w原创 2013-04-10 14:36:17 · 2157 阅读 · 0 评论 -
system verilog-variable
语法:str操作:str.atoi();str.atohex;str.putc(i,a);强制类型:int' a; 而$cast(destination,source)试图将源表达式赋值给目的变量,如果赋值成功则返回1。如果赋值失败,$cast不会进行赋值操作而是返回0。当作为函数调用时,不会出现运行时错误,并且目的变量保持不变。数组赋值:b = {2:1,default:0};原创 2013-04-10 14:33:25 · 1207 阅读 · 0 评论 -
SystemVerilog笔记------散记
枚举类型打印,使用%s ---- a.name() task mytask1 (output int x, input logic y); ...endtasktask mytask2; output x; input y; int x; logic y; ...endtask每一个形式参数可以具有下列之一的方向:原创 2013-04-10 14:50:49 · 3202 阅读 · 0 评论