假设我有一个文件,其中填充了用制表符分隔的数据(这种格式):

1   2
3   4
5   6

而且我想从一行中成对读取这些数据,因此结果如下:
var1=1;
var2=2;
var1=3;
var2=4;
var1=5;
var2=6;

我应该如何工作?现在,我的代码可以在一行上处理单个数据(请参见下文):
read_from_file: process(clk)
  variable input_data: natural;
  variable ILine: line;
begin
  for i in 0 to NSAMPLES-1 loop
    readline (input_vectors, ILine);
    read(ILine, input_data);
  end loop;
end process;

谢谢你的帮忙!

最佳答案

您应该能够再次调用read函数。
例如:

read_from_file: process(clk)
  variable input_data_column1: natural;
  variable input_data_column2: natural;
  variable ILine: line;
begin
  for i in 0 to NSAMPLES-1 loop
    readline (input_vectors, ILine);
    read(ILine, input_data_column1);
    read(ILine, input_data_column2);
    -- Now you can do things like conv_std_logic_vector(input_data_column1, bitwidth) etc
  end loop;
end process;

注意:如果可以接受任何空格,我不是很肯定。空间对我有用。

07-26 05:17