基于ESL并采用System C和System Verilog的设计流程
- 格式:pdf
- 大小:420.48 KB
- 文档页数:6
SystemVerilog硬件设计及建模引言在硬件设计领域,SystemVerilog是一种广泛使用的硬件描述语言。
它结合了Verilog HDL和一些现代编程语言的特性,使得硬件设计和建模更加高效和灵活。
本文将介绍SystemVerilog的基本概念和语法,以及如何利用它进行硬件设计和建模。
SystemVerilog基础模块和端口在SystemVerilog中,设计被组织成一个个模块。
每个模块由一个或多个端口组成,其中包含输入端口、输出端口和双向端口。
端口是模块与外部世界之间通信的接口。
以下是一个简单的SystemVerilog模块的示例:module MyModule(input wire clk, input wire rst, input wire A, input wire B, output wire C);// 模块逻辑always @(posedge clk or posedge rst)if (rst)C <= 0;elseC <= A & B;endmodule数据类型SystemVerilog支持多种数据类型,包括基本数据类型(如整数和实数)和复杂数据类型(如数组和结构体)。
它还支持用户自定义数据类型。
以下是一些常用的数据类型示例:•整数类型:int, bit, logic•实数类型:real, time•数组类型:int my_array[8]•结构体类型:typedef struct packed {int x;int y;} my_struct;时序和复位在SystemVerilog中,时序和复位是设计中非常重要的概念。
时序表示硬件的时间顺序行为,比如时钟上升沿触发的操作。
复位用于将设计状态恢复到初始状态。
以下是一个简单的时序和复位示例:always @(posedge clk or posedge rst)if (rst)// 复位逻辑else// 时序逻辑仿真和验证SystemVerilog提供了丰富的仿真和验证功能,以验证设计的正确性。
SystemVerilog语言简介SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型、结构、压缩和非压缩数组、接口、断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力。
SystemVerilog由Accellera开发,它主要定位在芯片的实现和验证流程上,并为系统级的设计流程提供了强大的连接能力。
下面我们从几个方面对SystemVerilog所作的增强进行简要的介绍,期望能够通过这个介绍使大家对SystemVerilog有一个概括性的了解。
1. 接口(Interface)Verilog模块之间的连接是通过模块端口进行的。
为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识。
不幸的是,在设计的早期,我们很难把握设计的细节。
而且,一旦模块的端口定义完成后,我们也很难改变端口的配置。
另外,一个设计中的许多模块往往具有相同的端口定义,在Verilog中,我们必须在每个模块中进行相同的定义,这为我们增加了无谓的工作量。
SystemVerilog提供了一个新的、高层抽象的模块连接,这个连接被称为接口(Interface)。
接口在关键字interface和endinterface之间定义,它独立于模块。
接口在模块中就像一个单一的端口一样使用。
在最简单的形式下,一个接口可以认为是一组线网。
例如,可以将PCI总线的所有信号绑定在一起组成一个接口。
通过使用接口,我们在进行一个设计的时候可以不需要首先建立各个模块间的互连。
随着设计的深入,各个设计细节也会变得越来越清晰,而接口内的信号也会很容易地表示出来。
当接口发生变化时,这些变化也会在使用该接口的所有模块中反映出来,而无需更改每一个模块。
下面是一个接口的使用实例:实际上,SystemVerilog的接口不仅仅可以表示信号的绑定和互连。
使用SystemC设计系统级芯的流程介绍在芯片设计领域,SystemC是一种常用的硬件描述语言,可用于系统级设计。
本文将介绍使用SystemC设计系统级芯的流程,并通过列点的方式进行详细说明。
设计准备在使用SystemC进行系统级芯设计之前,需要做一些准备工作,包括: - 安装SystemC库:首先要确保在计算机上安装了SystemC库。
- 确定系统级芯需求:明确系统级芯的功能及性能要求。
- 设计规划:确定系统级芯的整体架构和模块划分。
SystemC设计流程使用SystemC设计系统级芯的流程可以分为以下几个步骤:1. 创建SystemC项目首先,在合适的目录下创建一个新的SystemC项目。
2. 创建初始框架在项目中创建初始的SystemC框架,该框架可以包含顶层模块和其他需要的子模块。
3. 抽象设计在SystemC中,通过抽象设计将系统级芯的功能划分为多个模块,每个模块负责一个特定的功能。
可以按照自顶向下的方式进行设计,先设计整个系统的顶层模块,再分别设计其下属的子模块。
4. 模块接口设计设计每个模块的接口,包括输入输出端口和信号通道。
根据系统级芯的功能需求,合理设计模块之间传递数据和控制信息的接口。
5. 模块实现根据抽象设计和模块接口设计的结果,开始实现每个模块的功能。
使用SystemC提供的语言特性和库函数来编写模块的行为和功能。
6. 仿真测试完成每个模块的实现后,进行系统级芯的仿真测试。
使用SystemC提供的仿真器,对整个系统进行功能验证和性能评估。
可以编写测试程序来模拟实际场景,验证系统级芯的正确性和性能。
7. 优化调试在仿真测试过程中,可能会发现一些问题或者性能瓶颈。
根据测试结果,进行优化和调试工作,并进行多轮的仿真测试,直到系统满足设计要求。
8. 集成部署当系统级芯的设计完成后,可以将其集成到整个硬件平台中。
根据具体的系统要求,进行硬件平台的集成和调试工作。
结论使用SystemC进行系统级芯的设计可以帮助我们快速构建复杂的芯片系统,并进行功能验证和性能评估。
verilog的流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 设计规划确定设计目标和功能要求。
制定模块划分和接口定义。
第1章EDA技术概述本章简要介绍EDA技术、EDA工具、FPGA结构原理及EDA的应用情况和发展趋势,其中重点介绍基于EDA的FPGA开发技术的概况。
考虑到本章中出现的一些基本概念和名词有可能涉及较多的基础知识和更深入的EDA基础理论,故对于本章的学习仅要求读者做一般性的了解,无须深入探讨。
因为待读者学习完本教程,并经历了本教材配置的必要实践后,对许多问题就会自然而然地弄明白了。
不过需要强调的是,本章的重要性并不能因此而被低估。
1.1 EDA技术现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA (Electronic Design Automation)技术。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言(Hardware Description Language,HDL)为系统逻辑描述手段完成的设计文件。
它自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的主要工作仅限于利用软件的方式来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。
EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC测试和封装以及FPGA/CPLD(Field Programmable Gate Array/Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术等。
因此EDA技术为现代电子理论和设计的表达与实现提供了可能性。
正因为EDA技术丰富的内容及其与电子技术各学科领域的相关性,其发展的历程同大规模集成电路设计技术、计算机辅助工程、可编程逻辑器件,以及电子设计技术和工艺是同步的。
ISE设计流程范文一、引言ISE(Integrated System Environment)是一种功能强大的电子系统设计工具,可用于设计和验证集成电路(IC)和程序可编程门阵列(FPGA)等复杂系统。
本文将介绍ISE的设计流程范文,以帮助读者理解ISE的使用方法和设计流程。
二、设计流程概述ISE的设计流程包括项目设置、RTL设计、综合、实施和验证等几个主要阶段。
在项目设置阶段,用户需要创建一个新项目并设置设计参数。
在RTL设计阶段,用户将设计需求翻译为硬件描述语言(HDL)代码并进行功能验证。
在综合阶段,用户将HDL代码转换为门级网表,并进行时序优化和约束设置。
在实施阶段,用户将门级网表映射到目标设备,并生成最终的配置文件。
最后,在验证阶段,用户将验证设计是否满足预期功能,并进行性能分析和调优。
三、项目设置在ISE中创建新项目时,用户需要选择要设计的设备类型、工程目录和项目名称等参数。
设备类型将影响后续的综合和实施阶段,因此需要根据实际需求选择合适的设备。
工程目录用于保存设计文件和生成的中间文件,用户需要选择一个合适的目录路径,并创建一个新的项目文件夹。
项目名称用于标识项目,可以根据实际需求进行命名。
设置完成后,用户可以开始进行RTL设计。
四、RTL设计RTL设计是ISE设计流程的核心阶段,用户需要将设计需求转化为HDL代码,并进行功能验证。
RTL设计可以使用Verilog、VHDL或SystemVerilog等硬件描述语言来实现。
用户需要根据设计需求,编写相应的代码,并进行模块化设计。
在设计过程中,用户需要合理使用寄存器、组合逻辑和时序逻辑等元件,以满足设计要求。
完成RTL设计后,用户需要进行功能验证,即通过仿真和测试来验证设计是否满足预期的功能和性能。
五、综合综合是将HDL代码转换为门级网表的过程,它将具有不同功能的模块合并为一个整体,优化逻辑电路结构,并对时序进行约束和优化。
在综合过程中,用户需要提供时钟频率和约束文件等参数,以便综合工具可以进行时序优化。
IC设计流程及各阶段典型软件IC设计流程是指整个集成电路设计的整体过程,包括需求分析、系统设计、电路设计、物理设计、验证与测试等阶段。
每个阶段都有其典型的软件工具用于支持设计与开发工作。
本文将详细介绍IC设计流程的各个阶段及其典型软件。
1.需求分析阶段需求分析阶段是集成电路设计的起点,主要目的是明确设计目标和规格。
在这个阶段,设计团队与客户进行沟通和讨论,确定设计的功能、性能、功耗、面积等要求。
常用软件工具有:- Microsoft Office:包括Word、Excel、PowerPoint等办公软件,用于编写设计需求文档、文档整理和汇报。
2.系统设计阶段系统设计阶段主要是将需求分析阶段得到的设计目标和规格转化为可实现的电路结构和算法设计。
常用软件工具有:- MATLAB/Simulink:用于算法设计和系统级模拟,包括信号处理、通信系统等。
- SystemVerilog:一种硬件描述语言,用于描述电路结构和行为。
- Xilinx ISE/Vivado:用于FPGA设计,进行电路逻辑设计和Verilog/VHDL代码的仿真和综合。
3.电路设计阶段电路设计阶段是将系统级设计转化为电路级设计。
常用软件工具有:- Cadence Virtuoso:用于模拟和布局设计,包括原理图设计、电路模拟和布局与布线。
- Mentor Graphics Calibre:用于DRC(Design Rule Checking)和LVS(Layout vs. Schematic)设计规则检查和布局与原理图的对比。
4.物理设计阶段物理设计阶段主要是将电路级设计转化为版图设计,并进行布局布线。
常用软件工具有:- Cadence Encounter:用于逻辑综合、布局和布线。
- Cadence Innovus:用于布局布线和时钟树设计。
- Mentor Graphics Calibre:用于DRC和LVS设计规则检查和验证。
[硬件描述语言]基于SYSTEM C语言的FPGA设计方法摘要:随着VLSI的集成度越来越高,设计也越趋复杂。
传统的设计方法如原理图输入、HDL语言描述在进行复杂系统设计时,设计效率往往比较低。
特别是在算法由软件转化为硬件的环节上,传统的设计方法的效率不是很高,设计者往往要耗费大量的时间和精力手工进行算法的转化。
为解决这些问题,一种新的系统级的设计方法SYSTEM C被提出。
SYS TEM C是一种方法,也是一个C++库,用SYSTEM C可以很方便地实现一个软件算法的硬件实现,以及完成一个系统级的设计。
关键词:System C;硬件描述语言;FPGA一、概述随着VLSI的集成度越来越高,设计也越趋复杂。
一个系统的设计往往不仅需要硬件设计人员的参与,也需要有软件设计人员的参与。
软件设计人员与硬件设计人员之间的相互协调就变的格外重要,它直接关系到工作的效率以及整个系统设计的成败。
传统的设计方法没有使软件设计工作与硬件设计工作协调一致,而是将两者的工作割裂开来。
软件算法的设计人员在系统设计后期不能为硬件设计人员的设计提供任何的帮助。
同时现在有些大规模集成电路设计中往往带有DSP Core或其它CPU Core。
这些都使得单纯地用原理图或硬件描述语言来设计、仿真这么复杂的系统变得十分困难。
System C就是在这些矛盾的背景下提出的。
它的出现为复杂的系统设计提供了一条有效的解决途径。
System C是由Synospy Inc.提出的,目前最新的版本为V2.0。
它提出的目的就是以一种系统设计的思想进行系统设计。
它将软件算法与硬件实现很好的结合在一起,提高了整个系统设计的效率和正确性。
System C是一个C++库,也是一种使设计者可以有效地设计出一个软件算法的准确循环模型,硬件结构以及系统级设计的方法。
设计者可以用System C开发工具或在标准C++开发工具中加如System C库制作系统级模型,快速地仿真和优化设计,以及研究不同的算法,并且为硬件和软件设计人员提供一个设计系统的可执行规范。
基于SystemC和SystemVerilog的联合仿真平台设计卢艳君【摘要】采用SystemC建模高抽象级模型、SystemVerilog进行验证工作,是解决验证工作量随着SoC复杂度提高而增加问题的有效手段.为了实现两种语言的联合仿真,提出了一种基于SystemC和SystemVerilog的联合仿真平台的实现,平台采用UVM验证方法学,采用标准化的组件结构与TLM通信方案,采用官方的UVMC库解决了SystemC与SystemVerilog之间的数据通讯问题,能够产生定向或约束性的随机激励.实际在UVM验证平台中完成对于AHB主设备接口的验证,结果显示,所设计的平台可以行之有效地实现联合仿真.【期刊名称】《黑龙江科技信息》【年(卷),期】2017(000)027【总页数】3页(P16-18)【关键词】SystemVerilog;SystemC;UVMC;联合仿真【作者】卢艳君【作者单位】广州民航职业技术学院,广东广州 510403【正文语种】中文随着SoC技术的不断发展,设计的复杂程度不断提高,并且新型的IP核设计流程、软件件协同仿真等机制的出现,使得IC的验证复杂度大大增加,验证已经占用整个IC开发流程的70%左右[1]。
针对IC行业发展的问题,新型的硬件描述与验证语言得以应用,使用SystemC语言进行硬件建模,同时基于SystemVerilog进行验证工作的方案越来越流行,其中SystemC可以提供事务级、高抽象度的建模方法,而应用SystemVerilog可以利用灵活的机制以及强大的进行规范而全面的验证,各自具有其独有的特点,两种语言二者结合起来,可以提高效率,缩短开发时间、增强验证效果。
然而,两种语言之间存在数据以及控制通信的障碍,因此如何解决二者的适配问题至关重要。
针对这一问题,本文提出了一种基于UVMC的联合仿真平台实现,能够很好的解决两者的适配问题。
SystemVerilog与SystemC之间适配的实现,其根本是缘于硬件描述语言(HDL,Hardware Description Language)与软/硬件协同设计语言(S/HCD,Software/Hardware Co-Design)之间的语法等效性。
芯片验证策略六部曲验证的策略篇之一:设计的流程通过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线:芯片功能的细分不同人员的任务分配即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。
如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL语言描述再到最后的门级网表。
而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述TLM(事务级模型,transaction level models)。
TLM一般会在早期用于构建硬件的行为,侧重于它的功能描述,不需要在意时序。
同时各个TLM模型也会被集成为一个系统,用来评估系统的整体性能和模块之间的交互。
同时TLM模型在早期的设计和验证中,如果足够准确的话,甚至可以替代验证人员的参考模型,一方面为硬件设计提供了可以参考的设计(来源于系统描述侧),一方面也加速了验证(无需再构建参考模型,而且TLM 模型足够准确反映硬件描述)。
TLM模型的需求和ESL开发早期的芯片开发模式是遵循先从系统结构设计、到芯片设计制造、再到上层软件开发的。
但随着产品开发的压力,一方面我们需要让系统人员、硬件人员和软件人员都保持着充沛的工作量,同时对于一个芯片项目而言,我们也希望硬件人员和软件人员可以尽可能的同时进行开发。
这听起来怎么可能?毕竟芯片还没有制造出来,没有开发板怎么去构建软件呢?在这里我们系统结构人员会在早期构建一个高抽象级的系统,同时该系统必须具备该有的基本功能和各模块的接口保持信息交互,通过将功能描述变成可运行的系统,让硬件人员和软件人员可以在早期就利用该系统进行硬件参照和软件开发。
这种可以为复杂系统建立模型,让多个流程分支并行开发的方式被称作ESL(电子系统级,electronic system-level)开发。
传统的系统设计流程传统的系统设流程是瀑布形式(waterfall)开发的,这种顺序开发的方式存在明显的边界:时间边界:不同的开发子过程之间是保持顺序执行的,几乎没有可以交叠的空间来缩短整体的项目交付时间。
具备借助C++大量的专家,采用这一语言方便地来加快工作。
关于SystemC的典型使用情况,根据最近有关SystemC的出版物以及各项调查中得知,例
如SystemC用户中的绝大多数正使用这种语言来执行建模(68%)、体系架构开发(68%)、事务处理级建模(56%)和硬件/软件协同仿真(56%)。
SystemC最初在OSCI(开放SystemC发起组织)中发展而来,它的语言参考手册(LRM)最近已经获批成为IEEE 1666标准(见参考文献[1])。
SystemVerilog
SystemVerilog是一种相当新的语言,它建立在Verilog语言的基础上,并新近成为下一代硬件设计和验证的语言。
SystemVerilog结合了来自
Verilog、VHDL、C++的概念,还有验证平台语言和断言语言,也就是说,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来。
由于拥有这样的概念以及它
与Verilog的向上兼容性,使其对于进行当今高度复杂的设计验证的验证工程师具有相当大的吸引力。
能够采用 SystemVerilog进行验证的另一项成功因素是方法学手册和架构的更早可用性,例如在SystemVerilog的验证方法手册(VMM)(见参考文献[2])中所描述的验证平台方法(这一方法是由ARM和Synopsys合作开发的)。
上述这些特点,以及SystemVerilog是一项得到了所有主要EDA供应商支持的IEEE标准的事实,使得SystemVerilog实质上成为了硬件设计和验证的首选语言。
SystemC与SystemVerilog特点比较
就SystemC和SystemVerilog这两种语言而言, SystemC扩展了C++在硬件方面的适用范围,
而SystemVerilog扩展了Verilog在基于对象和验证平台方面的适用范围。
而这两种语言均支持诸如信号、事件、接口和面向对象的概念,但每一种语言又均拥有自己明确的应用重点:
● SystemC对于体系架构开发编写抽象事务处理级(TL)模型、或执行建模来说最为有效,特别是对于具有很强C++实力的团队和有基于C/C++ IP 集成要求(如处理器仿真器),以及为早期软件开发设计的虚拟原型来说,更是如此。
● SystemVerilog对于RTL、抽象模型和先进的验证平台的开发来说最有效率,因为它具备了执行这方面任务所需的基础架构,例如受限制随机激励生成、功能覆盖或断言。
● SystemVerilog显然是描述最终的RTL设计本身的首选语言,不仅在于其描述真实硬件和断言的能力,还在于对工具支持方面的考虑。
这并不意味着每种语言不可以用在不同的应用中。
实际上,SystemC可以用于验证平台和描
述RTL结构,而SystemVerilog也可以用于编写高层事务处理级模型。
但是,每一种语言都用于自己的重点应用时,它们可以达到最佳的效率。
这点对于复杂的项目特别适用,在这种项目中,不同的任务分属于不同的组,通常有不同的技能要求。
注重实效的解决方案以及符合设计团队的多种技术要求的方法是同时使用SystemC和SystemVerilog来开发和验证当今设计流程需要的虚拟原型的事务处理级模型。
集成的仿真环境
将SystemC和SystemVerilog集成在同一个解决方案中,归根结底是需要提供混
合SystemC和SystemVerilog的仿真和调试环境。
这项集成的核心在于能够直接
从SystemVerilog任务中调用SystemC成员的能力,反之亦然,可以从SystemC成员中直接调用SystemVerilog任务。
很明显,这样就要求在SystemC和SystemVerilog的时间概念之间达到同步。
为了建立SystemC和SystemVerilog的高效集成解决方案,让诸如信号和事务处理这样的基层概念在语言设计中,尽管已经在各自的语言中进行了各自方面的优化,在语义上又能够跨越语言分界实现有效的映射。
实际上,SystemC和SystemVerilog的标准化组织,OSCI和 Accellera,已经认识到在这两种语言之间建立有效接口连接机制的需求。
SystemC和SystemVerilog集成的核心支持了混合层级结合的建模,而有能力创建部分处于事务处理级和部分处于具体硬件级的仿真模型。
因此,集成让SystemC和SystemVerilog能够在不同的抽象层级上进行通讯。
一个典型的应用实例是将一个SystemVerilog RTL模块集成到整个系统的一个SystemC模型中,例如,为了实现早期集成检查。
由于SystemC典型情况下应用在事务处理级,就有必要使用一个作为抽象层级之间桥梁的适配器(图3)。
这些适配器的目的在于将事务处理转换成信号操作,而反之亦然。
这样,就可以让设计的一部分在事务处理层次上进行仿真,而另一些部分在具体硬件层级上进行仿真。
采用这种方法,设计人员拥有对于仿真具体层级的完全控制。
这些适配器可以用SystemC或以SystemVerilog(图3)来编写。
使用一项SystemC适配器是相当直接的方式,并且以将 SystemC信号映射到SystemVerilog信号为基础,反之亦然。
而
以SystemVerilog来缩写转换器时,典型情况下能够提供更高的性能,但要求
在SystemC与SystemVerilog之间建立事务处理级接口。
SystemC与SystemVerilog之间的事务处理级接口
在System
C中,将通讯与功能区隔开来的目的导致了接口概念的形成。
在SystemVerilog中,与接口类似的概念也进行了设计。
虽然 SystemVerilog接口和SystemC接口并不完全一致,它们在语言上具有足够的匹配度,能够提供这两种语言之间的有效事务处理级连接。
SystemVerilog接口是一种能够将信号捆绑在一起的结构,并且具有与SystemC接口完全一样的接口方法。
通过使用SystemVerilog基于DPI的服务层,验证引擎可以直接将SystemC接口映射在SystemVerilog接口上,从而可以从 SystemVerilog验证平台中直接调用SystemC事务处理级模型。
例1所示为在参考文献[3]中所述的以SystemC编写的simple_bus的模块接口部分。
它描述了接口方法burst_read。
而 simple_bus的整个代码可以在任何SystemC 2.x版本的安装版本中找到。
但是,simple_bus是如何实现此接口方法的,例如,使用了什么样的总线带宽或使用了哪一类型的仲裁,对于该接口方法的调用者来说都是不可见的,因此,可以在体系结构开发中很方便地进行改变。
例2所示为simple-bus的一个SystemVerilog接口部分,这个总线可以直接映射到如例1所示
的SystemC接口。
为了确保 SystemVerilog接口向SystemC成员的正确映射,其实现通过一
个SystemVerilog的直接过程接口(DPI)服务层来完成。
这样就可以实现如例3所示的从SystemVerilog验证平台中直接调用SystemC对象的接口方法。
有了这种能力,验证团队就可以充分利用SystemVerilog的验证平台技术来验证SystemC事务处理级模型,并可以使用SystemC事务处理级模型作为硬件验证流程的参考模型,这点在图4中进行了
概略的描述。
此外,SystemVerilog功能覆盖和断言可以用于实现完整的由覆盖率驱动的事务处理级模型的验证解决方案,为SystemC模型提供新型和前所未有的验证能力。
Synopsys的Discovery验证平台是这类集成验证环境最好的实例之一,它同时集成了
对SystemC和SystemVerilog的支持。
它提供了高性能的RTL验证,包括仿真和形式分析、体系架构开发以及提供一个对广泛的测试平台所需的基础支持,来处理事务处理级建模的验证。
通过观察目前的SoC设计,我们可以大致了解为什么ESL工具和方法在控制设计成本和帮助准时发布产品方面起到了关键性的作用,并且了解到那些影响到SoC性能和成本的关键性决策是在项目早期通过采用事务处理级建模方法建立的虚拟原型做出的。
SystemC是一种非常适合于创建、仿真和分析设计的事务处理级模型的语言。
SystemVerilog是理想的硬件实现语言。
SystemC和 SystemVerilog的良好结合能支持混合(事务处理和硬件)模型。
此外,这项结合让SystemVerilog的强大验证能力能够在事务处理级模型的验证工作中充分发挥,而相同的验证平台还可以适用于硬件验证工作。
SystemC和SystemVerilog结合起来提供了当今先进芯片所需的一套从ESL至RTL设计流程的真正的、基于标准的解决方案。
通过将 SystemC和SystemVerilog结合到一个单一的验证环境中,可以高效地建立和验证分析体系结构所需要的事务处理级虚拟原型,并在设计工作的早期开发内嵌的软件。