![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IC验证
文章平均质量分 50
better_xiaoxuan
Man needs his difficulties because they are necessary to enjoy success.
展开
-
glitch断言
chip级使用一个common的SV assertion 检查各处的glitch 以及X态 这里使用了一个断言方法是property soc_tb_prop_no_glitch (d_in, clk, rst);logic data;disable iff(rst) @(d_in) (1, data=!d_in) |=> @(clk) (d_in == data);endproperty原创 2017-02-28 20:36:00 · 2033 阅读 · 0 评论 -
VCS 仿真过程中对TCL 的调用
此文关于VCS的基本仿真命令讲解的还是很详细的 https://wenku.baidu.com/view/a514c0ef9ec3d5bbfd0a743f.html3.2 UCLI仿真UCLI仿真其实是建立在TCL语言之上的。所以在UCLI结构中你可以使用TCL命令来控制UCLI的执行。 下面的命令就是建立UCLI仿真: % simv [simv_options] –ucli 注意:使用原创 2018-01-03 15:16:30 · 5354 阅读 · 0 评论 -
关于TB 编译:compile&elab
VCS 编译产生可执行文件的,流程分为compile-elabcompile使用的命令是vlogan 和 vhdlan -option +文件 这一阶段会检查语法错误、并产生很多的中间lib文件,供elab使用,可以使用-work去指定文件的路径elabelaboration 会产生instance hierachy 和可执行的二进制文件simv 同时elabration 可采用debug原创 2017-08-15 19:35:42 · 2071 阅读 · 0 评论 -
VTB环境结构
关于EMAC VTB的环境结构的解析 727的环境中关于EMAC 、USB 、PCIE 都是采用了 VTB 的方式完成的。727中使用S家工具 synopsys coretool, 基于一个配置文件,就可以生成一阵个硬件模型(实际就是生成了一个DUT,而且是.v文件)和软件TB. 这套flow 实际是一位未发布的flow (大概只有大公司会这么跟sysnopsys玩吧)。 727 是这样原创 2017-11-24 18:27:17 · 1180 阅读 · 0 评论 -
adapter sequence 和env slave 组件
`ifndef UTB_AHB_MASTER_ADAPTER_SEQUENCE_SV`define UTB_AHB_MASTER_ADAPTER_SEQUENCE_SVclass utb_ahb_master_adapter_sequence extends svt_ahb_master_transaction_base_sequence; /** UVM Object Utility macr原创 2017-09-15 22:36:59 · 929 阅读 · 0 评论 -
AHB总线协议整理
这位博注总结的很好啊, http://blog.163.com/qixin_william/blog/static/240217035201491133626819/ http://blog.163.com/qixin_william/blog/static/240217035201491425318830/ 拿过来分析下T1时刻之后,master将第一拍地址和控制信号打入总线,因为是一个原创 2017-08-11 22:57:48 · 12915 阅读 · 0 评论 -
跨时钟域的同步问题
两级同步电路http://www.cnblogs.com/IClearner/p/6485389.html 这个博主讲解的还是很有意思的呢, 配合这个,简短的讲解: http://dengkanwen.com/238.html ,,, 那么问题来了,sync cell的sim jitter 是在抖动什么呢? sim jitter 和clk jitter有什么差别呢?原创 2017-07-31 12:00:37 · 4407 阅读 · 0 评论 -
UVM-regmodel
为什么要用reg model?依据白书,寄存器模型是为了方便环境中组件、如refence model 或 scoreboard 等对寄存器的操控而设定的组件。例如从ref model中向DUT读值的时候,就必须采取前门访问,必须考虑两个问题1,如何操纵参考模型来控制发送启动sequence,以读取reg的值?A:设置全局事件,在refmodel 中触发这一事件,在virtu原创 2017-07-18 14:12:54 · 1984 阅读 · 0 评论 -
Virtual sequence 和test 启动的关系
这是一个UVM的基本结构问题。sequecne的启动先理解一个sequence 的启动机制吧。白书第二章有讲解。 对于一个sequence,在环境中的任意一处实际调用sequence.start就可以启动啦。 但是一般会在前后加上raise/drop_objection().这就又是,objection机制了,在程序进入到某一个phase时,UVM会收集这个phase 所有的objection,原创 2017-07-30 18:11:50 · 1705 阅读 · 0 评论 -
验证结构中IMonitor的作用
DUT 的 input 端口采用的monitor 是干嘛的呢?根据白书: 一,大型项目中,driver 根据协议发送数据,而monitor根据协议接收数据。如果driver和monitor由不同人实现,那么可以大大减少其中任意一方对协议理解的错误。二,便于复用???另外,我的一点理解是:用于判断是否真的将输入,打入了DUT。????就一般环境,IF与dri原创 2017-07-17 21:50:58 · 944 阅读 · 0 评论 -
IC Flow
http://www.360doc.com/content/13/0426/11/8804122_281039874.shtml系统级设计阶段 :根据产品需求,确定待设计芯片,选择工艺、封装、面积、功耗、接口等各方面要求 定义架构、对模块功能进行划分、选择合适IP前端设计:完成R2N 的过程:RTL –>netlist 。 设计和功能验证 设计:模块设计/系统集成: spyglass 做语原创 2017-07-16 17:17:02 · 1438 阅读 · 0 评论 -
关于virtual interface
关于VIF 张强书中如是将:那么如何在driver中使用interface呢?一种想法是在driver中声明如下语句,然后再通过赋值的形式将top_tb中的input_if传递给它:代码清单 2-14class my_driver extends uvm_driver; my_if drv_if; …endclass读者可以试一下,这样的使用方式是会报语法错误的,因为my_driv原创 2017-07-12 21:59:18 · 5322 阅读 · 0 评论 -
AXI协议整理
原文出处 http://blog.csdn.net/rill_zhen/article/details/44219593/总线信号分两种。valid/ready协议 ,1,valid/ready协议 axi协议是典型的基于valid/ready协议的总线协议。 valid/ready协议的优势就是master和slave的相对独立性比较好。 对于一次传输,作为master的发起方不用检查s转载 2017-06-30 15:14:26 · 8899 阅读 · 0 评论 -
SV中的automatic与static
module breakpoint;int val1;int val2;int result1;//定义在这里,或者定义在未特殊声明的function/task中都是静态的方法function int incr_static(input int a); $display("result1 = %0d", result1); result1 = a + 1; $display("re原创 2018-01-09 17:14:36 · 14959 阅读 · 11 评论