- 博客(19)
- 收藏
- 关注
原创 [脚本]tcl&python在项目中运用
然后在文件夹下再新建一个文本文件,输入:vsim -do start.do再将txt后缀改为bat,即可通过运行该文件自动执行脚本运行仿真vlib:建立目录vmap:映射对应vlog:编译文件vsim:启动仿真。
2023-09-04 23:34:22
475
1
原创 IC验证面试常问题88道
如果拷贝的对象里的元素包含引用(像一个列表里储存着另一个列表,存的就是另一个列表的引用),那浅拷贝和深拷贝是不同的,浅拷贝虽然将原有对象复制一份,但是依然保存的是引用,所以对新对象里的引用里的值进行修改,依然会改变原对象里的列表的值,新对象和原对象完全分离开并没有完全分离开。形式验证主要验证数字IC设计流程中的各个阶段的代码功能是否一致,包括综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真,会花费较长的时间,而形式验证只用几个小时即可完成一个大型的验证。
2023-08-31 00:30:27
1139
原创 [秋招]面经
1、用UVM的意义是什么?UVM的好处在于什么?UVM提供了一套标准的类库,为用户提供了开发建构具有所需的所有基本模块;UVM提供了一套完善的运行机制,从:包括factory机制,config机制,phase机制,objection机制,sequence机制,寄存器抽象层(RAL),事务级建模(TLM)等。2、UVM的重用性通过哪些机制体现?第一,通过factory机制override,但是sv也有。第二,通过callback机制进行重载,可以用于异常激励测试/修正不同项目的差异。
2023-08-31 00:25:14
325
原创 [八股]IC验证80题
UVM(Universal Verification Methodology)是一个标准化的用于验证设计的方法学。其优势包括:重用性、VIP即插即用、通用性、独立于仿真器、支持CDV(coverage driven verification)、支持CRV(constraint random verification)等等factory是一种在验证环境中实例化组件或生成激励时提供更大灵活性的机制。factory机制允许在不修改原始源代码的条件下覆盖现有验证代码创建的对象类型。
2023-08-26 01:58:30
731
原创 [脚本]python自动例化并生成tb文件
re.search:在字符串中搜索匹配正则表达式的子串。re.findall:在字符串中找出所有匹配的字符串。re.match:从字符串开始匹配正则表达式。re.split:使用正则表达式来分隔字符串。re.sub:使用正则表达式进行搜索替换。
2023-08-25 23:46:43
307
1
原创 APB-AHB协议理解&面试常问点
在AHB 总线传输的时候,一次Transfer(元操作)是不能分割和打断的,所以占用着总线的资源。所有的改进措施,都是先完成Transfer(元操作)的基础上再进行提升。完成元操作不代表这个操作必须完全执行完成才可以,而是可以先把这个Transfer(元操作)的流程走完结束掉它,之后用其他的途径再进行操作(比如在从机的回复下,主机回滚到之前的地址操作处再进行相同操作)。占用总线注意!&&从机无法接受命令且不准备释放总线因元操作未完成释放总线&&任务复杂,暂时不能完成和回复任务响应。
2023-08-20 03:18:38
1672
1
原创 AHB Matrix中优先级配置以及仲裁
首先我们要对优先级进行配置,在seq中利用rgm的write函数将优先级作为值写入寄存器,在scb中利用rgm的get函数拿到优先级的值。然后根据寄存器AHB_PLx的个数适配对应的prios[]数组,取另一个空队列mid,开始轮询比较,循环prios数组的大小,如果mid队列为空,那么就将prios[0]存入mid队列,也就是说mid中暂时只有一个值。如果mid队列的大小不为0,就代表当前有存放优先级对应值,那么从索引值1开始,进行逐个比较,要确定访问总线的条件即。
2023-08-14 19:16:34
721
1
原创 数字IC手撕代码——边沿检测
1] 使用verilog设计边沿检测电路[2] 使用verilog设计边沿检测电路[3] 使用verilog设计检测电路。
2023-07-24 11:24:13
90
原创 数字IC手撕代码——饮料机
使用verilog设计电路,完成以下功能:每瓶饮料1.5元,一次只能投入一个硬币,可投入0.5与1.0两种硬币,具有找零功能。一瓶饮料1.5元,一次投入一个硬币,那么饮料机中硬币对应面值最多为2.0元,使用状态机设计电路,根据饮料机中剩余的硬币面值进行状态划分。
2023-07-21 23:13:43
191
1
原创 UVM实战第7章:UVM中的寄存器模型
使用背景:DUT有一组控制端口,通过控制端口,配置DUT中的寄存器,DUT可以根据寄存器的值来改变行为,这组控制端口称为寄存器配置总线。我们需要在参考模型中读取寄存器的值,然后在参考模型对该值输出的transaction做寄存器相同的操作。问题在于如何在参考模型中读取一个寄存器的值?初步设想通过bus_driver向总线发送读指令,并给出要读的寄存器地址。需要启动一个sequence,该sequence发送transaction给bus_driver。
2023-07-18 23:31:20
2439
1
原创 UVM实战第3章:UVM基础
在类的定义中,使用 `uvm_object_utils_begin(class_name) 和 `uvm_object_end 宏来实现类的factory注册。在这两个宏中间,使用 `uvm_field 系列宏注册类中的所有字段(成员变量)。类中的成员变量类型决定了要使用什么样的 `uvm_field 宏:如int型变量,使用`uvm_field_int宏;string型变量,则使用 `uvm_field_string宏等。从UVM通过域的自动化,
2023-07-17 23:36:37
1007
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人