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
    +关注

    关注

    18

    文章

    790

    浏览量

    65107
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8160
  • sub
    sub
    +关注

    关注

    0

    文章

    11

    浏览量

    2190

原文标题:说说SystemVerilog的Package

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    请问iso3086使用方法注意事项

    最近使用3086做隔离,烧掉了好几片,芯片手册看不太明白,请用过的兄弟指点一下,主要是使用的注意事项,供电及负载情况
    发表于 03-06 10:50

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

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

    说明一下代码移植过程注意事项

    STM32F工程移植注意事项文档由来 最近项目用到STM32F429,参考的是正点原子的STM32F4开发板。本文主要说明一下代码移植过程注意事项,记录
    发表于 08-04 08:52

    4G模块-REACH_LAR01使用方法注意事项

    4G模块-REACH_LAR01底层引脚介绍(功能,使用方法注意事项)引脚分配图电源接口引脚系统控制接口引脚POWER_ON控制脚使用方法注意事项:1、开机模组
    发表于 02-15 07:22

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

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

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

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

    stm32 fft库使用注意事项

    stm32 fft库使用方法注意事项
    发表于 11-02 10:55 0次下载

    晶体管图示仪使用方法及使用注意事项

    本文开始阐述了晶体管图示仪的定义、晶体管图示仪的组成及主要技术指标,其次阐述了晶体管图示仪使用方法和晶体管特性图示仪使用方法,最后介绍了晶体管图示仪使用注意事项
    发表于 03-19 15:51 1.9w次阅读
    晶体管图示仪<b class='flag-5'>使用方法</b>及使用<b class='flag-5'>注意事项</b>

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

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

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

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

    CPU散热使用的导热凝胶的不同使用方法注意事项有哪些呢?

    CPU散热使用的导热凝胶的不同使用方法注意事项有哪些呢?,15年行业经验和您聊聊
    的头像 发表于 03-04 10:24 2189次阅读
    CPU散热使用的导热凝胶的不同<b class='flag-5'>使用方法</b>和<b class='flag-5'>注意事项</b>有哪些呢?

    佳金源|锡膏使用方法注意事项

    ,下面佳金源锡膏厂家简单的介绍一下使用方法注意事项:一、锡膏的使用方法1、锡膏须保存在2-10℃的冷藏空间内,贮存期限为6个月。在使用前,将原装的锡膏从冷藏室取
    的头像 发表于 05-15 11:02 1020次阅读
    佳金源|锡膏<b class='flag-5'>使用方法</b>及<b class='flag-5'>注意事项</b>

    锡膏的使用方法注意事项

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