首页 > 其他分享 >SV 数据类型

SV 数据类型

时间:2023-12-09 20:44:35浏览次数:25  
标签:逻辑 数据类型 SV logic 类型 assign

Verilog数据类型

  • 变量类型 - 用于存储值
  • 线网类型 - 用于连接硬件模块
  • reg - 在硬件中可能会被综合成DFF和Latch

线网类型

  • 线网的驱动 - 可以是门,也可以是实例化的门

  • 变量只能通过过程赋值进行赋值 - initial/always
  • integer - 32bit,有符号数 - 通常循环变量的时候会使用

System Verilog新添加的数据类型

  • x - 真实的电路中是没有的x的状态,x表示真实电路中不稳定的状态(可能是1或者是0)
  • z - 表示没有驱动(悬空),如果DFF没有复位的时候,Q端是x;D端如果没有输入(驱动),Q端就是z
  • SV - 具有数据类型
  • SV中对于线网类型 - 通过使用连续赋值;变量类型使用连续赋值(assign)或者是过程赋值(always)
  • 数据类型的三个方面:线网类型还是变量类型\2值逻辑还是4值逻辑\有符号还是无符号

  • BD

SV中的assign连续赋值可以赋值给logic(var)类型吗?

  • 在SV中可以使用logic替代(wire和reg)
  • 多驱动源的情况下或者设计模块端口是双向的(inout)的时候 - 不适用logic
module tb;
  wire w1;
  logic r; // logic (var)
  assign  w1 = 1'b1;
  assign r1 = 1'b0;
  
  wire w2;
  var logic r2;
  assign w2 = 1'b1;
  assign r2 = 1'b0;
  
  initial begin
    #1ns;
    $display("w1 = %b,r1 = %b",w1,r1);
    $display("w1 = %b,r1 = %b",w2,r2);
  end
endmodule

四值逻辑数据类型

  • logic - 硬件中可以综合,软件中也可以使用
  • logic [63:0] - 每1bit都是独立的,只要有一位是x,返回的数值就是不确定的

二值逻辑数据类型

  • 二值逻辑bit/byte/shortint/int/longint - 可以进行综合,但是综合出来的电路会失真,使用二值逻辑表示不了延时和亚稳态
  • bit类型也是变量类型

  • int(二值逻辑)/integer(四值逻辑)/shortint/byte

有符号数和无符号数

  • 有符号数和无符号数不要进行运算
  • 硬件验证和测试,发送激励的时候只需要考虑发送0和1就可以,不需要发送x和z,所以使用二值逻辑即可
  • SV中的四值逻辑和C中变量没有直接的对应关系

内建数据类型

仿真行为


  • 四值逻辑转变为二值逻辑的时候,x和z转变为0

其他类型

  • void - 其他类型

标签:逻辑,数据类型,SV,logic,类型,assign
From: https://www.cnblogs.com/Icer-newer/p/17891384.html

相关文章

  • 如何不是用 width 和 height 控制 svg 的渲染大小?
    除了使用width和height属性控制SVG的渲染大小外,还可以使用以下方法:使用CSS样式:可以通过设置CSS的width和height属性来控制SVG的渲染大小。例如,设置SVG元素的样式为width:100px;height:100px;。使用viewBox属性:viewBox属性定义了SVG的可视区域,在该区域内进行缩放和裁剪。可以通过......
  • SV概述
    SystemVerilog概述路科验证视频,B站可看(补充一下知识)学习SV之前,最好有Verilog基础SV诞生SV发展历史Verilog-偏向于设计SystemVerilog-偏向于验证SV的语言继承历史......
  • C++学习笔记二:变量与数据类型(整型)
    1.int(整型数据):1.1进制的表示:十进制,八进制,16进制,二进制intnumber1=15;//Decimalintnumber2=017;//Octalintnumber3=0x0F;//Hexadecimalintnumber4=0b00001111;//Binary上面几种表示方式都表示15这个数字,用cout输出得到相同的结果 1.2......
  • [MFC]如何将数据保存为CSV格式
    BOOLWriteCsv(CStringstrText){CStringstrPath;strPath.Format(_T("D:\\CSV"));if(!CFileSystemHelper::IsDirectoryExist(strPath))//判断目录存不存在{CFileSystemHelper::CreateDirectory(strPath);//可创建递归目录}CString......
  • # 给 TortoiseSVN 添加桌面快捷键
    TortoiseSVN如何给SVNUpdate添加个快捷键,在Windows10环境下要在Windows10环境下为TortoiseSVN的SVNUpdate操作添加快捷键,你可以通过以下步骤实现:注意一定要在桌面添加快捷方式创建一个自定义快捷方式:首先,找到你的SVN仓库文件夹,然后右键单击空白处,选择"新......
  • Python 输入输出与文件处理: io、pickle、json、csv、os.path 模块详解
    Python提供了强大的输入输出和文件处理工具,通过io、pickle和json等模块,开发者可以轻松处理文件、序列化和反序列化数据,并在不同格式之间进行转换。在本文中,我们将深入介绍这些模块的用法和实际示例。1.io模块:强大的输入输出工具io模块提供了对文件I/O进行灵活处理的能力......
  • Python 输入输出与文件处理: io、pickle、json、csv、os.path 模块详解
    Python提供了强大的输入输出和文件处理工具,通过io、pickle和json等模块,开发者可以轻松处理文件、序列化和反序列化数据,并在不同格式之间进行转换。在本文中,我们将深入介绍这些模块的用法和实际示例。1.io模块:强大的输入输出工具io模块提供了对文件I/O进行灵活处理的能力......
  • Python利用pandas拆分大型的csv文件
    当将大型CSV文件拆分成较小的文件时,您可以使用Python的Pandas库来处理导入必要的库importpandasaspd定义拆分函数当定义拆分函数时,我们将在以下步骤中处理CSV文件的拆分defsplit_csv(input_file,chunk_size):#读取CSV文件dtype_options={'column9':str......
  • SV Interface and Program 2
    Clocking:激励的时许对于testbench,input(DUT输入)要延迟进行采样,就是在时钟上升沿之前1个时间单位采样output(输入给DUT)-没有延时时间input向时钟上升沿之前多少时间单位进行采样,output向时钟上升沿之后多少个时间输出......
  • SV Interface and Program
    内容验证平台与待测设计的连接VTBdriver和dut之间的连线通过tb中声明wire连线通过例化dut的方式进行连接Amodule的input连接到Bmodule的outputSVTBSV:*端口连接SV:name端口连接Verilog传统连接方式的缺点interface-是一个SV的数据类型SV:interface/......