平头哥数字电路验证(DV)专家面试题收录 平头哥数字电路验证(DV)专家面试题收录#平头哥芯片设计##一面(视频面试)1、SystemVerilog基础,constraint问题 一个64位的起始地址和一个8位的长度,需要随机这两个变量,让每次随机出来的地址空间都和之前的任意一次都没有重叠。例如第一次地址是3,长度是5,第二次地址是20,长度是10,这样就可以,但是第三次如果随机出来地址是15,长度是10就不行。因为和第二次有一部分是重叠的。请问这样的class该怎么设计?...
平头哥芯片设计面试题收录 平头哥面试题收录#平头哥芯片设计##一面(视频面试)1、SV基础2、桶形移位法(项目相关) 桶型移位器是一个多输入、单输出电路。对于输入a[31:0],移位器首先会根据b[4:0]的值来确定移多少位,最后将结果c[31:0]输出。3、跨时钟域的问题,包括单bit、多bit、详细说明握手协议等,为什么gray码不会产生毛刺? 单bit信号打拍的时候需要考虑时钟频率,当时钟周期大于亚稳态的恢复时间...
[SV]SystemVerilog状态机实现案例 SystemVerilog状态机实现案例一、用枚举型变量描述状态typedef enum bit [2:0] {TOP_HIB, TOP_BG, TOP_LDO, TOP_NOR} rx_top_fsm_e;二、状态机实现2.1 更新现态寄存器task top_fsm(); forever begin @(posedge intf_mon.clk_ck or negedge intf_mon.rst_n); ...
[UVM]推荐的一个UVM环境文件架构 推荐的一个UVM环境文件架构一、文件夹verify verify/build verify/IPCRV verify/IPCRV/agent verify/IPCRV/env verify/IPCRV/file_list verify/IPCRV/ral_model verify/IPCRV/sva verify/IPCRV/top_module verify/IPCRV/vseq verify/testlist二、fil...
[DV]在长burst中漏采样的问题 在长burst中漏采样的问题一、背景 最近在验SerDes的过长中,发现了一个在长burst中漏采样的问题。本来lane上的data应该是均匀的,但是在data传送一段时间之后,就会出现valid信号少了一个,本来是2T clock来一个valid,但是某时刻4T才来了一个burst。二、问题探索 开始,怀疑是使用clock blocking造成的,可能是setup_time和hole_ti...
[UVM]UVM解析命令行参数及读写文件 UVM解析命令行参数及读写文件 前言:在仿真过程中,我们常常需要记录一些仿真过程中产生的数据,那么怎么把这些数据记录在特定目录下的指定文件中呢,本文将展示一次实际应的例子。一、在上一篇博文中,我们介绍了UVM解析命令行参数的方法uvm_cmdline_processor cmdline_proc_inst;function new(string name, uvm_component); sup...
[UVM]UVM命令行参数解析工具:uvm_cmdline_processor UVM命令行参数解析工具:uvm_cmdline_processor 前言:uvm_cmdline_processor扩展自uvm_report_object,是一个对仿真命令进行处理的处理器类。uvm_cmd_line_verb类是一个独立的类,主要对仿真的编译路径,事件等进行记录。一、UVM仿真命令进行处理的处理器1.uvm_cmd_line_verb类只有四个属性:string comp_path; ...
[DV]中断(IRQ)验证的思考 中断(IRQ)验证的思考一、如何确保功能验全?基本思路:normal function:不会有IRQ Assert Error Case:仅有指定的IRQ举起 如果IRQ(A)可以带起IRQ(B),是否需要防守?...
[DV]如何找出击中某个cover bins的testcase? 如何找出击中某个Cover bins的Testcase 前言:在数字电路验证中,我们通常是通过coverage分析来评价验证工作是否完备(相对完备)。在验证工作进行的过程中,我们也需要在Wavefrom上面确认某个coverpoint或者cover property是否真的击中了。那么我们怎么通过已经击中的cover bins来找到对应的Wavefrom呢?本文将介绍一种方法。一、需要再merge vdb的时候添加Option在me...
[DV]闪存主控芯片验证全流程 闪存主控芯片验证全流程 设计验证是芯片产业链中关系到芯片质量的重要环节,随着芯片规模扩大及片上系统(SoC)设计复杂度提升,验证目标从功能正确、性能达标向满足业务应用快速适配部署的需求发展,其难度和重要性不断提高。 闪存主控验证由于其业务应用的特点,需要关注前端接口协议处理、后端闪存吞吐以及针对不同业务读写均衡和异常处理的需求。其导向随着“软件定义存储”的发展,更加强调与业务系统实际应用中的配合;其复...
[Verilog]CRC/Scrambler/LFSR Counter代码生成器 CRC/Scrambler/LFSR Counter代码生成器一、代码生成器链接http://outputlogic.com/二、工具链接CRC Generate Scrambler Generate LFSR Generate
时序图绘制工具 --- TimeGen使用方法总结 TimeGen使用方法总结 前言:TimeGen是一款专门用于绘制时序图的软件,绘图后可直接选中复制到WORD文档中就是矢量图,能够快速生成时序图,再也不用使用visio或者word画时序图了。一、TimeGen功能介绍具有矩形或圆形边缘的轮廓文本框 要选择多个文本框的能力(按住Ctrl键),或按Ctrl + A TimeGen官方版支持更改所有选定的文本框的字体或大小与一个命令 按Alt键的同时使用箭头键精细控...
一文读懂贝叶斯原理(Bayes‘ theorem) 一文读懂贝叶斯原理(Bayes' theorem) 前言:贝叶斯定理是18世纪英国数学家托马斯·贝叶斯(Thomas Bayes)提出得重要概率论理论。以下摘一段 wikipedia 上的简介:一、简介 所谓的贝叶斯定理源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有 N 个白球,M 个黑球,你...
高斯分布与正态分布 高斯分布(Gaussian distribution) 正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由棣莫弗(Abraham de Moivre)在求二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影...
[DV]验证工程师的自我修养 验证工程师的自我修养作者:路桑 链接:https://www.zhihu.com/question/26109157/answer/445562251 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1.1 验证师的培养 我们之前针对验证师的“自我修养”提出了与技术和项目有关的要素,也明白了验证师需要得到多方面的锻炼。在这些因素背后,通过日常的观察,我们可以发现优秀验证...
[Perl]Perl匹配非空白字符[^\s] Perl匹配非空白字符在Perl中,[^\s]代表非空白符。 [^\s]+表示一次或多次匹配非空白符。 ^在括号[]外时表示开始,即行首。 ^在括号[]内时表示将第一位取反,所以\s是空白,在括号内[^\s]就是非空白。...
[Verilog]中断(IRQ)控制模块开发 中断(IRQ)控制模块开发 前言:中断服务是ASIC设计过程中非常重要的一个模块,使用非常广泛,本文将总结一些常用的IRQ设计方案。一、中断生成模块开发实例module cm_slv_dec_irq_gen( input rst_b, input bclk_ck, input wire rg_irq_function_on, input wire ...
[SVA]SystemVerilog Assertion Property开发技巧总结 SystemVerilog Assertion开发技巧总结一、在property中可以使用if-else条件语句如下面的例子,根据misc_phy_12g_rx的取值,选择不同的判断语句property ck1_en_rose_chk(); @(posedge clk) disable iff(~rst_n) ad_pn_ck1en & (current_state !== ST_IDLE) |->...
[Verdi]Verdi command --- UCLI Verdi command --- 命令行控制Verdi 前言:Verdi单步调试该怎么用?Verdi怎么dump Wavefrom?诸如此类的问题其实都可以通过ucli(Unified Command-line Interface)来实现。UCLI为Synopsys验证产品提供一组通用命令,通过UCLI你可以执行任意TCL(Tool Command Language)命令。本文将介绍几个ucli使用的案例。一、参考手册 uc...
Verdi APP简介 --- 常用Verdi App使用案例总结 Verdi APP简介 --- 常用Verdi App使用案例总结 前言:Verdi APP是一组轻量级的小工具,其实就是一系列的脚本,可以帮我们抽出Design中的某些的定的内容,比如:IO、Hierarchy、Register Value等。本文就列举一些Verdi APP的使用案例。一、Verdi APP Overview1.1 Verdi APP可以做什么?Design Manipulation▪PortTieConst / ...
模拟电路设计入门系列 --- 巧学系列 模拟电路 --- 巧学系列一、 模拟电路教材二、二极管、三极管、晶体管三、电阻、电容工作原理及经验技巧四、电感相关知识五、运算放大器经验技巧六、开关电源七、电路识图经验技巧八、模拟电路设计经验及技巧九、电路测量、识别、诊断经验技巧十、模电巧文通灵秘学...
CMOS模拟电路设计经典书籍介绍 ---看完这些模电书,那离大佬就不远了 CMOS模拟电路设计经典书籍介绍 ---看完这些模电书,那离大佬就不远了 前言:模电的书遍地都是,但是真正要找干货,还要看几本经典的书。作为一名少有的程序媛,我今天在这里推荐程序员一致认可的好书,只不过都是老外写的,要啃起来有点费劲。01、模拟集成电路的分析与设计英文书名《Analysis and Design of Analog Integrated Circuits》,...
[SoC]SOC基本验证Flow总结 SOC基本验证Flow总结一、ISO Clamp Value CheckFlow1.1 Why do we need ISO clamp ?When design power down , the output signal is unknown. To avoid the other’s power on design get this unknown value. 1.2iso clamp value ...
Verdi Utility使用总结 Verdi Utility使用总结一、Verdi Utility1.1.how to submit job to run verdi utility?If design is big, need submit job to run verdi utility CMD:utilq <verdi_utility> [options]1.2.fsdbdebugFor dumping the...
[SV]SystemVerilog随机加权决策(分支)--- randcase SystemVerilog随机加权决策(分支)--- randcase一、Randcase syntaxrandcase randcase_item : statement; ...endcase1.1.randcase的权重为常数 关键字randcase引入了一个case语句,该语句随机选择它的一个分支。randcase_item表达式是组成分支权重的非负整数值。一个项目的权重(randcase_item)除以...
带宽、特征频率、截止频率、-3dB什么意思 带宽、特征频率、截止频率、-3dB一、-3dB带宽定义和理解-3dB带宽指幅值等于最大值的二分之根号二倍时对应的频带宽度。幅值的平方即为功率,平方后变为1/2倍,在对数坐标中就是-3dB的位置了,也就是半功率点了,对应的带宽就是功率在减少至其一半以前的频带宽度,表示在该带宽内集中了一半的功率。3dB--指的是比峰值功率小3dB(就是峰值的50%)的频谱范围的带宽;6dB--同上,6dB对应的是峰值功率的25%。...
取整函数 --- 以Python为例 取整函数 --- 以Python为例 前言:常见的取整方法有三种,分别是向上取整(进一法)、向下取整(去尾法)、四舍五入。本文以Python3为例介绍上述三种函数的用法。一、向上取整math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此import mathmath.ceil(-0.5)>>> 0math.ceil(-0.9)>>>...
[Linux]TCSH、Perl、Python脚本修改文件权限 TCSH、Perl、Python脚本修改文件权限一、常用的Linux文件权限1.1.权限显示通常从左到右用9个字母显示,每3个字母分为一组,依次表示文件所有者的权限、同组用户的权限、其他用户的权限 读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示 通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执...
[SV]SystemVerilog数据类型、运算、以及运算优先级总结 SystemVerilog数据类型、运算、以及运算优先级总结一、SystemVerilog数据类型和运算符 二、SystemVerilog运算优先级
[Verilog]同步FIFO案例 --- 参数化的module 同步FIFO案例 --- 参数化的module一、同步FIFO设计要点二、同步FIFO范例module cm_slv_dec_sync_fifo #( parameter FIO_DATA_WIDTH = 32'd32, parameter FIO_DATA_WIDTH = 32'd32) ( input fifo_rstb, input ...
[Verilog]在module中使用function Verilog中function的使用一、在module中使用function1.1.计算以2为底的对数function integer clog2(input integer n) //function for parameter to take log2() integer m, o; begin o = n - 1; for(m = 0; o > 0; m =...
第三代半导体将写入“十四五规划”,这些公司有涉及 第三代半导体将写入“十四五规划”,这些公司有涉及 日前,在南京世界半导体大会暨第三代半导体产业发展高峰论坛上,国家新材料产业发展专家咨询委员会委员、第三代半导体产业技术创新战略联盟理事长吴玲透露:国家2030计划和“十四五”国家研发计划都已经明确,第三代半导体是重要发展方向,现在到了动议讨论实施方案的阶段。什么是第三代半导体? 据悉,第一代半导体材料是硅(Si),间接带隙,窄带隙;第二代半导体材料是砷化镓(GaAs),直接带隙,窄带隙;...
第三代半导体材料时代来临,哪些你熟悉的玩家入局了? 分析 | 第三代半导体材料时代来临,哪些你熟悉的玩家入局了? 第三代半导体又称宽禁带半导体,禁带宽度在 2.2eV 以上,主要以碳化硅(SiC)、氮化镓(GaN)为代表的宽禁带半导体材料。相较于以硅(Si)、锗元素(Ge)代表的第一代和以砷化镓(GaAs)、锑化铟(InSb)为代表第二代半导体材料,具有高击穿电场、高饱和电子速度、高热导率、高电子密度、高迁移率等特点和优势。被广泛应用于新能源汽车、轨道交通、智能电网、新一代移动通信、消费类电子等领域,被视为支撑能源、交通...
第一、二、三代半导体的区别在哪里? 第一、二、三代半导体的区别在哪里 前言:半导体原料共经历了三个发展阶段:第一阶段是以硅(Si)、锗(Ge)为代表的第一代半导体原料; 第二阶段是以砷化镓(GaAs)、磷化铟(InP)等化合物为代表; 第三阶段是以氮化镓(GaN)、碳化硅(SiC)、硒化锌(ZnSe)等宽带半导体原料为主。一、半导体材料与器件发展史 在材料领域的第一代,第二代, 第三代 并不具有“后一代优于前一代”的说法。国外一般会把氮化镓、碳...
Coverage分析工具UNR的使用方法总结 Coverage分析工具UNR的使用方法总结module loadsameversion VC/verdi/VCSMX copyUNR folderinto local copy your simulation passed file list under nobackup namedlist_verdi.finto local floder; 4. copy a coverage data base into local...
香港和内地重疾险25种常见重疾定义对比全解析 香港和内地重疾险25种常见重疾定义对比全解析在和客户交流的过程中,我常被问及香港重疾险和内地产品在疾病保障方面究竟哪个更好。首先,我想说三个原则:1、羊毛出在羊身上保险公司不是做慈善的,他们所提供的每一个保障条款,背后都有精算师核算它的成本,最终会由消费者买单。所以不能单纯认为保障的病种越多就越好,或是保障越是全就越好,还要考虑价格因素,最终考虑的是性价比。所以,关键是:花合适的钱,买自己需要的东西;同样价格,我们挑保障更好的。2、相信...
香港中文大学推荐大学期间书单 87本你读过哪些? 香港中文大学推荐大学期间书单 87本你读过哪些? 1 《一百分妈妈》 马以工 2 《一路走来一路读 》 林达 3 《二胡》 陈若曦 4 《人在欧洲》 龙应台 7 《小王子》 圣·修伯理 9 《大汗之国:西方眼中的中国》(The Chan's Great Continent) Jonathan D. Spence 10 《大学之理念》 金耀基 11 《大学道上:教育理想与实践的反思》 郭少棠 12 《文华集》...
[UVM]uvm_heartbeat应用案例(二) Fatal From HeartBeat Monitor / Detecting Inactive condition of the testbench This example is same as the previous example, the comp_a is shown as inactive to the uvm heartbeat so that the uvm heartbeat should detect the same. As mentioned b...
[UVM]uvm_heartbeat应用案例(一) uvm_heartbeat应用案例一、将uvm_heratbeat逻辑添加到测试台中The testbench in the below example consists of a component comp_a In the run phase of comp_a, a loop is running with a delay of 50 This example shows the implementation of the u...
[UVM]uvm_heartbeat简介 uvm_heartbeat Heartbeats provide a way for environments to easily ensure that their descendants are alive. or in other words, the uvm_heart beat catches the deadlock or hang states of the verification compon...
衰减3dB是什么意思 衰减3dB是什么意思一、基本定义 dB(Decibel,分贝) 是一个纯计数单位,本意是表示两个量的比值大小比较,没有单位。 在工程应用中经常看到貌似不同的定义方式(仅仅是看上去不同)。其实可以分为两类:对于功率,dB = 10*lg(A/B)。 对于电压或电流,dB = 20*lg(A/B)。此处A,B代表参与比较的功率值或者电流、电压值。 天线增益显然可以描述成输出电压与输入感应电压...
[SV]do while循环使用案例总结 SystemVerilog do while循环使用案例总结 前言:在SV中,我们经常会用到do while循环,其基本语法如下图所示。对于do while循环,他至少会被执行一次,然后判断while条件是否成立,如果成立,则继续执行循环体,如果while条件不成立,跳出循环体,继续执行后面的程序。do begin ...end while(condition);一、应用场景一1.1.等待某个信号拉高(或拉低)int...
数模混合仿真实例(数字verilog作为顶层)VCS+XA 数模混合仿真实例(数字verilog作为顶层)VCS+XA 大家都知道对于一颗有点复杂度的芯片而言(比如SOC),通常都会包含数字电路和模拟电路。在设计的初期,也许数字模块和模拟模块是分开设计和仿真的。随着项目的推进,需要将这些模块都集成到一起,形成最终tapeout的芯片。 如何保证数字电路和模拟电路之间的连接性和协同工作的表现呢?做仿真呗~ 废话,当然要做仿真,要做什么仿真呢?包含数字电路和模拟电路的数模混合仿真。...
[Perl]正则表达式中\L、\Q和\E的用法总结 正则表达式中\L、\Q和\E的用法总结 No. 元字符 含义 1 \l 下个字符小写 2 \L 接着的字符均小写直到\E 3 \u 下个字符大写 4 \U 接着的字符均大...
[Verilog-AMS]Analog Processes Analog Processes 模拟语句描述一个连续的进程,这意味着这些语句会随着时间的推移而连续地执行。至少,这是我们的目标,用这种方式思考类比语句是值得的,但实际上,连续地计算语句是不实际的。相反,模拟核会选择模拟过程被评估的时间点,以近似连续评估。Verilog-A/MS模块可以控制选择的时间,但它是有限的。在每个计算点,模拟语句都被完全执行,这意味着模拟进程不会阻塞。例如,电阻器的模拟过程可能如下所示...
Verilog-AMS数据类型---wreal Verilog-AMS数据类型 --- wreal WREAL 是Verilog-AMS支持的一种新的数值模型。WREAL的特殊之处在于它使用有限的浮点数值的点来模拟一条电路工作曲线。而SPICE和Verilog-A的计算结果是一条理论上可以无限精度,包含无限点的的曲线。从某种程度上,WREAL的实现方式类似于Fast-Spice的查表点工作模式,其目的是进一步简化仿真,从而支持更大规模的模拟系统仿真。 使用WREAL的最大...
Verilog-A/AMS系统设计与仿真 Verilog-A/AMS系统设计与仿真 Verilog- ams是Verilog标准的模拟混合信号版本。在开放Verilog国际(OVI)下进行标准化。开发的第一阶段是Verilog-A,描述模拟电路所必需的一组连续时间构造。这是基于SPICE的语言。Verilog-A并不打算直接与Verilog-HDL一起工作。相反,它是一种具有类似语法和相关语义的语言,旨在为模拟系统建模,并与香料级电路仿真引擎兼容。 Veri...
数模混合电路设计中的难点 数模混合电路设计中的难点 数模混合电路的设计,一直是困扰硬件电路设计师提高性能的瓶颈。众所周知,现实的世界都是模拟的,只有将模拟的信号转变成数字信号,才方便做进一步的处理。模拟信号和数字信号的转变是否实时、精确,是电路设计的重要指标。除了器件工艺,算法的进步会影响系统数模变换的精度外,现实世界中众多干扰,噪声也是困扰数模电路性能的主要因素。 在数模混合电路设计当中,干扰源、干扰对象和干扰途径的辨别是分析数模混合设计...
[SV]SystemVerilog学习笔记之接口(interface) 第一章 接口(interface)1.1. 接口的概念接口允许许多信号合成一组由一个端口表示。1.2. 接口声明//接口定义Interfacemain_bus (input logicsig_a, sig_b); //sig_a , sig_b是接口的输入 Wire sig_c ; Logic sig_d; …Endinterface//顶层网表module top (input log...
[SV]SystemVerilog学习笔记之有限状态机(FSM) 第一章 有限状态机建模(FSM,finite state machine)1.1. 使用枚举类型建立状态机模型l 三过程块建模风格:三个过程块分别实现:a.状态转换(always_ff) b.产生下一状态(always_comb) c.产生状态输出值(always_comb)l 使用枚举类型表示状态编码:通过定义enum类型决定状态位数;可显示指定label valuel 使用枚举类型的反向case语句:对应ont-hot编码模式,条件选项是状态编码的某一位l 使用un...
[SV]SystemVerilog学习笔记之过程块 第一章 System Verilog过程块、任务和函数1.1. verilog通用目的always过程块(procedural block)(可综合)always过程块的综合指导方针:组合逻辑1.关键词always后必须跟一个边沿敏感的事件控制(@符号)2.事件控制的敏感表中不能包含posedge和negedge限定词3.敏感表必须列出过程块的所有输入,所谓输入是指在该块读入并且在块外赋值的信号4.过程块中不能包括其他的事件控制5.所有在过程块中赋值的变量必须随所有...
[SV]SystemVerilog学习笔记之struct & union SystemVerilog学习笔记(四)一、结构体(struct)1.1、结构体(struct)结构体声明:结构体默认是变量,也可以声明为线网var struct{ //通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode;} Instruction_Word_var;wire struct{ //结构体线网声明,定义为线网类型时,结构体的所有成员必须...
[SV]SystemVerilog学习笔记之枚举变量 SystemVerilog学习笔记(三)一、用户自定义和枚举数据类型1.1.用户自定义类型(typedef)局部typedef定义:只用于设计的特定部分时,typedef的定义可在module或interface中共享typedef定义:当在多个模型中使用时,typedef的定义可在包中进行, module,interface,program block可以通过导入包子项来使用typedef定义Eg:package chip_types;`...
[SV]SystemVerilog学习笔记之数据类型 SystemVerilog学习笔记(二)一、System Verilog文本值和数据类型1.1.增强的文本值赋值 相对于verilog,SV在文本值赋值时可以:无需指定进制 赋值可以是逻辑1用法:reg [63:0] data;data = '0 //fills all bits on the left-hand side with 0 按位赋值data = '1; // fills all bits on ...
[SV]SystemVerilog学习笔记之packet SystemVerilog学习笔记(一)一、包(package)1.1.package的定义package在package和endpackage这两个关键字之间定义。包中可以包含的可综合的结构有:parameterandlocalparamconstant definitions常量 constvariable definitions变量 typedefuser-defined types用户定义类型 Fully...
[SV]在SVA中使用可变的延时(Variable delay in SVA) 在SVA中使用可变的延时(Variable delay in SVA)一、Static Delaya ##2 b;If signal “a” is high on any given positive edge of the clock, the signal “b” should be high 2 clock cycles after that.二、Variable Delay 使用##v_delay会导致编译错误,因为在断言中使用变量...
[SV]SystemVerilog中队列和数组的约束和随机化 Randomize Queue and Array in SystemVerilog 前言:在大多数队列用例中,队列被用作缓冲区或临时存储。所以不需要太多的随机队列。一、randomize queue size在下面的例子中,队列大小将根据大小约束进行随机化,队列元素将获得随机值:使用rand声明队列 对随机化的队列将得到随机值class queue_rand; rand bit [7:0] qu[$]; cons...
[SV]SystemVerilog数组约束方法总结 SystemVerilog数组约束方法总结 前言:在验证工作中,数组是我们最常用的数据结构之一了,那么如何对数组元素做约束呢?本文将给出一些实战的例子。一、约束动态数组的大小最容易理解的数组约束函数是size(),他可以约束动态数组或者队列的元素个数。class dynamic_size_array(); rand logic [31:0] dyn_array[]; constrain...
[SV]SystemVerilog Solve Before constraints SystemVerilog Solve Before constraints Solve before is the constraint property. solve before is used inside the constraint block to specify the order of constraint solving. If the variables are dependent, due to the bidirection...
[SV]SystemVerilog Priority if SystemVerilog Priority if Priority if evaluates all the conditions in sequential order.In the following conditions simulator issue a run time error/warningNo condition is true or final if doesn’t have corresponding else...
[SV]SystemVerilog数组参数传递及引用方法总结 SystemVerilog数组参数传递及引用总结一、将常数数组传递给task/function如下面的程序,将一个常数数组传递给functionmodule my_array_test(); function array_test(int array[4]); foreach(array[i]) begin $display("array[%0d] = %0d", i, array[i]); end endfu...
[Questa]vsim仿真小程序 [Questa]vsim仿真小程序 前言:本文总结一下使用Menter的EDA工具:Questa进行仿真的方法。基本步骤是分两步,分别是编译和仿真。一、编译命令基本编译命令vlog -64 -sv -ignoresvkeywords -mfcu -asm 其他辅助选项my $command_elba = "vlog -64 -sv -ignoresvkeywords -mfcu -asm ";$comm...
[SV]使用SystemVerilog参数化类编写通用代码模板 使用SystemVerilog参数化类编写通用代码模板 SystemVerilog支持使用参数化类编写泛型代码的模板。在这里,我们将描述组成UVM基类库的代码中的一些设计模式。使用SystemVerilog Universal Verification Methodology(UVM)或任何基于类的方法论编写测试工作台的用户可以从这些技术中学习。 设计模式是针对常见编程问题的优化的、可重用的解决方案。它们不仅仅是类定义或一组例程——它们...
`uvm_do_with中constraint不生效的原因及解决方案 `uvm_do_with中constraint不生效的原因及解决方案 前言:我们通常在上层的top_vseq中启动下层sub_seq或seq_item,出于灵活性或者可重用性的考虑,可能会使用`uvm_do_with对下层的random变量进行约束。为了coding方便以及增强代码可读性的考虑,上层和下层seq变量的名字可能是一样的。但是这样就会造成一个问题:我们会发现如果使用`uvm_do_with(sub_seq, {var_a == var_a});这个约束是无法生...
[SV]SystemVerilog操作符应用总结 SystemVerilog操作符应用总结一、位拼接操作符 位拼接是由一个或多个表达式产生的bit位连接在一起的结果。位拼接应该使用大括号'{}'表示,其中的表达式用逗号分隔。不允许在连接中使用未调整大小的常数。这是因为需要使用连接中每个操作数的大小来计算连接的完整大小。下面的例子连接了四个表达式:{a, b[3:0], w, 3'b101};上面的例子与下面的例子是等价的:{a, b[3], b[2], b[1],...
[DV]Debug simulation hang的一些技巧 Debug simulation hang的一些技巧 前言:作为DV,经常碰到各种simulation hang住的情况,比如使用wait忘了加delay、forever下面的blocking语句放在了if()语句里面,但是if()表达式不成立等等,有时候很难通过打log来定位导致Simulation Hung住的代码段。本文将分享一些Debug Simulation Hung住的技巧一、基本方法 在初次起环境的时候...
[VCS]Condition Coverage收不全的问题及解法 Coverage Options In Compile/Simulation一、Common option Option description -cm line+cond+fsm+tgl+branch+assert line : Enable collecting line or statement coverage cond :Enable collectingcon...
[VCS]VCS编译及仿真时间分析及优化方法 VCS编译及仿真时间分析及优化方法 前言:VCS提供了一套对编译时间和仿真时间分析优化的工具,针对不同的env,可能时间消耗占比不太一样,通过simulation profile information分析可以为加速提供帮助。本文将介绍该工具的用法。一、Compile & Simulation Efficiency1.1、使用simprofile 示例compile option: -lca -simprof...
TCSH入门教程 --- tcsh从入门到精通 TCSH入门教程 简介:TCSH不同于其他的shell(例如bash),因为控制结构更符合程序设计语言的格式。例如TCSH的test条件的控制结构是表达式,而不是linux命令,得到的值是逻辑值true或false,TCSH的表达式与C语言中的表达式基本相同。一、TCSH变量、脚本、参数 用户可以在shell中定义变量、为变量赋值以及引用脚本参数。TCSH使用set、@、setenv...
[Vmware][RHEL8]RedHat Enterprise 8.2网络配置 RedHat Enterprise 8.2网络配置一、RHEL网络配置方法 1.1、在rhel8上,有3种方法进行网络配置1. 手工配置ifcfg,通过NM来生效 2. 通过NM自带工具配ip,比如nmcli 3. 手工配置ifcfg,通过传统network.service来生效建议:推荐使用上述第1种网络配置方法(手工配置ifcfg,通过NM生效),因为这样既兼容了传统的ifcfg配置,又能熟悉nmcli。...
Linux三剑客(grep、sed、awk)详解 Linux三剑客(grep、sed、awk)详解 前言:本文主要介绍一下Linux中最重要的三个命令,他们在业界被誉为“三剑客”,它们分别是:awk,sed,grep。它们三个侧能的功能不同,grep擅长查找功能,sed擅长取行和替换,awk擅长取列。下面分别介绍三者的主要option和应用实例。一、文本过滤工具grep(egrep)grep [OPTIONS] PATTERN [FILE...]1.1、主要Option-...
[Verdi]Verdi使用方法技巧总结 Verdi使用方法技巧总结一、下载波形(Dump fsdb)1.1、基本用法$fsdbDumpfile(file_name, file_size(MB)) $fsdbDumpvars(depth, instance, options)参数介绍:Depth:0: all signals in all scopes. 1: all signals in current scope. 2: all sig...
[xrun]Cadence Xcelium仿真环境搭建及常用Option总结 Cadence数字电路验证仿真工具IUS和IES 前言:Cadence,有两大验证仿真工具。一个是IUS,一个是IES。IUS是cadence以前的仿真工具,功能略弱。代表工具,ncverilog。官方介绍:IUS(incisive unified simulator)Cadence IUS allows to perform behavioral simulation on Verilog and VHDL code. IES是ca...