In reply to chr_sue:
Hi Chr_sue, like you said timing related to do in driver, So a task is created for reading the text file in the driver class.
//task for reading txt file in driver
task read_image_2_hex();
#1009.700ns $readmemh("./image_2_hex.txt", this.temp_mem);
if(vif.i_pixel_enable==1'b1) begin
for(int i=0;i<2000;i++) begin
@(posedge vif.i_Pixel_clock);
arinc_818_tx.i_pixel_data <= this.temp_mem[i];
$display("read_file_drv --> temp_mem[%0d] = %h",i,this.temp_mem[i]);
$display("read_file_drv --> i_pixel_data[%0d] = %h",i,arinc_818_tx.i_pixel_data[i]); //not able to take the value from temp_mem to i_pixel_data
end
end
endtask
// driver task run_phase
wait(vif.i_reset_n == 1'b1) begin :B3
fork
@(posedge vif.i_Pixel_clock) drive_pxl(arinc_818_tx);
read_image_2_hex();
@(posedge vif.i_sys_clock) drive_frmr(arinc_818_tx);
join
end :B3
endclass :driver
//Console Output Report
.
.
read_file_drv → temp_mem[1998] = 67503e
read_file_drv → i_pixel_data[1998] = 0
read_file_drv → temp_mem[1999] = 67513c
read_file_drv → i_pixel_data[1999] = 0
read_file_drv → temp_mem[2000] = 6e5843
read_file_drv → i_pixel_data[2000] = 0