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

    文章

    1327

    浏览量

    109302
  • System
    +关注

    关注

    0

    文章

    161

    浏览量

    36572
  • HDL
    HDL
    +关注

    关注

    8

    文章

    323

    浏览量

    47104
  • 硬件设计
    +关注

    关注

    18

    文章

    346

    浏览量

    44321
  • 验证语言
    +关注

    关注

    0

    文章

    3

    浏览量

    6617

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

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

收藏 人收藏

    评论

    相关推荐

    [启芯公开课] SystemVerilog for Verification

    学快速发展,这些趋势你了解吗?SystemVerilog + VM是目前的主流,未来也将被大量采用,这些语言和方法学,你熟练掌握了吗?对SoC芯片设计验证感兴趣的朋友,可以关注启芯工作室推出的SoC芯片
    发表于 06-10 09:25

    round robin 的 systemverilog 代码

    大家好,我对一个 round robin 的 systemverilog 代码疑惑。https://www.edaplayground.com/x/2TzD代码第49和54行是怎么解析呢 ?
    发表于 03-14 19:16

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

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

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

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

    SystemVerilog哪些标准?

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

    SystemVerilog的断言手册

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:12 20次下载

    基于SystemVerilog语言的验证方法学介绍

    文章主要介绍《VMM for SystemVerilog》一书描述的如何利用SystemVerilog语言,采用验证方法学以及验证库开发出先进验证环境。文章分为四部分,第一部分概述了用
    发表于 05-09 15:22 52次下载
    基于<b class='flag-5'>SystemVerilog</b>语言的验证方法学介绍

    SystemVerilog的正式验证和混合验证

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

    SystemVerilog硬件功能如何进行建模

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

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

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

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

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

    FPGA学习-SystemVerilog语言简介

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

    systemverilog:logic比reg更有优势

    systemverilog协议中,logic定义四态值,即向量(vector)的每个位(bit)可以是逻辑0, 1, Z或X,与verilog协议中的reg很接近。但是logic有个很明显的优势,不允许多驱动。
    的头像 发表于 09-28 17:34 1977次阅读
    <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 429次阅读
    <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 366次阅读
    <b class='flag-5'>SystemVerilog</b>相比于Verilog的<b class='flag-5'>优势</b>