我已经使用VHDL一段时间了,我发现调试VHDL设计比设计它更困难。由于流程是并发的,因此很难知道设计的哪一部分存在错误。
像C一样,我们可以使用一些简单的degging规则,例如放置printf语句以查看错误位置,是否有任何简单的技巧和窍门在VHDL中查找此类错误。
还请向我建议任何可用于同一网站的网站或文档。
这个问题可能有点含糊,但是我尝试做一些事情来简化设计工作。它基于观点,但确实来自个人经验。
您可以使用简单的断言在仿真过程中捕获某些类型的问题。例:
if (rising_edge(clk)) then
assert (a /= b)
report "a and b should never be equal!"
severity error;
end if;
Run Code Online (Sandbox Code Playgroud)同样,您可以单独使用该report
语句来打印信号值。例:
if (rising_edge(clk)) then
report "count is now " & integer'image(count);
end if;
Run Code Online (Sandbox Code Playgroud)
Report
在已编译的FPGA中不执行任何操作,仅用于仿真。