当前位置:首页 > 公众号精选 > 芯片验证工程师
[导读]SystemVerilog引入了面向对象的思想。对象句柄为语言提供了一种安全的、类似于指针的机制。类提供了继承和抽象建模的能力,这就将不带有任何类型安全性问题的C函数指针的优点引入到了SystemVerilog中,因此它为Verilog带来了真正的多态性。它包含了数据以及对数据进...

SystemVerilog 引入了面向对象的思想。对象句柄为语言提供了一种安全的、类似于指针的机制。


类提供了继承和抽象建模的能力,这就将不带有任何类型安全性问题的 C 函数指针的优点引入到了 SystemVerilog 中,因此它为 Verilog 带来了真正的多态性。


它包含了数据以及对数据进行操作的成员函数(函数和任务)。类的数据被称为类属性,它的子程序被称为方法,无论是类属性还是方法都是类的成员。类属性和方法结合在一起,定义了某种类型的对象的内容和能力。

由于其继承了面向对象的思想,因此在 SV 中可以定义类,然后例化,例如下面的代码。

class X_mac_env extends uvm_env; X_mac_agent input_agt;//用于向 DUT 发送数据在实例化中,配置为 ACTIVE 模式 X_mac_agent output_agt;//用于向 DUT 接收数据,配置为 PASSIVE 模式 X_mac_reference_model X_mac_model;//实例化 model 和 scoreboard X_mac_scoreboard X_mac_scb;//定义了三个 fifo,用于连接 scoreboard 的两个接口和 reference model 的一个接口  uvm_tlm_analysis_fifo #(X_mac_reg_transaction ) reg_agt_mdl_fifo ;//i_agt<==>ref model  uvm_tlm_analysis_fifo #(eth_frame_transaction ) eth_agt_mdl_fifo ;//i_agt<==>ref model  uvm_tlm_analysis_fifo #(fec_frame_transaction ) X_mac_agt_mdl_fifo;//i_agt<==>ref model  uvm_tlm_analysis_fifo #(X_mac_reg_transaction ) reg_agt_scb_fifo ;//o_agt<==>scb  uvm_tlm_analysis_fifo #(eth_frame_transaction ) eth_agt_scb_fifo ;//o_agt<==>scb  uvm_tlm_analysis_fifo #(fec_frame_transaction ) X_mac_agt_scb_fifo;//o_agt<==>scb   uvm_tlm_analysis_fifo #(X_mac_reg_transaction ) reg_mdl_scb_fifo ;//ref<==>scb  uvm_tlm_analysis_fifo #(eth_frame_transaction ) eth_mdl_scb_fifo ;//ref<==>scb  uvm_tlm_analysis_fifo #(fec_frame_transaction ) X_mac_mdl_scb_fifo;//ref <==>scb extern function new(string name,uvm_component parent); extern virtual function void build_phase(uvm_phase phase); extern virtual function void connect_phase(uvm_phase phase); `uvm_component_utils(X_mac_env)endclass

像在 env 这个类中,就例化了两个 X_mac_agentrefernence model

scoreboard,另外例化了 9 个 fifo,使用十分方便。

.........................................................................

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

面向对象技术 (Object-Oriented Technology)面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。...

关键字: 面向对象 抽象性 封装性

在基于Verilog或VHDL的验证平台中,验证平台和DUT连接在一起,验证平台中包含激励发送和响应监测模块,在仿真的开始DUT和验证平台就被加载到仿真器的内存当中并在整个仿真期间一直存在。也就是说,验证平台和DUT都是...

关键字: System

SV将C语言中的大部分特性包含进去,包括了相当多的数据类型和操作符。1.SystemVerilog支持C语言内建的数据类型。为了避免int和long数据类型的重复带来混淆,在SV中,int是32位的,longint是64...

关键字: C语言 System

将Systemverilog中的数组和队列拿出来单独讲,是因为相对于其他的数据类型,数组和队列与C语言和Verilog语言的数组有着不同的特性。这些特性不仅体现在完全迥异于C语言的定义方式,也体现在其成员函数上。Syst...

关键字: System verilog

SV开辟了一条可以将SV和C语言结合在一起的新途径,通过使用DPI的导入声明,SV语言中可以方便地调用一个C函数。同样SV中的数值可以作为输入值直接输入到C函数中,C函数的返回值也可以直接传递给SV。同样,使用DPI的导...

关键字: System

关注星标公众号,不错过精彩内容来源|果果小师弟在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目,...

关键字: 单片机 面向对象

摘要:在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目,之前的写过相似的代码也无法使用,得重新敲...

关键字: 单片机 面向对象

C和C++的最大区别便是,C++有类,C没有类的概念。单单这一个类使得C缺失很多的东西。好在C有结构体,勉强可以当0.1个类来使用。

关键字: C语言 面向对象

来源:菜鸟教程、立功科技、百度百科 面向对象&&面向过程 1、什么是面向过程编程? 比较官方的解释就是:“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进...

关键字: 面向对象

笔者能力有限,如果文中出现错误的地方,欢迎大家给我指出来,我将不胜感激,谢谢~同时如果各位朋友对于状态机还有不同的想法,笔者也很希望能够互相交流,微信二维码在公众号底部获取。 状态机的概念 有限状态机又称有限状态自动机,...

关键字: 有限状态机 面向对象

芯片验证工程师

85 篇文章

关注

发布文章

编辑精选

技术子站

关闭