Queue
Queue
module QueueExample;
int queue[$]; // Dynamic queue
initial begin
queue.push_back(10);
queue.push_back(20);
queue.push_back(30);
$display("Queue: %p", queue);
queue.push_back(40);
$display("Queue: %p", queue);
end
endmodule
Memory
module MemoryExample;
int mem[] = new[5];
initial begin
foreach (mem[i]) mem[i] = i * 10;
$display("Memory: %p, Read mem[2]: %0d", mem, mem[2]);
mem = new[3];
$display("Resized: %p", mem);
end
endmodule
Op:
Memory: {0, 10, 20, 30, 40}
Read mem[2]: 20
Resized Memory:{0, 0, 0}
initial begin
// Write values to memory
mem[0] = 10;
mem[2] = 20;
mem[5] = 50;
// Read values
$display("Memory: %p", mem);
$display("Read mem[2]: %0d", mem[2]);
module MemoryExample;
int mem[int]; // Associative array for memory
initial begin
mem[1] = 100;
mem[3] = 300;
mem[7] = 700;
Output:
Key Features:
---
Advantages:
---
Example:
---
module AssocArrayExample;
string employee[string]; // Associative array
initial begin
employee["101"] = "Alice";
employee["102"] = "Bob";
$display("Employees: %p", employee);
if (employee.exists("102"))
$display("Employee 102: %s", employee["102"]);
end
endmodule
Output:
---
---
Example:
typedef struct {
int id;
string name;
} Employee;
Employee emp = '{1, "Alice"};
$display("Employee: %p", emp);
Output:
---
int queue[$];
queue.push_back(10); queue.push_back(20);
$display("Queue: %p", queue); // '{10, 20}
---
class Transaction;
rand int addr, data;
constraint valid_range { addr inside {[0:255]}; }
endclass
---
Final Thoughts
module AssocArrayExample;
string employee[string]; // Associative array
initial begin
employee["101"] = "Alice";
employee["102"] = "Bob";
$display("Employees: %p", employee);
if (employee.exists("102"))
$display("Employee 102: %s", employee["102"]);
end
endmodule