100DaysofRTL (Part 2)
100DaysofRTL (Part 2)
Day 95 : Identify how many number of zeros count in an array / number of ones count in an array
100DaysofRTL
Part-2(SystemVerilog)
Day 51: Testbench to print Hello World in System Verilog
EdaPlayground Link; https://www.edaplayground.com/x/KMMH
SystemVerilog struct is often de ined with the typedef keyword to give the structure
type a name so it can be more easily reused across multiple iles.
Ummidi Chandrika
A dynamic array is one dimension of an unpacked array whose size can be set or
changed at run-time. Dynamic array is Declared using an empty word subscript [ ].
Day 59: TB to verify Object Assignment copy and Shallow Copy Methods
EdaPlayground Link: https://www.edaplayground.com/x/7qUQ
In Object Assignment ,same memory location will be allocated and which can be
accessed by two different handles. If any handle would like to change class properties, it
will re lect the same changes when it is accessed by another handle.
The shallow copy is used to copy
1.Class properties like integers, strings, instance handle
2.Nested objects are not copied, only instance handles are copied which means any
changes are done in ‘nested copied object’ will also re lect in the ‘nested original object’
or vice-versa.
The new() method is used for copying.
Ummidi Chandrika
of further statements that lie after the fork regardless of whether the forked threads
inish. If three threads are launched, the main thread will resume execution immediately
while all the three threads remain running in the background.
1. Events
2. Semaphores
3. Mailbox
An event is also a synchronization object that can be passed to a function or task or class
constructor. This allows event sharing without declaring it as a global event. One
process triggers an event while other processes will wait until the event is triggered.
The System Verilog events are triggered using -> operator. The processes can wait for an
event to be triggered either via @ operator or wait() construct.
Semaphore is a SystemVerilog built-in class, used for access control to shared resources, and for
basic synchronization.
Semaphore is just like a bucket with a ixed number of keys. Processes that use a semaphore must
irst get a key from the bucket before they can continue to execute. Other proceses must wait until
keys are available in the bucket for them to use.
Ummidi Chandrika
The wait fork statement is used to ensure that all immediate child subprocesses (processes created
by the current process, excluding their descendants) have completed their execution. wait fork :-
causes the process to block until the completion of all processes started from fork blocks.
Ummidi Chandrika
Day 95 : Identify how many number of zeros count in an array / number of ones count in
an array
EDA Playground Link: https://www.edaplayground.com/x/KL4m
Ummidi Chandrika