我的vhdl代码中有一个时钟,但是我不使用它,只是当一个组件完成并输出时,我的过程仅取决于握手,此输出在我的FSM的敏感度列表中,然后成为输入下一个组件,当然它的输出也位于我的FSM的敏感度列表中(以便知道该组件何时完成计算)……等等。
这种方法错误吗?它既可以在仿真中使用,也可以在路由后仿真中使用,但是会得到如下警告:warning:在保持对CLK的状态下保持高违规;和
警告:与时钟有关,对我保持低电平违反;
这个警告并不重要,还是因为我的代码不依赖时钟,所以我的代码会损坏我的fpga吗?
最佳答案
您收到的警告是计时违规。之所以能够获得这些信息,是因为这些工具检测到您的设计没有遵守内部基元的必要时序限制。
例如,查找表(这是FPGA内部的主要构建块之一)的输入需要保持特定的时间,以使输出稳定。当您的整个时序仅依赖于组件本身的延迟和延迟,并且完全基于异步切换时,很难保证这一点。
根据您的实际设计(主要是它的大小和复杂性),我猜测您一旦将其放入FPGA中,最终将遇到很多很难调试的错误。使用时钟将使您的工作变得轻松得多。这将使您对信号何时到达何处有一个清晰的认识,并使您可以使用内部工具检查您的时序。您还将发现与其他设备的连接更加容易,并且您的系统将不易受到噪声输入的影响。
因此,总而言之,请使用时钟。您(可能)不这样做就不会损坏您的FPGA,但是时钟可以避免许多麻烦。
关于vhdl - Vhdl,没有clk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15538335/