KEMBAR78
SV Assignment 2 | PDF | Queue (Abstract Data Type) | Software Engineering
0% found this document useful (0 votes)
10 views4 pages

SV Assignment 2

The document outlines a VLSI training assignment for TESSOLVE SEMICONDUCTOR PVT. LTD, focusing on various concepts in SystemVerilog such as arrays, queues, and associative arrays. It includes tasks like declaring and manipulating packed and unpacked arrays, implementing content addressable memory, and creating FIFO and stack structures using queues. Additionally, it covers struct data types and operations on dynamic arrays, including randomization and sorting based on specific criteria.

Uploaded by

gocool24072002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views4 pages

SV Assignment 2

The document outlines a VLSI training assignment for TESSOLVE SEMICONDUCTOR PVT. LTD, focusing on various concepts in SystemVerilog such as arrays, queues, and associative arrays. It includes tasks like declaring and manipulating packed and unpacked arrays, implementing content addressable memory, and creating FIFO and stack structures using queues. Additionally, it covers struct data types and operations on dynamic arrays, including randomization and sorting based on specific criteria.

Uploaded by

gocool24072002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

TESSOLVE SEMICONDUCTOR PVT.

LTD
VLSI Training
SYSTEMVERILOG ASSIGNMENT-2

Q.No. Questions (Arrays, Queue and Array Methods)


1) a To understand the difference between packed and unpacked array
)  Declare unpacked arrays with different size
- int a[4:0], b[4:0], c[4:0], d[1:0], e[1:5]
 Assign the value for array a, b by using array interals
 Perform the following and check the result
- and, or , xor //c=a&b
- assign value to another array // e=a;
- bit slice // d=b;
- randomize array values // e[1:0]=$urandom_range(0,100);
https://edaplayground.com/x/QauB
 Perform the above steps with packed arrays (bit [4:0]a; bit [4:0]b,
b bit [4:0]c, bit [1:0]d, bit [1:5]e) and analyse the results
) [Note: packed array should be a single bit data type]
https://edaplayground.com/x/sFDp
2) a Multi dimensional Array
)  Declare a mem1: 1kb with depth 64, each element of size 16 bits
 Declare mem2: reg[7:0][9:0]mem2[8][6:0];
 Randomize the elements of mem2
 Print using single display
 Print using for loop
 Print the elements of mem2[6]
 Print the elements of mem2[6][2]
 Print the elements of mem2[6][2][1]
 Print the elements of mem2[6][2][1][4]
https://edaplayground.com/x/MJeK
3) a Associative Array
)  Declare associative array int type //int asa[*];
 Declare int a,b
 Randomize variable a,b
 Put the values in asa //take ‘a’ as index and ‘b’ as value
 Print it
 Print number of entries
 Print in reverse order // use associative array methods
 Delete a particular index value and print
https://edaplayground.com/x/FRvY

Queue
b  Declare queues of int type with size 10 // int Q[$:9];
)  Put the value of associative array into Q and sort
 Do reverse sort and print
https://edaplayground.com/x/XR_8
4) a Design a Content Addressable Memory (CAM) using associative array
)  Declare a memory: 3bit associative array index type byte
//bit [2:0]mem[byte];
 Put the content inside the mem for corresponding index
 Print the whole mem
 Print the content of a specific index
 Check content is present or not in a specific index
 Print the last content and index of the mem
 Check specific value is present or not in the mem, if present print
the index of that value
https://edaplayground.com/x/MNrn
5) a Accessing random element of queue
)  Declare a queue with bounded size
 Declare int type intx and temp variable
 Assign values for the queue
 Print all the element along with its index
 Print the size of the queue
 Randomize the intx and print the value of the queue randomly
 Delete some random index of the queue and print the size
 Insert a new value in middle of the queue
https://edaplayground.com/x/rj_u
 Using push_front(), push_back(), pop_front() and pop_back() method
to add and remove the elements
b
)  Delete the complete queue
 Print the size of the queue
https://edaplayground.com/x/bs_B
6) a Implement a simple FIFO with queue
)  Inputs: data_in, w_fifo, r_fifo; Outputs: empty, full, data_out
 Use queue methods to perform write and remove values from
queue
 Verify the functionality of the FIFO

Implement stack using queue as above


b https://edaplayground.com/x/L6Ze
)
7) a Randomize a dynamic array without using the randomization methods
) such that all the values should be within 10 to 100 and the size of the
array should be less than 15.
https://edaplayground.com/x/AbB_

8) a Struct (static data types)


)  Declare below struct datatype
typedef struct{
int age;
string name;
byte exp;
string address;
bit status;
} employee_t;
 Declare array of employee record of 10 employees
 Assign age, exp, randomly
 Sort the employee record for various requirements
- Based on age
- Based on exp
- Based on age with specific status
https://edaplayground.com/x/JvU6
9) a  Create a struct data type: medals_t
) - int gold, silver, bronze
 Create an array of 5 struct elements
 Randomly populate medals tally for each country with range
 Print all the elements of array
 Find all countries with total medals more than 70
 Arrange all countries medals with descending order
 Find all countries who has more bronze medals than gold medals
 Find first country with more than 25 golds
 Find last country with less than 60 medals
 Sort medals array, total medals as criteria
 Do reverse sort
 Shuffle
 Declare an integer array with size 8
 Get the sum of all the elements in array
 Get the product of all the elements in array
https://edaplayground.com/x/nzyA

You might also like