自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 SystemVerilog Assertion断言

参考书目:《SystemVerilog Assertion应用指南》、RKV课程。

2024-04-27 09:22:10 1967

原创 Python基础语法合集(极简)

在Python中,可以为实例属性和方法设置私有权限,即设置某个实例属性或实例方法不继承给子类。私有属性和私有变量只能在类里面访问和修改self.kongfu = '[古法煎饼果⼦配方]'print(f'运⽤{self.kongfu}制作煎饼果子')self.kongfu = '[⿊马煎饼果子配方]'print(f'运⽤{self.kongfu}制作煎饼果子')self.kongfu = '[独创煎饼果子配方]'#定义私有属性#定义私有方法。

2024-04-26 22:07:15 806 1

原创 AHB协议

Decoder作用:确定HADDR传输去哪, Decoder处理HADDR的高位,根据高位的不同来决定HSEL,具体取几位取决于Slave的地址范围(假设Slave1有16bit地址,则HADDR的高16bit给Decoder,当某种情况下选中HSEL1,HADDR的低16bit给Slave);Slave之间的地址范围要错开,不能重叠。

2024-01-05 10:25:28 827 1

原创 APB协议

Advanced Peripheral Bus(APB, 先进外设总线)低功耗,接口简单,非流水线每次传输至少两个周期主要用于低速、功耗低的外围。

2024-01-04 20:07:51 1984

原创 UVM入门-组件

对于更复杂的检查要求,可将数据发送至其他验证组件,例如scoreboard、reference model或coverage collector。从uvm_sequencer中获取事务(transaction),经转化在接口中对DUT进行时序激励。uvm_agent作为一个标准单元,在更上层的继承中应该被例化到uvm_env。uvm_env在更高的复用中,可以被其他uvm_env所嵌套。在总线协议或内部信号协议观察时,可以做一些功能和时序的检查。未扩展新的函数,扩展用来通信的端口和变量。

2023-10-27 20:31:18 38 1

原创 UVM入门-核心基类、phase机制、config机制、消息管理

第一个和第二个参数组合起来组成路径(uvm_component实例的指针+相对此实例的路径),第三个参数是传给目标中的哪个成员,第四个参数是设置的变量。,意思就是说:拷贝出来的目标对象的指针和源对象的指针指向的内存空间是同一块空间,浅拷贝只是一种简单的拷贝,让几个对象公用一个内存。将UVM仿真阶段层次化(各个phase的先后执行顺序,处于同一phase中的层次化组件之间的phase的先后关系)通常情况下,消息处理的方式是同消息的严重级别对应的。:低于过滤的开关,该消息会打印出来,否则不会被打印。

2023-10-23 16:11:03 200

原创 UVM入门-factory

验证环境的动产,包含generator、stimulator、monitor、agent、checker/reference model、environment、test等组件在uvm_component的子类中均有对应的组件。UVM验证环境的构成:1.构成环境的层次:用过uvm_component类完成;2.构成环境的属性和数据传输:通过uvm_object类完成。更方便地替换验证环境中的实例或注册了的类型(在UVM中称作覆盖,override),带来了配置的灵活性。对验证环境的共同需求。

2023-10-22 15:53:50 60 1

原创 SV语言-高级话题

显示转换:需要操作符号或系统函数介入,如静态转换和动态转换隐式转换:不需要进行转换的操作:tgt '(src), 不会对转换值做检查类句柄向下转换,即父类句柄转换为子类句柄时,需要$cast()子类句柄赋给父类时,编译器认为合法,但子类句柄和父类句柄调用相同对象时,可能有不同表现$ cast(tgt,src)会检查句柄所指向的对象类型,一旦元对象跟目的句柄是同一类型,或者目的句柄的扩展类,$cast()执行成功返回1,否则返回0。

2023-10-20 14:38:31 55 1

原创 SV语言-覆盖率

用一个反馈环路分析覆盖的结果,决定采取哪种行动达到100%的覆盖率。首选是使用更多的来运行现有的测试程序。当大量种子对覆盖率增长没帮助时,建立。只有在趋势需要的时候才求助于创建测试。

2023-10-19 21:29:37 31

原创 SV语言-线程

线程是独立运行的程序。线程需要触发,可以结束或不结束。并行执行fork…jion —— 等块内所有语句执行完后才继续执行后续fork…jion_any —— 完成第一个语句后(最短),父进程才继续执行,其他线程也继续fork…jion_none —— 调度其块内语句时,父进程继续执行wait fork等待所有子线程结束disable 标签 停止线程disable fork 停止当前线程中衍生出来的所有子线程。

2023-10-19 14:34:35 65

原创 SV语言-随机约束

为什么随机?——为什么约束?——随机什么?——器件配置、环境配置、原始输入数据、协议异常、延时—— 表示每次随机化这个类时,该变量都会赋一个值 (放回)—— 表示周期随机性,即所有可能的值都赋值过后随机值才可能重复(cycle,不放回)rand和randc修饰类的成员变量——只有通过声明rand声明,并在后期通过对象调用randomize()函数才可以随机化变量;只要有一个变量随机化失败,参与此次随机化的所有变量都不会随机化。

2023-10-18 15:09:03 148 1

原创 类与对象、包

父类句柄不能赋给(等号)子类(父类句柄指向不确定是子类还是父类,编译器按最坏的情况-指向父类,而子类范围更大,会出现溢出),不能使用=,使用$cast(s,f),编译时会跳过,在仿真时检查父类句柄的指向,若指向子类,允许转换。类的编译顺序,先编译基本类,再高级类,或,先编译被将来被引用的类,再编译引用之前以编译类的类。静态方法可以使用类的静态变量,可以声明并使用动态变量,但不能使用类的动态成员变量。父类和子类中,可以定义相同名称的成员变量和方法,引用时,按照句柄类型确定作用域。

2023-10-17 17:36:59 24

原创 SV练习 1

有符号:byte、shortint、int、longint、integer无符号:bit、logic、reg、net-type。

2023-10-16 21:05:12 43 1

原创 【学习记录】MCDF实验1

它们的作用扮演每个 channel_slave 通道对应的 stimulator, 发送激励, 因此我们在其模块chnl_initiator 中定义了它的三个方法, 即 set_ name()、 chpl_write()和 chnl_idle()。因此,我们可以将激励方法 chnl_write()封装在新的模块 chnl_ initiator 中, 请同学们下载 tb4.sv, 在接下来开展实验步骤前, 同学们可以将“数组的使用” 环节中添加的代码部分移动到 tb4.sv对应的位置上。

2023-10-16 15:19:56 61 1

原创 verilog循环语句

循环语句verilog中存在4种循环语句,用来控制执行语句的执行次数。1)forever语句2)repeat语句3)while语句4)for语句forever语句必须写在initial中,常用于产生周期性波形,用来作为仿真测试信号forever 语句; 或者 forever begin 多条语句endrepeat语句repeat 语句; 或者 repeat begin 多条语句endwhile语句while(表达式) 语句;

2022-05-07 16:34:39 1342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除