随笔分类 -  最近日常

摘要:DPI部分和so文件和.a文件相互区分, so是编译成动态库以后,使用sv_lib、sv_root命令,在运行时使用,获取到API; .a文件是静态链接后,使用-P xxx.tab xxx.a文件,在编译时候使用,生成的simv,是PLI,有$符号; DPI这部分,是直接将c文件当成普通的sv文件, 阅读全文
posted @ 2022-02-26 21:20 大浪淘沙、 阅读(1164) 评论(0) 推荐(0)
摘要:uvm_callback 可以控制组件产生的回调函数 代码: 建立了数据edata类,cb1的回调类,cb2继承于cb1的回调类,comp1注册cb1回调类,然后进行回调执行。 注意在env中,对comp1中添加了cb1和cb2的回调属性。回调进行的时候,add的顺序对回调会有影响,如果先add c 阅读全文
posted @ 2022-02-25 16:08 大浪淘沙、 阅读(685) 评论(0) 推荐(0)
摘要:域的自动化 copy copy 方法的结果如下代码: 首先是注册,注意copy方法的调用者是被赋值的对象,参数是来源的对象。 do_copy是在copy后自动执行的方法,是一个回调函数。 点击查看代码 module taa (); import uvm_pkg::*; `include "uvm_m 阅读全文
posted @ 2022-02-24 14:46 大浪淘沙、 阅读(284) 评论(0) 推荐(0)
摘要:这本书的整体结构也只能将就看看,无论是从代码缩进还是语句,整体行文逻辑实在是有点混乱。另外一些代码无法编译通过,或者给出了错误的结论(vcs2016) 比较器的验证计划 异常检查:如复位,等异常 常规检查:数据完整性,功能配置 时序检查:时序是否符合预期 package的语法注意 1. 优先使用内部 阅读全文
posted @ 2022-02-22 16:31 大浪淘沙、 阅读(56) 评论(0) 推荐(0)
摘要:多通道数据整形器(Multi-Channel Data Formatter) 设计结构与接口 一共分为:上行数据通道(Slave的数据端口,3个)、仲裁、整形(7个 )、控制寄存器(4个)四个部分。 其中的仲裁器位于内部,没有外部接口对应。整形器有FMT_ID的通道号码未列出,其它都在图上进行了标识 阅读全文
posted @ 2022-02-21 21:41 大浪淘沙、 阅读(259) 评论(0) 推荐(0)
摘要:芯片流片前的开发流程 用户需求:设计结构和产品描述。 系统设计:模块化的功能详述。 硬件设计:HDL文件 功能验证:验证文件(前仿真部分) 后端综合:门级网表,SDF文件(后仿真部分:零延时映射,单位延时映射,SDF仿真) 验证要求 完备性:各种覆盖率、跨时钟域等的检查需要完备。 复用性:标准化验证 阅读全文
posted @ 2022-02-20 17:42 大浪淘沙、 阅读(87) 评论(0) 推荐(0)
摘要:https://gitee.com/bai-mengwei/AHB2 AGETN的结构 一般,在env中实例化agent后,同时会实例化一个config,里面包括了vif、is_active等信息,由env将其传入到agent中。agent取时用时,则从config里进行。 master和slave 阅读全文
posted @ 2022-02-18 10:47 大浪淘沙、 阅读(316) 评论(0) 推荐(0)
摘要:AHB2项目虽然有不少错误,但是从整体架构上比较规范。 https://gitee.com/bai-mengwei/AHB2 RTL 可能由于只是一个VIP,只有一个interface。在interface里具有断言的写法。 比如:其中的disable iff等表示需要系统不在复位状态,即rst=1 阅读全文
posted @ 2022-02-16 22:24 大浪淘沙、 阅读(454) 评论(0) 推荐(0)
摘要:信号线 相比于AHB信号简单了很多,信号线只有8个。并以P开头。 系统信号 时钟、复位 主机控制信号 APB系统中,APB桥是唯一的主机,同时也是AHB或者ASB的从机。 地址、选择、选通、传输方向、写数据 从机控制信号 读数据 特点 总体特点 低功耗、接口简单、锁存地址和控制、适合多种外设 状态图 阅读全文
posted @ 2022-02-14 21:32 大浪淘沙、 阅读(140) 评论(0) 推荐(0)
摘要:文档来源于AMBA2.0中文翻译。 AHB总线介绍 AHB:高性能,高时钟频率的系统总线。 主要特点是:突发传输、分块处理等,APB桥和内部存储器是常见的AHB的从机。 AHB系统中有四个部分:主机、从机、仲裁器、译码器。 多个主机同时申请访问一个从机,使用仲裁器。译码器对主机发出的地址译码,确定选 阅读全文
posted @ 2022-02-13 22:17 大浪淘沙、 阅读(704) 评论(0) 推荐(0)
摘要:https://gitee.com/bai-mengwei/sv_tb_router 1. 整体调用过程 top top是一个module,它创建了clk,创建了router_io的interface,然后实例化了dut和test。 test_top test是一个program,它导入了route 阅读全文
posted @ 2022-02-11 22:38 大浪淘沙、 阅读(282) 评论(0) 推荐(0)
摘要:program的使用原因 标准中24.2的overview中有提及,和module不同,主要原因是: 1. 提供tb的入口, 2. reactivate域中执行代码。 phase回顾 灰色为task phase,消耗仿真时间。结束过程分别为:extract、check、report、final。 v 阅读全文
posted @ 2022-02-10 21:06 大浪淘沙、 阅读(99) 评论(0) 推荐(0)
摘要:top的program中与case的class中。 1 导入UVM的方法 在top的program内部,import uvm_pkg::*,在Makefile的vcs中,添加-ntb_opts uvm-1.1选项 2 top的timeformat 系统函数,参数为:时间精度,时间小数,后缀,显示位宽 阅读全文
posted @ 2022-02-09 14:57 大浪淘沙、 阅读(731) 评论(0) 推荐(0)
摘要:1 sprint与print req和seq_item_port同等级别,都是uvm_driver下内部的变量。前者指代了对应的packet(transaction),然后packet下定义了uvm_field宏注册机制,就可用一些uvm_obj的函数。 函数中的sprint和print的区别如下( 阅读全文
posted @ 2022-02-01 21:30 大浪淘沙、 阅读(1789) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_38791897/article/details/107870029 timeformat 的四个参数:时间精度,小数位数,输出后缀字符串,时间显示宽度 \$timeformat(units_number, precision_number, suf 阅读全文
posted @ 2022-01-27 22:59 大浪淘沙、 阅读(419) 评论(0) 推荐(0)
摘要:后期还是搞几个项目练练手吧。 TLM2.0 出现了socket通信。具体的使用还是优先于port等1.0TLM方式。 以下是2.0的一些信息 组件同步 uvm也存在,但是sv里提供的也不错 barrier scb的乱序、多数据流、数据格式、覆盖率、 阅读全文
posted @ 2022-01-26 16:26 大浪淘沙、 阅读(152) 评论(0) 推荐(0)
摘要:1 uvm_sequence的函数 uvm_sequence_item相当于一个pkt,seq用于随机化该pkt等。sqr用于发送。 另外uvm_do不仅可以发送item,也可以发送seq。seq支持嵌套。 start_phase start_phase常常存在seq的task body中,它是在正 阅读全文
posted @ 2022-01-25 20:06 大浪淘沙、 阅读(321) 评论(0) 推荐(0)
摘要:uvm的打印信息有info、warning、error、fatal,只有info有信息等级。 uvm的phase有build、connect、end_of_eleboration、start_of_simulation、run、extract、check、report。 只有build自顶向下,其它 阅读全文
posted @ 2022-01-24 20:09 大浪淘沙、 阅读(444) 评论(0) 推荐(0)
摘要:寄存器模型 前门访问 通过协议进行数据正规访问 定义seq class reg_access_sequence extends uvm_sequence#(bus_transaction); string tID = get_type_name(); bit[15:0] addr; bit[15:0 阅读全文
posted @ 2022-01-23 18:49 大浪淘沙、 阅读(481) 评论(0) 推荐(0)
摘要:寄存器模型 寄存器模型DUT 这里面只有与bus_*有关,与my_*,如my_transaction,my_sqr等无关。 DUT UVM的寄存器模型适合于具有地址和数据总线之类的DUT,以下是一个可以使用寄存器模型的DUT 第二段always为写操作,当可写时,且写入地址为9号,则将bus_wr_ 阅读全文
posted @ 2022-01-22 22:07 大浪淘沙、 阅读(194) 评论(0) 推荐(0)