当前位置: 首页 > news >正文

SystemVerilog语法之内建数据类型

简介:SystemVerilog引进了一些新的数据类型,具有以下的优点:(1)双状态数据类型,更好的性能,更低的内存消耗;(2)队列、动态和关联数组,减少内存消耗,自带搜索和分类功能。(3)类和结构:支持抽象数据结构。(4)联合和合并结构:允许对同一数据有多种视图。(5)字符串:支持内建的字符序列。(6)枚举类型:方便代码编写,增加可读性。

1.1内建数据类型

Verilog-1995有两种基本数据类型:变量和线网。变量可以是reg,integer,time与real。其中integer是32比特的有符号数。所有的存储都是静态的,意味着所有变量在整个仿真过程中都是存活的,子程序不能通过堆栈来保存形式参数和局部变量。Verilog-2001允许使用者在静态和动态存储之间切换,例如堆栈。

1.1.1逻辑类型(logic)

SystemVerilog对经典的reg数据类型进行改进,使得它除了作为一个变量以外,还可以被连续赋值,门单元和模块所驱动,命名为logic。任何使用线网的地方都可以使用logic类型,但是要求logic类型不能有多个结构性驱动,例如双向总线,必须使用wire类型。

module logic_data_type(input logic rst_h);parameter CYCLE = 20;logic q,q_l,d,clk,rst_l;initial beginclk = 0;forever #(CYCLE/2) clk = ~clk;endassign rst_l = ~rst_h;not n1(q_1, q);my_dff(q,d,clk,rst_l);endendmodule
1.1.2双状态数据类型

SystemVerilog引入的双状态数据类型有利于提高仿真器的性能并减少内存的使用量。最简单的双状态数据类型是bit,它是无符号的。双状态数据类型:bit,int,byte,shortint,longint,real。四状态数据类型:integer,time。无符号数据类型:bit,time。有符号数据类型:int,byte,int,integer。可以使用unsigned或者signed改变数据的符号类型。

注意:在把双状态变量连接到被测设计时,尤其时被测设计的输出时务必要小心,如果被测设计试图产生X或Z,这些值会被转换为0或1.使用$isunknown操作符,可以在表达式任意位出现X或Z时返回1.

 if ($isunknown(iport) == 1) begin$display("@%0t:4-state value detected on iport %b", $time, iport);end

相关文章:

  • 【mongodb】--下载
  • windows传文件给mac, linux或者其他windows
  • 【自然语言处理与大模型】模型压缩技术之剪枝
  • C++回溯算法详解
  • Python+Word实现周报自动化的完整流程
  • Java 设计模式心法之第4篇 - 单例 (Singleton) 的正确打开方式与避坑指南
  • 鸿蒙系统的 “成长烦恼“:生态突围与技术迭代的双重挑战
  • 从零开始配置spark-local模式
  • AI 赋能 3D 创作!Tripo3D 全功能深度解析与实操教程
  • git 版本提交规范
  • 软件产品开发全生命周期管理概览:从市场调研到运营维护(着重开发版)
  • 特征提取登上Nature!计算速度为1.0256 TOPS
  • Oracle数据库和PLSQL安装配置
  • C# 的 字符串插值($) 和 逐字字符串(@) 功能
  • .net core 中directory , directoryinfo ,file, fileinfo区别,联系,场景
  • 计算机前沿技术课程论文 K-means算法在图像处理的应用
  • 前端技术未来的发展趋势分析
  • 【Docker 运维】Java 应用在 Docker 容器中启动报错:`unable to allocate file descriptor table`
  • 计组1.2.2——各个硬件的工作原理
  • 永磁同步电机控制算法-VF控制
  • 巴菲特股东大会十大金句:未来五年内可能有投资机会,快乐的人活得更久
  • 解放军报八一锐评:青春无限好,奋斗正当时
  • 美法官裁定特朗普援引战时法律驱逐黑帮违法,系首次永久性驳回
  • 特朗普称将禁止伊朗石油买家与美国做生意
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 今年4月上海一二手房成交面积同比增21%,二手房成交2.07万套