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

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

3天内不再提示

看一下SystemVerilog中package的使用方法与注意事项

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

谈到package,用过VHDL的工程师并不陌生。实际上,SystemVerilog中的package正是从VHDL引入的,以进一步增强其在系统级的描述能力。我们来看一下SystemVerilog中package的使用方法与注意事项。 SystemVerilog中的package需要在关键字package和endpackage之间进行定义,其包含的内容可以是parameter,localparam,const,typedef,task,function,import,export和time unit。当然,package中也可以包含一些不可综合的用于验证的内容如class。

我们来看一个具体的例子,如下图所示代码片段。代码第2行通过关键字package表明其描述类别,package之后的top_pkg是package的名字。代码第5行至第11行以条件编译的方式结合typedef定义了数据类型。代码第13行通过typedef enum定义了枚举类型。代码第15行到第18行通过typedefstruct定义了结构体。代码第20行至第22行定义了function。代码第23行以endpackage确定package结束。

22c30572-6313-11ee-939d-92fbcf53809c.png

从可综合的SystemVerilog代码风格角度而言,需要注意:对于需要定义在package中的常数,应采用localparam或const定义,而不要使用parameter定义。此外,结构体应定义在package中,而不是以独立的.sv文件存在。

当需要使用package中的对象时,就需要导入package,如下图所示代码片段。代码第2行通过import导入package。“*”表示导入top_pkg中的所有内容。也可以只导入需要使用的package中的某个具体内容,例如

import top_pkg::word_t;

如果使用此方法导入用户定义的枚举类型时,需要明确导入使用到的枚举标签,如下所示:

import top_pkg::ADD;

import top_pkg::SUB;

import top_pkg::ABS;

import top_pkg::DIV2;

22da4192-6313-11ee-939d-92fbcf53809c.png

import package可以放在module声明之前,如上图所示代码第2行的位置,也可以放在端口声明之前,如下图所示代码片段的第4行。两者的效果是一样的,即:端口声明部分和module内的语句均可使用导入的package内容。

22efe222-6313-11ee-939d-92fbcf53809c.png

尽管可以使用如下图所示代码片段第6行所示方式,但实际工程中并不建议这么使用,这会导致代码变得冗长。工程实践表明,采用类似于“importtop_pkg::*;”的方式更为方便,也更为明了。

23042fde-6313-11ee-939d-92fbcf53809c.png

Vivado是支持package的。只需将package单独定义在一个后缀为.sv的文件中即可。Vivado会自动将package放在首位进行编译,如下图所示。

230f1520-6313-11ee-939d-92fbcf53809c.png






审核编辑:刘清

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

    关注

    19

    文章

    812

    浏览量

    66448
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8224
  • sub
    sub
    +关注

    关注

    0

    文章

    12

    浏览量

    2246

原文标题:说说SystemVerilog的Package

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

收藏 人收藏

    评论

    相关推荐

    防雷元器件的使用方法及使用注意事项

    防雷元器件的使用方法及使用注意事项   ()防雷元器件的使用方法  1、开关元件主要应用于共模保护,也常在无源电
    发表于 12-09 11:34 1780次阅读

    信号发生器的使用方法注意事项

    小编为大家介绍信号发生器的使用方法注意事项。 信号发生器的使用方法: 选用与验电器相同电压等级的验电信号发生器。手持验电器工作部分(验电器头)将发生器的电极头接触被测验电器的电极头,按动“工作”开关
    发表于 02-19 16:08

    大电流发生器使用方法注意事项

    的工作人员,今天专门来介绍一下大电流发生器使用方法注意事项。希望能给以上相关人士在工作中定的帮助。大电流测试仪的使用方法如下。第
    发表于 05-05 13:57

    视频展台的典型使用方法/注意事项

    视频展台的典型使用方法/注意事项   目前,随着多媒体教学设备在学校的广泛普及,专为教育演示设计的视频展台产品在某此
    发表于 02-08 11:29 1533次阅读

    摇表的接线和使用方法注意事项

    本文介绍摇表的接线和摇表使用方法及摇表注意事项
    发表于 01-28 09:33 2w次阅读

    额温计的使用方法图解及使用注意事项

    本文首先阐述了额温计的使用方法图解,另外还介绍了红外额温计使用注意事项
    发表于 02-27 09:01 5.5w次阅读

    浅谈压力传感器的使用方法注意事项

    浅谈压力传感器的使用方法注意事项
    发表于 03-10 17:36 14次下载
    浅谈压力传感器的<b class='flag-5'>使用方法</b>及<b class='flag-5'>注意事项</b>

    PCB承载大电流的操作方法注意事项

    笔者对PCB是否能够承载100~150A大电流的问题进行了分析,一起来看一下吧。 常见的PCB可以承载150A电流,但是原则上不推荐作为常规或者持续的使用方法。下面主要论述三个方面: 1、PCB承载大电流操作方法 2、P
    的头像 发表于 07-26 17:14 2004次阅读
    PCB承载大电流的操作<b class='flag-5'>方法</b>和<b class='flag-5'>注意事项</b>

    javaequals()方法注意事项

    会有不同的注意事项。在本文中,我们将详细讨论equals()方法注意事项,并解释如何正确使用它来比较两个对象。 首先,我们来看一下equals()
    的头像 发表于 11-17 16:59 829次阅读

    射频电缆组件的使用方法注意事项

    射频电缆组件的使用方法注意事项  射频电缆组件是类广泛应用于通信系统、无线电设备和其他射频设备的重要电子组件。它们在传输高频信号时扮演着关键的角色,因此使用和安装时需要特别
    的头像 发表于 01-05 15:08 642次阅读

    锡膏的使用方法注意事项

    的介绍一下使用方法注意事项、锡膏的使用方法1、锡膏须保存在2℃-10℃的冷藏空间内,贮存期限为6个月。在使用前,将原装的锡膏从冷藏室取
    的头像 发表于 03-26 16:51 3046次阅读
    锡膏的<b class='flag-5'>使用方法</b>及<b class='flag-5'>注意事项</b>

    数字万用表的使用方法注意事项

    数字万用表的使用方法注意事项
    的头像 发表于 05-07 16:50 755次阅读

    钳形电流表的使用方法注意事项

    钳形电流表,作为电气测量和测试的重要工具,其使用方法注意事项对于保障测量结果的准确性和操作人员的安全至关重要。本文将从钳形电流表的使用方法注意事项两个方面进行详细阐述,以期为读者提
    的头像 发表于 05-14 16:14 3356次阅读

    现场总线的使用方法注意事项

    的稳定可靠运行,正确的使用方法注意事项至关重要。本文将详细介绍现场总线的使用方法注意事项,以供读者参考。
    的头像 发表于 06-06 11:49 764次阅读

    光纤收发器的使用方法注意事项

    光纤收发器作为光纤通信系统的关键设备,其正确的使用方法注意事项对于确保网络传输的稳定性和可靠性至关重要。光纤收发器作为光纤通信系统的关键设备,其正确的
    的头像 发表于 08-26 15:20 886次阅读