Category:SystemVerilog: Difference between revisions
No edit summary |
m (Filling out language template) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{language|SystemVerilog |
|||
|site=http://www.systemverilog.org/ |
|||
}} 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 |
Latest revision as of 03:29, 5 December 2010
![Language](http://static.miraheze.org/rosettacodewiki/thumb/2/27/Rcode-button-language-crushed.png/64px-Rcode-button-language-crushed.png)
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
See Also: |
|
---|
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.
@
- SystemVerilog Implementations (empty)
- SystemVerilog User (3 P)
Pages in category "SystemVerilog"
The following 12 pages are in this category, out of 12 total.