Slides from Iteso about What is SystemVerilog? The Pdf introduces SystemVerilog, an extension of the Verilog language, explaining its functionalities as a hardware description and verification language. This University Computer science material details how SystemVerilog integrates object-oriented programming concepts and handles structural, data flow, and behavioral descriptions.
See more26 Pages


Unlock the full PDF for free
Sign up to get full access to the document and start transforming it with AI.
What is system Verilog? Santiago Miguel Segovia CázaresWhat is a HDL? It is a high level language used to describe hardware.
SystemVerilog is a standard set of extensions to the IEEE 1364-2005 Verilog Standard. SystemVerilog integrates hardware description language and object-oriented programing. SystemVerilog is defined as a Hardware description and verification language (HDVL). > SystemVerilog also contains many extensions for the verification of large designs, integrating features from the SUPERLOG, VERA C, C++, and VHDL languages, along with OVA and PSL assertions With SystemVerilog you can model at a much higher level of data abstraction than Verilog, and yet be fully synthesizable.
System Verilog is super-set of verilog. All syntax elements in verilog are valid in SystemVerilog. System Verilog Verilog
> The structural and data flow descriptions have a concurrent behavior. All statements are "executed" concurrently, and the order of the statements does not matter. , On the other hand, behavioral descriptions are executed sequentially in always blocks, tasks and functions in Verilog. The behavioral descriptions may be similar to high-level programming languages. 5
System Verilog sentences as other HDLs can be grouped as: · Synthesizable · Sentences that can produce hardware. · Non-synthesizable · Sentence that can't produce hardware
> All sentences in SystemVerilog can be simulated, but not completely synthesizable. > There are a number of SystemVerilog constructs that have no valid representation in a digital circuit. Other constructs do, in theory, have a representation in a digital circuits, but cannot be reproduced with guaranteed accuracy. Delay time modeling in Verilog is an example of that. 7
> Therefore, the result of synthesis of a System Verilog description depends on the style of SystemVerilog that is used. , You should understand some of the concepts of synthesis specific to SystemVerilog coding style at the RTL level, in order to achieve the desired circuit implementation. 8
The basic design unit in SystemVerilog is the module. > It represents an abstraction from the real world. > It is defined by its interface. The interface contains parameters and ports. Parameters are constants that helps to configure the module. Ports represents the physical ports in the design. Ports can be: · input · output ◦ inout 9
Sytem Verilog supports four values and eight strengths to model the functionality of real hardware: · X: Unknown logic value · Z: High impedance, floating state · 0: Logic zero, false condition · 1 : Logic one, true condition Numeric representation is expressed as Number of bits 'radix value
Numeric representation Binary equivalent Explanation 4'd5 0101 Decimal value 5 as a 4 bits signal. 8'b101 00000101 Binary 101 converted to an 8 bits signal. 12'h5B_3 010110110011 0x5B3 with 12 bits length. Underscore is used just as a splitter. -8'b101 11111011 Negative 101 at 8 bits length. 10'0752 0111101010 Octal 752 with 10 bits length. 8'hF 00001111 0xF extended to 8 bits length (not signed, i.e. filled with 0s)
Numeric representation Binary equivalent Explanation 12'hXA xxxxxxxx1010 0xA as a 12 bits signal. Higher bits filled with x values. 12'shA6 Signed 111110100110 0xA6 extended at 12 bits (signed, i.e. repeated MSB). -4'shA Signed 0110 Negative 0xA as a signed value of 4 bits. 596 1001010100 Constant.
Numeric data types. String types. > User-defined types. Emun types. Struct type. Union type. > Arrays.
Type Description Note integer 4 states, 32 bits, signed integer Verilog data types reg 4 states, user-defined size real Float of 64 bits time 4 states, 64 bits, signed integer realtime 4 states, 64 bits, signed integer shortint 2 states (1,0), 16 bits, signed integer Int 2 states 32 bits, signed integer Long int 2 states, 64 bits, signed integer bit 2 states, 1 bit byte 2 states, 8 bits, signed integer logic 4 states, user-defined size shortreal Float of 32 bits void void Systemverilog data types
› In Verilog we use reg type to describe either sequential or combinational logic, which implies uncertainty on some descriptions. > System Verilog fix this problem by creating logic type and new always processes. Important! Rest of types could be used to describe hardware.
A Net represents a connection between hardware elements or in-ports of a device > They can be scalar or vectorial. > They are constantly assigned by outputs of devices connected to them. b C AND a Net a is connected to output of AND gate, net a will constantly receive assignation of the logic operation B & c. > Wire is the element we use to connect nets to other modules.
> SystemVerilog supports four types of constants: · parameter · Localparam · specparam · const Parameter is used when it should be accessible out of the module. Localparam becomes read-only (write protection). Specparam is used to define temporal constants. const is used for constant values.
› Parameter · parameter port_id =5; · parameter cache_line_width = 256; Localparameter · localparam initial_state = 2; · localparam constante = 4'b1100; > Constant · const logic [23:0] C1 = 7; / / 24-bit constant · const int C2 = 15; / / 32-bit constant · const real C3 = 3.14; / / real constant · const C4 = 5; / / ERROR, no type
Type Symbol Name Operators' count Arithmetic + Sum Multiple Subtraction Multiple * Multiply Multiple / Division Multiple ** Power Multiple
Logical ! Not One && And Two | Or Two
Type Symbol Name Operators' count Relational > Greater than Two < Less than Two >= Greater than or equal to Two <= Less than or equal to Two
Equality == Equal to Two != Not equal to Two Equal to 'case' Two Not equal to 'case' Two
Type Symbol Name Operators' count Bitwise ~ Not One & And Two | Or Two ^ Xor Two Xnor Two
Reduction & And One ~& Nand One | Or One ~ Nor One ^ Xor One Xnor One
Type Symbol Name Operators' count Shifting >> Right shift Two Left shift Two >>> Arithmetic right shift Two <<< Arithmetic left shift Two
Concatenation Concatenation Any number Replication Replication Any number
Conditional ?: Conditional Any number
Type Symbol assignation +=, == , *= , /=, %=, &=, |=, ^=, <<= , >>=, <<<= , >>>= Self- increment/decrement ++, -- Logical evaluation -> <- > Packing {<<{}},
Highest + - ! ~ * * * / % + - << >> <<< >>> == ! = === != & ~ & 11-21 & & = ? : Lowest
Constants in Verilog are declared by parameters. Parameters are not nets nor regs. They cannot be used as variables They are assigned during compilation process Parameters can use default value or been overwritten.
What is system Verilog? By Jose Luis Pizano.