Category:SystemVerilog

From Rosetta Code
Revision as of 03:29, 5 December 2010 by rosettacode>Parsleyfirefly (Filling out language template)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Language
SystemVerilog
This programming language may be used to instruct a computer to perform a task.
Official website
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using SystemVerilog.

is a language used for hardware design and verification. It is defined by IEEE standard 1800-2005, which extends the hardware description language Verilog (IEEE 1364-2001). SystemVerilog has strong support for concurrency, but though the execution model is based on a single thread that provides the illusion of concurrency via a simulation model known as two-list simulation: first all the "outputs" (of all processes) are calculated as functions of the current inputs; and then the inputs to all processes are updated from the outputs that drive them. So, for example:

<lang:SystemVerilog>

 always @(posedge clk) begin
   a <= b;
   b <= a;
 end

</lang>

simply swaps the two values on each rising clock edge. The result of both the the assignments are calculated on their rhs input values at the start of the simulation "delta cycle". Only after both updates are known will the assignments actually be performed. So there is a strong illusion that the two statements execute concurrently.

SystemVerilog adds many features:

Design Subset:

  • packed structures and unions
  • enumeration types

Verification Subset:

  • classes
  • (temporal) assertions
  • random sequence generation, and constrained random variables

Subcategories

This category has the following 3 subcategories, out of 3 total.