我正在为SPI接口编写一个测试平台。该接口基本上由四个信号组成:
..诸若此类
每一行表示总线上的spi操作。我编写测试平台的问题是关于SPI操作的长度。很容易看出,在一个操作中传输的字节是可变的。我的目的是使用函数readline和hread逐行获取值并输入我的模块,例如:
process
file miso_file : TEXT is in "TestBench/MISO_DATA.txt";
variable miso_line : LINE;
variable VAR_miso : std_logic_vector(63 downto 0) := (others => '0');
file mosi_file : TEXT is in "TestBench/MOSI_DATA.txt";
variable mosi_line : LINE;
variable VAR_mosi : std_logic_vector(63 downto 0) := (others => '0');
variable mosi_good : boolean;
variable miso_good : boolean;
begin
... some code ...
while not(endfile(miso_file)) loop
readline(miso_file,miso_line);
hread(miso_line,VAR_miso,miso_good);
...some code...
end loop;
wait;
end process;当行由16个字符( 64位)组成时,此代码工作,但当大小不同时,则不能工作。有人有什么建议吗?
非常感谢
发布于 2015-07-15 18:00:44
一旦hread()消耗了行,您就不知道它最初包含了多少字节。您需要在调用miso_line'length之前保存hread(),然后让testbench使用它来确定要发送的向量的哪些部分。
https://stackoverflow.com/questions/31435635
复制相似问题