假设我有一个文件,其中填充了用制表符分隔的数据(这种格式):
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;
注意:如果可以接受任何空格,我不是很肯定。空间对我有用。