具体的错误原因与解决办法官网已经给出。这里讨论一下就一篇文章中一个错误判断的例子,这种情况官网并没有给出。
原文如下:
" ERROR:Xst:899 - "file_name", line #: The logic for "net_name" does not match a known FF or Latch template."
又如下例同样会出现以上错误:
原因是在两个always里不能同时对一个寄存器赋值.
首先这段代码的书写风格不说啥了,但是实在看不下去,always块不加begin...end不说,if...else时而加begin...end时而不加看的我眼花缭乱。
切入正题,给出结论XST:899错误不是因为在两个always块中对同一个寄存器赋值造成的,此操作产生的错误应该是ERROR:Xst:528 - Multi-source in Unit <misc> on signal <Mcount_clk_cnt_cy<0>>; this signal is connected to multiple drivers.
之类。产生XST:899错误的真正原因是第二个always块中,条件判断中没有使用rst_n信号。在这种类似结构中,有两个敏感信号时,必须有一个充当reset信号的角色,即必须包含if(rst_n)...