Line 152... |
Line 152... |
else begin
|
else begin
|
n_valids ++;
|
n_valids ++;
|
end
|
end
|
|
|
end
|
end
|
|
if(|vc.tuser)
|
`uvm_info(get_type_name(),$psprintf("%d header and %d tails available", headers_seen, tails_seen) ,UVM_HIGH)
|
`uvm_info(get_type_name(),$psprintf("%d header and %d tails available", headers_seen, tails_seen) ,UVM_HIGH)
|
|
|
|
|
|
|
endfunction : collect_flits
|
endfunction : collect_flits
|
Line 172... |
Line 172... |
|
|
//-- First flit is always header
|
//-- First flit is always header
|
current_flit = flit_queue.pop_front();
|
current_flit = flit_queue.pop_front();
|
no_length_mismatches_allowed : assert (current_flit[14:11] == current_flit[10:7]); //--check internal hmc_packet length
|
no_length_mismatches_allowed : assert (current_flit[14:11] == current_flit[10:7]); //--check internal hmc_packet length
|
current_packet_length = current_flit[10:7];
|
current_packet_length = current_flit[10:7];
|
|
`uvm_info(get_type_name(),$psprintf("packet length %0d ", current_packet_length), UVM_HIGH)
|
|
`uvm_info(get_type_name(),$psprintf("queue size %0d ", flit_queue.size()), UVM_HIGH)
|
flit_queue_underflow2 : assert (flit_queue.size() >= current_packet_length - 1); //--check check hmc_packet complete received
|
flit_queue_underflow2 : assert (flit_queue.size() >= current_packet_length - 1); //--check check hmc_packet complete received
|
|
|
|
|
//-- pack flits 2 bitstream
|
//-- pack flits 2 bitstream
|
bitstream = new[current_packet_length*128];
|
bitstream = new[current_packet_length*128];
|
Line 225... |
Line 227... |
function void write(input axi4_stream_valid_cycle #(.DATA_BYTES(DATA_BYTES), .TUSER_WIDTH(TUSER_WIDTH)) vc);
|
function void write(input axi4_stream_valid_cycle #(.DATA_BYTES(DATA_BYTES), .TUSER_WIDTH(TUSER_WIDTH)) vc);
|
|
|
|
|
hmc_packet packet;
|
hmc_packet packet;
|
|
|
|
|
`uvm_info(get_type_name(),$psprintf("got valid cycle"), UVM_HIGH)
|
|
|
|
collect_flits(vc);
|
collect_flits(vc);
|
|
|
|
//`uvm_info(get_type_name(),$psprintf("got %0d tails and %0d flits",tails_seen, flit_queue.size() ), UVM_HIGH)
|
`uvm_info(get_type_name(),$psprintf("got %0d tails and %0d flits",tails_seen, flit_queue.size() ), UVM_HIGH)
|
|
|
|
|
|
//-- Convert flit_queue to hmc_packets
|
//-- Convert flit_queue to hmc_packets
|
while (tails_seen >0) begin
|
while (tails_seen >0) begin
|
collect_packet();
|
collect_packet();
|
end
|
end
|