system-verilogsystem-verilog入门


备注

SystemVerilog是Verilog的后续语言。最初由Accellera作为Verilog IEEE Std 1364-2001的扩展语言创建,SystemVerilog于2005年被接受为IEEE标准。2009年,IEEE将Verilog(IEEE 1364)合并为SystemVerilog(IEEE 1800)作为统一语言。与其前身一样,SystemVerilog受到许多FPGA(现场可编程门阵列)供应商和ASIC(专用集成电路)工具供应商的支持。 SystemVerilog的创建是为了增强HDL设计开发,并具有专门的验证功能。

SystemVerilog由3种主要子语言组成:

  • 设计指令:允许设计人员更简洁,明确地编写RTL,并标记在合成之前传统上找不到的错误。

  • 面向对象的类:用于验证,允许测试平台代码更灵活和可重用。此功能促进了验证方法的创建: OVMVMMUVM

  • 断言:用于协议和内部顺序信号的验证和覆盖。

版本

发布日期
SystemVerilog IEEE Std 1800-2012 2013年2月21日
SystemVerilog IEEE Std 1800-2009 2009-12-11
SystemVerilog IEEE Std 1800-2005 2005-11-22

你好,世界

// File 'test.sv'

// Top module that gets instantiated automatically when simulation is started
module test;

  // Thread gets started at the beginning of the simulation
  initial begin

    // Call to system task to print output in simulator console
    $display("Hello world!");
  end

endmodule
 

在Cadence Incrisive中运行:

irun test.sv
 

安装或设置

为了编译和运行SystemVerilog代码,需要一个名为模拟器的工具。最常见的是,使用来自三大EDA公司之一的商业工具:

  • Cadence Incisive
  • Mentor Graphics QuestaSim
  • Synopsys VCS

其他EDA供应商也提供模拟器:

  • Aldec Riviera-PRO
  • Xilinx Vivado

还存在免费和开源工具,它们支持LRM的不同子集:

  • Verilator