In reply to chr_sue:
Hi,
After modifying the code, i am still not getting the correct output.
module testbech ();
class Packet ;
logic [31:0] addr;
logic [31:0] data;
logic [31:0] wmask;
logic [31:0] rmask;
//function new ();
//endfunction
endclass
logic [31:0] addr_;
logic [31:0] data_;
logic [31:0] wmask_;
logic [31:0] rmask_;
Packet qu[$];
int fd;
initial
begin
Packet p1;
p1 = new ;
fd = $fopen ("data.txt" , "r");
// $fscanf returns the number of matches, i.e. 4 in your case
while ($fscanf (fd, "%0h %0h %0h %0h", addr_, data_, wmask_, rmask_) == 4) begin
// $display ("addr %h data %h", addr_, data_);
p1.addr = addr_;
p1.data = data_;
p1.wmask = wmask_;
p1.rmask = rmask_ ;
//$display ("addr_ %h , data_ %h wmask_ %h , rmask_ %h",p1.addr, p1.data, p1.wmask, p1.rmask);
qu.push_back(p1);
foreach (qu[i])
begin
$display ("queue of class [%d] = %h , %h, %h" , i , qu[i].addr, qu[i].data, qu[i].wmask );
// $display ("qu %p", qu);
end
p1= new ;
p1.addr = addr_;
p1.data = data_;
p1.wmask = wmask_;
p1.rmask = rmask_ ;
//$display ("addr_ %h , data_ %h wmask_ %h , rmask_ %h",p1.addr, p1.data, p1.wmask, p1.rmask);
qu.push_back(p1);
end
$fclose(fd);
foreach (qu[i])
begin
$display ("queue of class [%d] = %h , %h, %h , %h" , i , qu[i].addr, qu[i].data, qu[i].wmask, qu[i].rmask);
end
end
endmodule
Output:
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000
queue of class [ 2] = f0000004 , 0000aaaa, 00000000
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000
queue of class [ 2] = f0000004 , 0000aaaa, 00000000
queue of class [ 3] = f0000008 , 00005555, 00000000
queue of class [ 4] = f0000008 , 00005555, 00000000
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000
queue of class [ 2] = f0000004 , 0000aaaa, 00000000
queue of class [ 3] = f0000008 , 00005555, 00000000
queue of class [ 4] = f0000008 , 00005555, 00000000
queue of class [ 5] = f000000c , 00000000, 0000ffff
queue of class [ 6] = f000000c , 00000000, 0000ffff
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000
queue of class [ 2] = f0000004 , 0000aaaa, 00000000
queue of class [ 3] = f0000008 , 00005555, 00000000
queue of class [ 4] = f0000008 , 00005555, 00000000
queue of class [ 5] = f000000c , 00000000, 0000ffff
queue of class [ 6] = f000000c , 00000000, 0000ffff
queue of class [ 7] = f0000010 , 0000ffff, 00000000
queue of class [ 8] = f0000010 , 0000ffff, 00000000
queue of class [ 0] = f0000000 , 0000ffff, 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000
queue of class [ 2] = f0000004 , 0000aaaa, 00000000
queue of class [ 3] = f0000008 , 00005555, 00000000
queue of class [ 4] = f0000008 , 00005555, 00000000
queue of class [ 5] = f000000c , 00000000, 0000ffff
queue of class [ 6] = f000000c , 00000000, 0000ffff
queue of class [ 7] = f0000010 , 0000ffff, 00000000
queue of class [ 8] = f0000010 , 0000ffff, 00000000
queue of class [ 9] = f0000014 , 0000aaaa, 00000ff0
queue of class [ 10] = f0000014 , 0000aaaa, 00000ff0
queue of class [ 0] = f0000000 , 0000ffff, 000000ff , 000000ff
queue of class [ 1] = f0000004 , 0000aaaa, 00000000 , 000000ff
queue of class [ 2] = f0000004 , 0000aaaa, 00000000 , 000000ff
queue of class [ 3] = f0000008 , 00005555, 00000000 , 000000ff
queue of class [ 4] = f0000008 , 00005555, 00000000 , 000000ff
queue of class [ 5] = f000000c , 00000000, 0000ffff , 000000ff
queue of class [ 6] = f000000c , 00000000, 0000ffff , 000000ff
queue of class [ 7] = f0000010 , 0000ffff, 00000000 , 000000ff
queue of class [ 8] = f0000010 , 0000ffff, 00000000 , 000000ff
queue of class [ 9] = f0000014 , 0000aaaa, 00000ff0 , 000000ff
queue of class [ 10] = f0000014 , 0000aaaa, 00000ff0 , 000000ff
queue of class [ 11] = f0000014 , 0000aaaa, 00000ff0 , 000000ff