随笔分类 -  UVM之道

阅读UVM源代码
uvm_port_base——TLM1事务级建模方法(五)
摘要:文件: src/tlm1/uvm_port_base.svh 类: uvm_port_base uvm_port_component_base派生自uvm_component,因此具有其所有特性。提供了一下接口,get_connected_to 用于返回所有的port主动连接端口。get_provi 阅读全文

posted @ 2017-12-21 14:48 dpc525 阅读(511) 评论(0) 推荐(0)

uvm_sqr_ifs——TLM1事务级建模方法(四)
摘要:与uvm_tlm_if_base 一样,这个类也没有派生自任何类,定义了如下几个接口:get_next_item, try_next_item, item_done, get, peek, put, put_response. 阅读全文

posted @ 2017-12-21 09:43 dpc525 阅读(507) 评论(0) 推荐(0)

uvm_tlm_if_base——TLM1事务级建模方法(三)
摘要:文件: src/tlm1/uvm_tlm_ifs.svh 类: uvm_tlm_if_base 这个类没有派生自任何类,在类的中,定义了三类接口:第一类是阻塞性质的普通方法(task),put, get, peek, transport(T1, T2). 第二类是非阻塞性质的普通方法(functio 阅读全文

posted @ 2017-12-20 21:53 dpc525 阅读(1119) 评论(0) 推荐(0)

uvm_analysis_port——TLM1事务级建模方法(二)
摘要:UVM中的TLM1端口,第一类是用于uvm_driver 和uvm_sequencer连接端口,第二类是用于其他component之间连接的端口,如uvm_monitor和uvm_scoreboard。首先让我们看第二类。首先来看uvm_analysis_port。 我们可以看到所有的类都是继承自u 阅读全文

posted @ 2017-12-20 21:15 dpc525 阅读(2508) 评论(0) 推荐(0)

uvm_tlm——TLM1事务级建模方法(一)
摘要:TLM(事务级建模方法,Transaction-level modeling)是一种高级的数字系统模型化方法,它将模型间的通信细节与函数单元或通信架构的细节分离开来。通信机制(如总线或者FIFO)被建模成信道,并且以SystemC接口类的形式向模块呈现。事务请求一般在调用这些信道模型的接口函数时发生 阅读全文

posted @ 2017-12-20 10:47 dpc525 阅读(2291) 评论(0) 推荐(0)

uvm_hdl——DPI在UVM中的实现(四)
摘要:我们可以在uvm中实现HDL的后门访问,具体包括的function有uvm_hdl_check_path,uvm_hdl_deposit, uvm_hdl_force,uvm_hdl_release,uvm_hdl_read, task 有uvm_hdl_force_time。 这么做与直接用SV中 阅读全文

posted @ 2017-12-19 16:39 dpc525 阅读(10971) 评论(0) 推荐(2)

uvm_regex——DPI在UVM中的实现(三)
摘要:UVM的正则表达是在uvm_regex.cc 和uvm_regex.svh 中实现的,uvm_regex.svh实现UVM的正则表达式的源代码如下: 然后,再看看uvm_regex.cc的源代码: #include "uvm_dpi.h" #include <sys/types.h> const c 阅读全文

posted @ 2017-12-19 16:10 dpc525 阅读(2138) 评论(0) 推荐(0)

uvm_svcmd_dpi——DPI在UVM中的实现(二)
摘要:UVM中有需要从cmmand line 输入参数的需求,所有uvm_svcmd_dpi.svh和uvm_svcmd_dpi.cc 文件就是实现功能。 uvm_svcmd_dpi.svh的源代码如下,我们可以看SV采用import的方式导入C代码函数,所有者写函数的实现在uvm_svcmd_dpi.c 阅读全文

posted @ 2017-12-19 15:57 dpc525 阅读(1881) 评论(0) 推荐(0)

uvm_dpi——DPI在UVM中的实现(一)
摘要:文件: src/dpi/uvm_dpi.svh 类: 无 SystemVerilog DPI,全称SystemVerilog直接编程接口 (英语:SystemVerilog Direct Programming Interface)是SystemVerilog与其他外来编程语言的接口。能够使用的语言 阅读全文

posted @ 2017-12-19 15:45 dpc525 阅读(3213) 评论(0) 推荐(0)

uvm_reg_adapter——寄存器模型(十八)
摘要:uvm_reg_adapter 功能就是在uvm_reg_bus_op和总线操作之间的转换。主要包含两个函数reg2bus 和bus2reg。 阅读全文

posted @ 2017-12-17 14:20 dpc525 阅读(2767) 评论(0) 推荐(0)

uvm_reg_predictor——寄存器模型(十七)
摘要:这是寄存器模型类中唯一派生自uvm_component的类,我们的寄存器模式需要实时,以最接近的方式知道DUT中寄存器的变化,uvm_reg_predictor就是为这个而生的。 阅读全文

posted @ 2017-12-12 14:34 dpc525 阅读(2263) 评论(0) 推荐(0)

uvm_reg_cbs——寄存器模型(十六)
摘要:当你完成寄存器模型的时候,你就会想到给后来的人一个接口,给他更多的扩展,让他做更多的事,一般而言,只有做VIP时,会想到做callbacks. 阅读全文

posted @ 2017-12-12 14:23 dpc525 阅读(559) 评论(0) 推荐(0)

uvm_reg_fifo——寄存器模型(十五)
摘要:当我们对寄存器register, 存储器memory, 都进行了建模,是时候对FIFO进行建模了 uvm_reg_fifo毫无旁贷底承担起了这个责任,包括:set, get, update, read, write, 等等函数。 阅读全文

posted @ 2017-12-12 14:12 dpc525 阅读(884) 评论(0) 推荐(0)

uvm_reg_file——寄存器模型(十四)
摘要:有了uvm_reg_field, uvm_reg, uvm_block, 也许我们需要跟大的uvm_file,这就是传说中的寄存器堆。 阅读全文

posted @ 2017-12-11 22:17 dpc525 阅读(577) 评论(0) 推荐(0)

uvm_mem_mam——寄存器模型(十三)
摘要:有了存储器模型,再来看看存储器的管理 阅读全文

posted @ 2017-12-11 22:14 dpc525 阅读(1289) 评论(0) 推荐(0)

uvm_mem——寄存器模型(十二)
摘要:看完了寄存器,再来看看存储器: 阅读全文

posted @ 2017-12-11 22:12 dpc525 阅读(2350) 评论(0) 推荐(0)

uvm_reg_predictor——寄存器模型(十一)
摘要:保存寄存器的值 观察DUT寄存器值的变化。 阅读全文

posted @ 2017-12-11 22:09 dpc525 阅读(529) 评论(0) 推荐(0)

uvm_reg_backdoor——寄存器模型(十)
摘要:寄存器有前门和后门两种访问方式,这儿只看后门访问方式 阅读全文

posted @ 2017-12-11 22:07 dpc525 阅读(888) 评论(0) 推荐(0)

uvm_reg_map——寄存器模型(八)
摘要:所有的寄存器都需要地址,都需要加入到地址列表中 阅读全文

posted @ 2017-12-11 22:02 dpc525 阅读(1725) 评论(0) 推荐(0)

uvm_reg_block——寄存器模型(七)
摘要:这是寄存器模型的顶层 阅读全文

posted @ 2017-12-11 22:00 dpc525 阅读(750) 评论(0) 推荐(0)

导航