In reply to dmitryl:
Actually, you have only single unpacked dimensions. It would be easer to hard code this.
module top;
string line;
int FILE,code;
bit [7:0] dsp_rx_valid, dsp_rx_first;
bit [5:0] dsp_rx_id[7:0];
bit [15:0] dsp_rx_q_data[7:0], dsp_rx_i_data[7:0];
initial begin
FILE=$fopen("fscanf.txt","r");
while($fgets(line,FILE)) begin
// strip comments
if(line.match("(\/\/.*)?$"))
line = line.prematch();
// skip lines without data
if (!line.match("[0-f]")) continue;
code =$sscanf(line, "%b %b %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h %h",
dsp_rx_valid, dsp_rx_first,
dsp_rx_id[7],dsp_rx_id[6],dsp_rx_id[5],dsp_rx_id[4],dsp_rx_id[3],dsp_rx_id[2],dsp_rx_id[1],dsp_rx_id[0],
dsp_rx_q_data[7],dsp_rx_q_data[6],dsp_rx_q_data[5],dsp_rx_q_data[4],dsp_rx_q_data[3],dsp_rx_q_data[2],dsp_rx_q_data[1],dsp_rx_q_data[0],
dsp_rx_i_data[7],dsp_rx_i_data[6],dsp_rx_i_data[5],dsp_rx_i_data[4],dsp_rx_i_data[3],dsp_rx_i_data[2],dsp_rx_i_data[1],dsp_rx_i_data[0]);
$displayh("code %d\n%b %b %p %p %p", code, dsp_rx_valid, dsp_rx_first, dsp_rx_id, dsp_rx_q_data, dsp_rx_i_data);
end
end
endmodule : top