您当前的位置: 首页 > 

lu-ming.xyz

暂无认证

  • 0浏览

    0关注

    115博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【SystemVerilog学习笔记】4-用户自定义和枚举数据类型

lu-ming.xyz 发布时间:2021-04-22 16:39:23 ,浏览量:0

目录
  • 4.1 typedef
  • 4.2 枚举数据类型
    • 4.2.1 指定枚举类型标签序列的方式:
    • 4.2.2 枚举类型标签作用域:
    • 4.2.3 枚举类型值:
    • 4.2.4 枚举类型标签值的类型:
    • 4.2.5 自定义和匿名枚举
    • 4.2.6 枚举类型操作的强类型检验
    • 4.2.8 枚举类型的专用系统任务和方法
    • 4.2.9 打印枚举类型
SystemVerilog对Verilog的拓展:

  • 使用typedef建立用户自定义类型。
  • 使用enum建立枚举类型。
4.1 typedef
  • 对比

    VerilogSystemVerilog主要用于RTL和门级建模,没有提供类似C语言的高级抽象建模的变量类型为系统级和体系结构级建模加入了许多新的数据类型,允许通过typedef关键字使用现有数据类型建立用户自定义类型。

    例子:自定义类型

    typedef int unsigned uint;//利用现有数据类型(int unsigned)建立用户自定义类型(uint)
    ...
    uint a, b;
    
  • 用户自定义类型的位置:

    • 在局部定义。

    • 包内定义。

    • 编译单元域$unit.

    • 在包中定义然后导入到$uint。

      例子:在包中定义然后导入到$uint。

      //包声明
      package chip_types
          `ifdef TWO_STATE
              typedef bit dtype_t;
          `else
              typedef logic dtype_t;
          `endif
      endpackage
      //导入定义到$uint
      import chip_types::dtype_t;
      //模块声明
      module counter (
          output dtype_t[15:0]  count,
          input  dtype_t        clock   
      );
      always @(posedge clock, negedge resetN)
          if (!resetN)
              count             
关注
打赏
1655639048
查看更多评论
0.0405s