企业管理SystemVerilog语言简介

上传人:s9****2 文档编号:556304820 上传时间:2022-11-22 格式:DOCX 页数:26 大小:70.45KB
返回 下载 相关 举报
企业管理SystemVerilog语言简介_第1页
第1页 / 共26页
企业管理SystemVerilog语言简介_第2页
第2页 / 共26页
企业管理SystemVerilog语言简介_第3页
第3页 / 共26页
企业管理SystemVerilog语言简介_第4页
第4页 / 共26页
企业管理SystemVerilog语言简介_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《企业管理SystemVerilog语言简介》由会员分享,可在线阅读,更多相关《企业管理SystemVerilog语言简介(26页珍藏版)》请在金锄头文库上搜索。

1、SystemVerilog语言简介SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型、结构、压缩和非压缩数组、接口、断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力。SystemVerilog由Accellera开发,它主要定位在芯片的实现和验证流程上,并为系统级的设计流程提供了强大的连接能力。下面我们从几个方面对SystemVerilog所作的增强进行简要的介绍,期望能够通过这个介绍使大家对SystemVerilog有一个概

2、括性的了解。1. 接口(Interface)Veriilogg模块之之间的连连接是通通过模块块端口进进行的。为了给给组成设设计的各各个模块块定义端端口,我我们必须须对期望望的硬件件设计有有一个详详细的认认识。不不幸的是是,在设设计的早早期,我我们很难难把握设设计的细细节。而而且,一一旦模块块的端口口定义完完成后,我们也也很难改改变端口口的配置置。另外外,一个个设计中中的许多多模块往往往具有有相同的的端口定定义,在在Verriloog中,我们必必须在每每个模块块中进行行相同的的定义,这为我我们增加加了无谓谓的工作作量。SysttemVVeriilogg提供了了一个新新的、高高层抽象象的模块块连接

3、,这个连连接被称称为接口口(Innterrfacce)。接口口在关键键字innterrfacce和enddintterffacee之间定定义,它它独立于于模块。接口在在模块中中就像一一个单一一的端口口一样使使用。在在最简单单的形式式下,一一个接口口可以认认为是一一组线网网。例如如,可以以将PCCI总线线的所有有信号绑绑定在一一起组成成一个接接口。通通过使用用接口,我们在在进行一一个设计计的时候候可以不不需要首首先建立立各个模模块间的的互连。随着设设计的深深入,各各个设计计细节也也会变得得越来越越清晰,而接口口内的信信号也会会很容易易地表示示出来。当接口口发生变变化时,这些变变化也会会在使用用该

4、接口口的所有有模块中中反映出出来,而而无需更更改每一一个模块块。下面面是一个个接口的的使用实实例:inteerfaace chiip_bbus; / 定义义接口wiree reead_reqquesst, reaad_ggrannt;wiree 77:0 adddreess, daata;endiinteerfaace: chhip_bussmoduule RAMM (cchipp_buus iio, / 使用接接口inpuut cclk);/ 可可以使用用io.reaad_rrequuestt引用接接口中的的一个信信号endmmoduulemoduule CPUU(chhip_buss io

5、o, iinpuut cclk);.endmmoduulemoduule topp;reg clkk = 0;chipp_buus aa; / 实实例接口口/ 将将接口连连接到模模块实例例RAM memm(a, cllk);CPU cpuu(a, cllk);endmmoduule实际上,SysstemmVerriloog的接接口不仅仅仅可以以表示信信号的绑绑定和互互连。由由于SyysteemVeerillog的的接口中中可以包包含参数数、常量量、变量量、结构构、函数数、任务务、innitiial块块、allwayys块以以及连续续赋值语语句,所所以SyysteemVeerillog的的接口还

6、还可以包包含内建建的协议议检查以以及被使使用该接接口的模模块所共共用的功功能。2. 全全局声明明和语句句在Verriloog中,除了一一个模块块可以作作为模块块实例引引用其他他模块外外,并不不存在一一个全局局空间。另外,Verriloog允许许任意数数目的顶顶层模块块,因此此会产生生毫无关关联的层层次树。SysttemVVeriiog增增加了一一个被称称为$rroott的隐含含的顶级级层次。任何在在模块边边界之外外的声明明和语句句都存在在于$rroott空间中中。所有有的模块块,无论论它处于于哪一个个设计层层次,都都可以引引用$rroott中声明明的名字字。这样样,如果果某些变变量、函函数或其

7、其它信息息被设计计中的所所有模块块共享,那么我我们就可可以将它它们作为为全局声声明和语语句。全全局声明明和语句句的一个个使用实实例如下下:reg errror _fllag; / 全局局变量funcctioon ccompparee (.); / 全全局函数数alwaays (eerroor_fflagg) / 全全局语句句.moduule tesst;chipp1 uu1 (.)endmmoduulemoduule chiip1 (.);FSM u2 (.);alwaays (ddataa)erroor_fflagg = commparre(ddataa, eexpeecteed);endm

8、moduulemoduule FSMM (.);.alwaays (sstatte)erroor_fflagg = commparre(sstatte, exppectted);endmmoduule3. 时时间单位位和精度度在Verriloog中,表示时时间的值值使用一一个数来来表示,而不带带有任何何时间单单位。例例如:foreeverr #55cloock = cloock; 从这一句句中我们们无法判判断5代表的的是5nns? 5pss? 还还是其他他。Veerillog的的时间单单位和精精度是作作为每一一个模块块的属性性,并使使用编译译器指令令tiimesscalle来设设置。使使用这种

9、种方法具具有固有有的缺陷陷,因为为编译器器指令的的执行依依赖于源源代码的的编译顺顺序,编编译器总总是将它它遇到的的最后一一个ttimeescaale设设置的时时间单位位和精度度作为之之后的标标准。那那么,假假如有些些模块之之前没有有使用timmesccalee设置时时间单位位和精度度,这就就有可能能出现同同一个源源代码的的不同仿仿真会出出现不同同结果的的情况。SysttemVVeriilogg为了控控制时间间单位加加入了两两个重要要的增强强。首先先,时间间值可以以显式地地指定一一个单位位。时间间单位可可以是ss、ms、ns、ps或fs。时时间单位位作为时时间值的的后缀出出现。例例如:foree

10、verr #55nscclocck = cclocck; 其次,SSysttemVVeriilogg允许使使用新的的关键字字(tiimeuunitts和timmeprreciisioon)来来指定时时间单位位和精度度。这些些声明可可以在任任何模块块中指定定,同时时也可以以在$rroott空间中中全局指指定。时时间单位位和精度度必须是是10的幂幂,范围围可以从从s到fs。例例如:timeeuniits 1nss; timeepreecissionn10pps;4. 抽抽象数据据类型Veriilogg提供了了面向底底层硬件件的线网网、寄存存器和变变量数据据类型。这些类类型代表表了4态逻辑辑值,通通

11、常用来来在底层层上对硬硬件进行行建模和和验证。线网数数据类型型还具有有多个强强度级别别,并且且能够为为多驱动动源的线线网提供供解析功功能。SysttemVVeriilogg包括了了C语言的的chaar和intt数据类类型,它它允许在在Verriloog模型型和验证证程序中中直接使使用C和C+代码。Verriloog PPLI不不再需要要集成总总线功能能模型、算法模模型和CC函数。SysstemmVerriloog还为为Verriloog加入入了几个个新的数数据类型型,以便便能够在在更抽象象的层次次上建模模硬件。l ccharr:一个个两态的的有符号号变量,它与CC语言中中的chhar数数据类型

12、型相同,可以是是一个88位整数数(ASSCIII)或shhortt innt(Uniicodde);l iint:一个个两态的的有符号号变量,它与CC语言中中的innt数据据类型相相似,但但被精确确地定义义成322位;l sshorrtinnt:一一个两态态的有符符号变量量,被精精确地定定义成116位;l llonggintt:一个个两态的的有符号号变量,它与CC语言中中的loong数数据类型型相似,但被精精确地定定义成664位;l bbytee:一个个两态的的有符号号变量,被精确确地定义义成8位;l bbit:一个两两态的可可以具有有任意向向量宽度度的无符符号数据据类型,可以用用来替代代Ve

13、rriloog的regg数据类类型;l llogiic:一一个四态态的可以以具有任任意向量量宽度的的无符号号数据类类型,可可以用来来替代VVeriilogg的线网网或reeg数据据类型,但具有有某些限限制;l sshorrtreeal:一个两两态的单单精度浮浮点变量量,与CC语言的的flooat类类型相同同;l vvoidd:表示示没有值值,可以以定义成成一个函函数的返返回值,与C语言中中的含义义相同。SysttemVVeriilogg的bitt和其他他数据类类型允许许用户使使用两态态逻辑对对设计建建模,这这种方法法对仿真真性能更更有效率率。由于于Verriloog语言言没有两两态数据据类型,

14、因此许许多仿真真器都通通过将这这种功能能作为仿仿真器的的一个选选项提供供。这些些选项不不能够在在所有的的仿真器器之间移移植,而而且在需需要时用用三态或或四态逻逻辑的设设计中强强制使用用两态逻逻辑还具具有副作作用。SSysttemVVeriilogg的bitt数据类类型能够够极大改改进仿真真器的性性能,同同时在需需要的时时候仍然然可以使使用三态态或四态态逻辑。通过使使用具有有确定行行为的数数据类型型来代替替专有的的仿真器器选项,两态模模型能够够在所有有的SyysteemVeerillog仿仿真器间间移植。SysttemVVeriilogg的loggic数数据类型型比Veerillog的的线网和和

15、寄存器器数据类类型更加加灵活,它使得得在任何何抽象层层次上建建模硬件件都更加加容易。loggic类类型能够够以下面面的任何何一种方方法赋值值:l 通通过任意意数目的的过程赋赋值语句句赋值,能够替替代Veerillog的的regg类型;l 通通过单一一的连续续赋值语语句赋值值,能够够有限制制地替代代Verriloog的wirre类型型;l 连连接到一一个单一一原语的的输出,能够有有限制地地替代VVeriilogg的wirre类型型;由于loogicc数据类类型能够够被用来来替代VVeriilogg的regg或wirre(具具有限制制),这这就使得得能够在在一个更更高的抽抽象层次次上建模模,并且且随着设设计的不不断深入入能够加加入一些些设计细细节而不不必改变变数据类类型的声声明。llogiic数据据类型不不会表示示信号的的强度也也不具有

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号