SV——SV实现callback 0. 介绍用SV实现回调的功能。 回调思路可以让我们在top层向验证平台注入代码到我们预留的“钩子”(hook)中,实现一些功能,比如:在driver回调可以实现错误注入,收集激励到scoreboard中,收集覆盖率等。 这篇文章介绍在driver中回调,实现对driver驱动的transaction的控制,可以产生不同的激励,比如错误激励。 1. 结构图 driver中有一个回调的“钩子”——是 2019-08-23 Verification System Verilog IC SV
shell中的grep grep主要用来进行字符串数据对比,然后将符合用户需要的字符串打印出来。 1. 查找特定字符串1grep -n [-A] [-B] "要查找的字符串" --color=auto filename option description -n 显示行在文件中的行号 -A 后面跟数字,所匹配行之后的几行也会打印 -B 后面跟数字,所匹配行之前的几行也会打印 2019-08-19 linux linux vim
shell中的sed 中兴面试被提问到:在vim中删除包含特定字符串的行。当时说不会,后来想了想可以用sed或者perl里的匹配替换。 0. sedsed是个管道命令,可以对数据进行替换、删除、新增、选取特定行等功能。 1. 命令格式1sed -ndfr [动作] 1.1 参数 参数 -n 只有被sed处理的行才会打印出来 -e 直接在命令行上输入sed命令,如果和-i参数配合用会保存源文件。 - 2019-08-19 linux linux vim
UVM——sequence(一) 在UVM中,将激励生成和测试平台分开,使平台只编译一次,但可以运行多个激励,要实现这一点需要sequence机制、factory机制和config_db机制。 在不同的测试用例中,将不同的sequence设置成sequencer的main_phase中的default_sequence。当sequencer执行到main_phase时,发现有default_sequence,就启动sequence 2019-08-08 Verification UVM IC SV Verification UVM
UVM——sequence(二) 6. virtual sequence 如果被嵌套的sequence需要在不同的sequencer中启动,也就是需要sequence之间同步,那么此时的嵌套sequence就是virtual sequence。它不产生transaction,只是控制其它sequence产生transaction发送给不同的sequencer,这就是为什么是virtual。 virtual seq 2019-08-08 Verification UVM IC SV Verification UVM
Verilog——文件读写 1. 读取文件读取文件是之前在CSDN中整理的,链接 $readmemb和$readmemh用来从文件中读取数据到存储器中。 读取的内容只包括:空白位置(空格、换行、制表格(tab和form-feeds),注释行、二进制或十六进制的数字。 数字中不能包含位宽说明和格式说明,其中readmemb要求每个数字是二进制数,readmemh要求每个数字必须是十六进制数字。数字中不定值x或X,高阻值z或Z, 2019-08-07 Verilog IC Verilog
Verilog——分频器 在面试比试中经常出现的奇数时钟分频电路。 1. 不用时钟下降沿触发的3分频电路12345678910111213141516module ClockDiv( // 3 分频 input clk_i, input rst_n, output clk_o );reg [2:0] cnt;always@(posedge clk_i or negedge rst_n) begi 2019-08-06 Verilog IC Verilog
UVM——callback机制 参考UVM_CALLBACK—VerificationGuide网站 《UVM实战1》 1. 介绍Where callbacks can be implemented?Callbacks can be implemented in an object or component. What are the benefits of callback?Different flavors of the c 2019-07-30 Verification UVM IC SV Verification UVM
UVM——RAL 1. 寄存器模型介绍每个IP都有总线接口,连接到总线上,用来对DUT中寄存器进行配置,改变其行为。 再验证环境中,如果改变了DUT的行为,那么参考模型需要知道DUT做了哪些改变,并同步改变,否则参考模型和当前DUT的功能不一致。 参考模型要想获得寄存器值,需要做两件事: 在参考模型中启动sequence用来产生一个读取DUT寄存器的操作。 读取的值传递给参考模型。 如果有了寄存器模型,可以直接 2019-07-30 Verification UVM IC SV Verification UVM
SV——SV与C的接口 在Verilog中,通过VPI可以引用C程序,听说挺复杂的(,当然我不会)。在SV中引入了DPI(direct programming Interface),可以通过在SV中简单的设置,就可以引用C语言。 1. SV简单引用C先看一个例子 123456789101112131415// tb.svimport "DPI-C" function int factorial(inp 2019-07-27 Verification System Verilog IC SV Verification