模拟失败:事务不在GHDL升序中

问题描述 投票:-1回答:1

[我正在尝试使用以前使用的Makefile运行并提供了一些编辑的测试台。

[当我尝试运行模拟时,出现以下错误:

./ rc_symbols_testbench:error:事务未按升序排列

./ rc_symbols_testbench:错误:模拟失败

搜索之后,这使我认为我可能在Makefile中定义的单位顺序错误,但我认为我的设置正确。

rc_symbols_testbench:  std_logic_textio.vhd util.vhd config.vhd byte_collector.vhd dcf_symbols.vhd msf_symbols.vhd rc_symbols_testbench.vhd

就等级而言:

测试台同时使用dcf_symbolsmsf_symbols实体以及std_logic_textio.vhdutil.vhdconfig.vhd中的某些常量和函数。

当前,msf_symbols未实现,仅需要util.vhdconfig.vhd

[dcf_symbols需要util.vhdconfig.vhdbyte_collector

最后,byte_collector只需要util.vhd

因此应该是在需要之前声明的所有内容。

测试台本身看起来非常简单,每个时钟周期它都会从文本文件中读取值并将它们加载到相关变量中。

还有什么可能导致此问题,以及如何解决?


根据评论,问题似乎可能来自测试平台数据或测试平台本身,所以:

这似乎是测试台中与更新值有关的部分,鉴于我认为after语句引起的注释,我认为这会引起事务的发生:

  125     process                                                                                                             
  126     ¦   file     data_file:   text;                                                                                     
  127     ¦   variable data_line:   line;                                                                                     
  128     ¦   variable dcf_di_var:  std_logic;                                                                                
  129     ¦   variable dcf_tri_var: std_logic;                                                                                
  130     ¦   variable dcf_si_var:  std_logic;                                                                                
  131     ¦   variable msf_di_var:  std_logic;                                                                                
  132     ¦   variable msf_tri_var: std_logic;                                                                                
  133     ¦   variable msf_si_var:  std_logic;                                                                                
  134     ¦   variable t_var:       time;                                                                                     
  135     begin                                                                                                               
  136     ¦   file_open(data_file, "rc_sample.dat", read_mode);                                                               
  137                                                                                                                         
  138     ¦   while not endfile(data_file) loop                                                                               
  139     ¦   ¦   readline(data_file, data_line);                                                                             
  140                                                                                                                         
  141     ¦   ¦   read(data_line, dcf_di_var);                                                                                
  142     ¦   ¦   read(data_line, dcf_tri_var);                                                                               
  143     ¦   ¦   read(data_line, dcf_si_var);                                                                                
  144     ¦   ¦   read(data_line, msf_di_var);                                                                                
  145     ¦   ¦   read(data_line, msf_tri_var);                                                                               
  146     ¦   ¦   read(data_line, msf_si_var);                                                                                
  147                                                                                                                         
  148     ¦   ¦   read(data_line, t_var);                                                                                     
  149                                                                                                                         
  150     ¦   ¦   if t_var > now then                                                                                         
  151     ¦   ¦   ¦   wait for t_var - now;                                                                                   
  152     ¦   ¦   end if;                                                                                                     
  153                                                                                                                         
  154     ¦   ¦   dcf_di  <= transport dcf_di_var after gate_delay;                                                           
  155     ¦   ¦   dcf_tri <= dcf_tri_var, '0' after 39.21568627 us; --1 clock cycle                                           
  156     ¦   ¦   dcf_si  <= dcf_si_var,  '0' after 39.21568627 us;                                                           
  157     ¦   ¦   msf_di  <= transport msf_di_var after gate_delay;                                                           
  158     ¦   ¦   msf_tri <= msf_tri_var, '0' after 39.21568627 us;                                                           
  159     ¦   ¦   msf_si  <= msf_si_var,  '0' after 39.21568627 us;                                                           
  160                                                                                                                         
  161     ¦   end loop;                                                                                                       
  162     ¦   file_close(data_file);                                                                                          
  163     ¦   eod <= '1';                                                                                                     
  164     ¦   wait;                                                                                                           
  165     end process; 

[gate_delay0.1ns

以及rc_sample.dat的样本:

 0 0 0 1 0 0 536300.0002 us                                                                                              
 1 0 0 1 0 0 552600.0002 us                                                                                              
 1 0 0 0 0 0 655900.0002 us                                                                                              
 0 0 0 0 0 0 659700.0002 us                                                                                              
 0 0 0 1 0 0 1536400.0002 us                                                                                             
 1 0 0 1 0 0 1554200.0002 us                                                                                             
 1 0 0 1 1 0 1636800.0002 us                                                                                             
 1 0 0 1 0 0 1636900.0002 us                                                                                             
 1 1 0 1 0 0 1654600.0002 us                                                                                             
 1 0 0 1 0 0 1654700.0002 us                                                                                             
 0 0 0 1 0 0 1659700.0002 us                                                                                             
 0 0 0 1 1 0 1736900.0002 us                                                                                             
 0 0 0 1 0 0 1737000.0002 us                                                                                             
 0 1 0 1 0 0 1754700.0002 us                                                                                             
 0 0 0 1 0 0 1754800.0002 us                                                                                             
 0 0 0 0 0 0 1756300.0002 us                                                                                             
 0 0 0 0 1 0 1837000.0002 us                                                                                             
 0 0 0 0 0 0 1837100.0002 us                                                                                             
 0 1 0 0 0 0 1854800.0002 us                                                                                             
 0 0 0 0 0 0 1854900.0002 us                 

对我来说,一切似乎都按升序排列,所以我仍然不确定。

vhdl simulation fpga vivado ghdl
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.