在独立模式或 prj 模式下运行 SystemVerilog - 2023.2 简体中文

Vivado Design Suite 用户指南: 逻辑仿真 (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 简体中文

独立模式

对于 xvlog 现已引入了新的 -sv 标志,因此,如果您要读取任何 SystemVerilog 文件,可使用以下命令:

    xvlog -sv <Design file list>
    xvlog -sv -work <LibraryName> <Design File List>
    xvlog -sv -f <FileName> [Where FileName contain path of test cases]

prj 模式

如果要在基于 prj 的流程中运行 Vivado 仿真器,请使用 sv 作为文件类型,就像使用 verilogvhdl 一样。

xvlog -prj <prj File>
xelab -prj <prj File> <topModuleName> <other options>

其中,prj 文件中的条目如下所示:

verilog     library1 <FileName>
sv      library1 <FileName> [File parsed in SystemVerilog mode]
vhdl     library2 <FileName>
sv      library3 <FileName> [File parsed in SystemVerilog mode]
表 1. SystemVerilog 1800-2012 的可综合集合
主构造 辅构造 LRM 部分 状态
数据类型   6  
  单类型与聚合类型 6.4 受支持
  信号线和变量 6.5 受支持
  变量声明 6.8 受支持
  矢量声明 6.9 受支持
  二态(双值)和四态(四值)数据类型 6.11.2 受支持
  有符号和无符号整数类型 6.11.3 受支持
  real、shortreal 和 realtime 数据类型 6.12 受支持
  用户定义的类型 6.18 受支持
  枚举 6.19 受支持
  将新数据类型定义为枚举类型 6.19.1 受支持
  枚举类型范围 6.19.2 受支持
  类型检查 6.19.3 受支持
  数字表达式中的枚举类型 6.19.4 受支持
  枚举类型方法 6.19.5 受支持
  类型参数 6.20.3 受支持
  Const 常量 6.20.6 受支持
  type 类型运算符 6.23 受支持
  cast 强制转换运算符 6.24.1 受支持
  $cast 动态强制转换 6.24.2 受支持
  比特流强制转换 6.24.3 受支持
聚合数据类型   7  
  结构 7.2 受支持
  打包/解包结构 7.2.1 受支持
  给结构赋值 7.2.2 受支持
  联合体 7.3 受支持
  打包/解包联合体 7.3.1 受支持
  带标签的联合体 7.3.2 不支持
  打包阵列 7.4.1 受支持
  解包阵列 7.4.2 受支持
  阵列运算 7.4.3 受支持
  多维阵列 7.4.5 受支持
  阵列索引和分片 7.4.6 受支持
  阵列赋值 7.6 受支持
  阵列作为子例程的实参 7.7 受支持
  阵列查询函数 7.11 受支持
  阵列操纵方法 7.12 受支持
进程   9  
  组合逻辑 always_comb 过程 9.2.2 受支持
  默示 always_comb 敏感度 9.2.2.1 受支持
  锁存逻辑 always_latch 过程 9.2.2.3 受支持
  顺序逻辑 always_ff 过程 9.2.2.4 受支持
  顺序块 9.3.1 受支持
  并行块 9.3.2 受支持
  过程性时序控制 9.4 受支持
  条件事件控制 9.4.2.3 受支持
  顺序事件 9.4.2.4 不支持
赋值语句   10  
  连续赋值语句 10.3.2 受支持
  变量声明赋值(变量初始化) 10.5 受支持
  类赋值上下文 10.8 受支持
  阵列赋值模式 10.9.1 受支持
  结构赋值模式 10.9.2 受支持
  解包阵列串联 10.10 受支持
  信号线失真 10.11 受支持
运算符和表达式   11  
  常量表达式 11.2.1 受支持
  聚合表达式 11.2.2 受支持
  含实数操作数的运算符 11.3.1 受支持
  逻辑(四态)和位(二态)类型运算 11.3.4 受支持
  表达式内赋值 11.3.6 受支持
  赋值运算符 11.4.1 受支持
  增量运算符和减量运算符 11.4.2 受支持
  含无符号类型和有符号类型的算术表达式 11.4.3.1 受支持
  通配符等同性运算符 11.4.6 受支持
  串联运算符 11.4.12 受支持
  设置成员资格运算符 11.4.13 受支持
  stream_expressions 串联 11.4.14.1 受支持
  泛型串流重新排序 11.4.14.2 受支持
  串流串联作为赋值目标(解包) 11.4.14.3 受支持
  串流动态大小的数据 11.4.14.4 受支持
过程性编程语句   12  
  unique-ifunique0-ifpriority-if 12.4.2 受支持
  unique-ifunique0-ifpriority-if 构造生成的违例报告 12.4.2.1 受支持
  If 语句违例报告和多进程 12.4.2.2 受支持
  unique-caseunique0-casepriority-case 12.5.3 受支持
  unique-caseunique0-casepriority-case 构造生成的违例报告 12.5.3.1 受支持
  Case 语句违例报告和多进程 12.5.3.2 受支持
  设置成员资格 case 语句 12.5.4 受支持
  模式匹配和条件语句 12.6 不支持
  循环语句 12.7 受支持
  跳转语句 12.8 受支持
任务   13.3  
  静态和自动任务 13.3.1 受支持
  任务存储器使用情况和并发激活 13.3.2 受支持
功能   13.4  
  返回值和无效函数 13.4.1 受支持
  静态和自动函数 13.4.2 受支持
  常量函数 13.4.3 受支持
  由函数调用生成的后台进程 13.4.4 受支持
子例程调用和实参传递   13.5  
  按值传递 13.5.1 受支持
  按引用传递 13.5.2 受支持
  默认实参值 13.5.3 受支持
  按名称绑定实参 13.5.4 受支持
  可选实参列表 13.5.5 受支持
  导入和导出函数 13.6 受支持
  任务和函数名称 13.7 受支持
实用工具系统任务和系统函数(仅限可综合集合)   20 受支持
I/O 系统任务和系统函数(仅限可综合集合)   21 受支持
编译器指令   22 受支持
模块和层级   23  
  默认端口值 23.2.2.4 受支持
  顶层模块和 $root 23.3.1 受支持
  模块例化语法 23.3.2 受支持
  嵌套模块 23.4 受支持
  外部模块 23.5 受支持
  分层名称 23.6 受支持
  成员选择和分层名称 23.7 受支持
  向上名称引用 23.8 受支持
  覆盖模块参数 23.10 受支持
  将辅助代码绑定到作用域或实例 23.11 不支持
接口   25  
  接口语法 25.3 受支持
  嵌套接口 25.3 受支持
  接口中的端口 25.4 受支持
  指定端口捆绑示例 25.5.1 受支持
  连接端口捆绑示例 25.5.2 受支持
  将端口捆绑连接到泛型接口的示例 25.5.3 受支持
  Modport 表达式 25.5.4 受支持
  时钟块和 modport 25.5.5 受支持
  接口和 specify 块 25.6 受支持
  在接口中使用任务的示例 25.7.1 受支持
  在 modport 中使用任务的示例 25.7.2 受支持
  导出任务和函数的示例 25.7.3 受支持
  多项任务导出的示例 25.7.4 受支持
  参数化接口 25.8 受支持
  虚拟接口 25.9 受支持
数据包   26  
  数据包声明 26.2 受支持
  引用数据包内的数据 26.3 受支持
  在模块头文件中使用数据包 26.4 受支持
  从数据包导出已导入的名称 26.6 受支持
  std 内置数据包 26.7 受支持
生成构造   27 受支持