SystemVerilog es el idioma sucesor de Verilog . Originalmente creado por Accellera como un lenguaje de extensión para Verilog IEEE Std 1364-2001 , SystemVerilog fue aceptado como un estándar IEEE en 2005. En 2009, IEEE fusionó Verilog (IEEE 1364) en SystemVerilog (IEEE 1800) como un idioma unificado. Al igual que su predecesor, SystemVerilog es compatible con muchos proveedores de FPGA (Field Programmable Gate Array) y proveedores de herramientas de ASIC (Circuito integrado específico de la aplicación). SystemVerilog fue creado para mejorar el desarrollo del diseño HDL y tiene características dedicadas para la verificación.
SystemVerilog consta de 3 sub-idiomas principales:
Directivas de diseño: permite a los diseñadores escribir RTL de forma más concisa, explícita y señala los errores que tradicionalmente no se encuentran hasta la síntesis.
Clases orientadas a objetos: utilizadas para verificación, permiten que el código de banco de pruebas sea más flexible y reutilizable. Esta capacidad estimuló la creación de metodologías de verificación: OVM , VMM , UVM.
Afirmaciones: se utilizan para la verificación y cobertura de protocolos y señales secuenciales internas.
Versión | Fecha de lanzamiento |
---|---|
SystemVerilog IEEE Std 1800-2012 | 2013-02-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
Corriendo en cadencia incisiva:
irun test.sv
Para compilar y ejecutar el código SystemVerilog se necesita una herramienta llamada simulador. Más comúnmente, las herramientas comerciales de una de las compañías de Big Three EDA se utilizan:
Otros proveedores de EDA también ofrecen simuladores:
También existen herramientas gratuitas y de código abierto, que admiten diferentes subconjuntos del LRM: