0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SystemVerilog在硬件设计部分有哪些优势

FPGA技术驿站 来源: FPGA技术驿站 2023-10-19 11:19 次阅读

谈到SystemVerilog,很多工程师都认为SystemVerilog仅仅是一门验证语言,事实上不只如此。传统的Verilog和VHDL被称为HDL(Hardware Description Language,硬件描述语言),而SystemVerilog则是HDVL(Hardware Design and Verification Language,硬件设计与验证语言)。由此可见,SystemVerilog也是可以用于硬件设计的,也是有可综合部分的。SystemVerilog本身由3部分构成:

SV-HDL:用于硬件设计,可综合,是可综合Verilog的加强版;

SV-Assertion:断言;

SV-HVL:用于硬件验证,UVM就是利用此发展而来的验证方法学。

下图显示了SystemVerilog与Verilog可综合的部分。

wKgaomUwoFCAH2AVAAIMtBAX5n0432.jpg

至此我们已经澄清了一个事实:SystemVerilog是可以用于硬件设计的。那么相比于Verilog,SystemVerilog在硬件设计部分有哪些优势呢?

从数据类型的角度看,SystemVerilog引入了4值类型logic,这与VHDL的std_logic是相同的。尽管Verilog中的reg也是4值类型,但在端口声明时,有的需要声明为reg,有的需要声明为wire,内部变量定义亦是如此。同时,reg会让很多初学者误以为该变量对应一个寄存器(register),而事实上,只要是always进程或initial中用到的输出变量都要定义为reg类型。使用logic则避免了这种歧义。如下图所示代码片段,输入/输出都定义为logic类型。

wKgZomUwoFCAC8hgAACIAbJ3aos319.jpg

SystemVerilog引入了枚举类型,通过enum定义,也支持用户定义的枚举类型,这使得在描述状态机时更为方便,如下图所示代码片段。同时,SystemVerilog还允许对枚举变量赋值,这样就可以根据场景需要明确指定状态机的编码方式。

wKgZomUwoFCAS6SOAAAMfhgFSLo270.jpg

SystemVerilog支持结构体,带来的好处是可以把相关变量绑定在一起,这样使用起来更为直观方便,如下图所示代码片段。可以对整个结构体赋值,如代码第7行所示,也可以对结构体内某个指定变量赋值。struct允许绑定不同类型的数据,而数组则要求数据类型一致,这是两者的关键区别。

wKgaomUwoFCAf4WRAABCr78x8-s879.jpg

同样地,SystemVerilog也支持用户定义的结构体,这便于代码复用。从代码风格角度看,最好将用户定义的结构体在package中进行声明,避免因编译顺序而导致的错误。

wKgZomUwoFCAT6q7AAAowjmf5Ss199.jpg

SystemVerilog引入了package,这样同一个声明可以被不同模块使用,避免了重复定义,如下图所示代码片段。可以在package中声明参数、结构体、函数等。具体案例可阅读这篇文章。

说说SystemVerilog的Package

wKgZomUwoFCAajUeAADT4g4ToAg582.jpg

SystemVerilog支持packed array,本质上是对vector的增强。如下图所示代码片段。b1是位宽为32的向量,b2本质上也是位宽为32的向量,只是将b2按位域进行分割,如代码第20行所示。这样在引用时更为方便,比如获取b2[1]其实就是获取b1[15:8]。

wKgaomUwoFCATDzZAAAQbBm8_NY692.jpg

对于常规数组,也就是unpacked array,SystemVerilog支持类似于C语言的声明方式,如下图所示代码片段。这两行代码是等效的,显然后者声明更为简洁。

wKgZomUwoFCAUMaRAAAJDoYZrYA611.jpg

另外,SystemVerilog还引入了interface,这对于描述互连较多的模块时更为友好方便,具体案例可阅读这篇文章。

说说SystemVerilog的Interface

wKgaomUwoFCAQyw5AACmYN3abMo930.jpg

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110074
  • System
    +关注

    关注

    0

    文章

    165

    浏览量

    36928
  • HDL
    HDL
    +关注

    关注

    8

    文章

    327

    浏览量

    47376
  • 硬件设计
    +关注

    关注

    18

    文章

    396

    浏览量

    44563
  • 验证语言
    +关注

    关注

    0

    文章

    3

    浏览量

    6620

原文标题:SystemVerilog不只是用于验证(1)

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    做FPGA工程师需要掌握SystemVerilog吗?

    某大型科技公司的招聘网站上看到招聘逻辑硬件工程师需要掌握SystemVerilog语言,感觉SystemVerilog语言是用于ASIC验证的,那么做FPGA工程师有没有必要掌握
    发表于 08-02 20:30

    硬件光线追踪的优势哪些?

    光线追踪面临的关键挑战是什么?硬件光线追踪的优势哪些?
    发表于 05-31 06:53

    SystemVerilog哪些标准?

    SystemVerilog哪些标准?
    发表于 06-21 08:09

    SystemC 和SystemVerilog的比较

    就 SystemC 和 SystemVerilog 这两种语言而言, SystemC 是C++硬件支持方面的扩展,而 SystemVerilog 则继承了 Verilog,并对 Ve
    发表于 08-16 10:52 5367次阅读

    SystemVerilog设计语言

    SystemVerilog 是过去10年来多方面技术发展和实际试验的结晶,包括硬件描述语言(HDL)、硬件验证语言(HVL)、SystemC、Superlog和属性规范语言。它们都从技术和市场的成败中得到了丰富的经
    发表于 09-07 09:55 1173次阅读

    SystemVerilog的正式验证和混合验证

    手册的这一部分探讨了使用SystemVerilog进行验证,然后查看了使用SystemVerilog的优点和缺点。
    发表于 03-29 10:32 24次下载

    SystemVerilog语言介绍汇总

    作者:limanjihe  https://blog.csdn.net/limanjihe/article/details/83005713 SystemVerilog是一种硬件描述和验证语言
    的头像 发表于 10-11 10:35 2390次阅读

    SystemVerilog硬件功能如何进行建模

    本文定义了通常用于描述使用SystemVerilog硬件功能进行建模的详细级别的术语。
    的头像 发表于 03-30 11:42 1717次阅读

    IEEE SystemVerilog标准:统一的硬件设计规范和验证语言

    IEEE SystemVerilog标准:统一的硬件设计规范和验证语言
    发表于 08-25 15:52 1次下载

    使用Verilog/SystemVerilog硬件描述语言练习数字硬件设计

    HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~
    的头像 发表于 08-31 09:06 1690次阅读

    SystemVerilog中的Shallow Copy

    SystemVerilog中的句柄赋值和对象复制的概念是区别的。
    的头像 发表于 11-21 10:32 901次阅读

    FPGA学习-SystemVerilog语言简介

    SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了 C语言 数据类型、结构、压缩和非
    的头像 发表于 12-08 10:35 2147次阅读

    systemverilog:logic比reg更有优势

    systemverilog协议中,logic定义四态值,即向量(vector)的每个位(bit)可以是逻辑0, 1, Z或X,与verilog协议中的reg很接近。但是logic个很明显的
    的头像 发表于 09-28 17:34 2516次阅读
    <b class='flag-5'>systemverilog</b>:logic比reg更有<b class='flag-5'>优势</b>?

    systemverilog:logic比reg更有优势

    systemverilog协议中,logic定义四态值,即向量(vector)的每个位(bit)可以是逻辑0, 1, Z或X,与verilog协议中的reg很接近。但是logic个很明显的
    的头像 发表于 10-26 09:32 1128次阅读
    <b class='flag-5'>systemverilog</b>:logic比reg更有<b class='flag-5'>优势</b>

    SystemVerilog相比于Verilog的优势

    我们再从对可综合代码的支持角度看看SystemVerilog相比于Verilog的优势。针对硬件设计,SystemVerilog引入了三种进程always_ff,always_comb
    的头像 发表于 10-26 10:05 931次阅读
    <b class='flag-5'>SystemVerilog</b>相比于Verilog的<b class='flag-5'>优势</b>