我正在使用一些VHDL代码(在FPGA上)读取16位数字信号,做一些处理,然后写出16位处理后的信号。目前它的设置应该是每10个时钟周期读一次输入,在下一个时钟周期进行一些处理(目前它什么都不做,只是输出输入),然后在剩下的8个时钟周期内递增计数器。使用If条件每10个时钟周期执行一次“某事”。如果“某事”需要超过1个时钟周期,该怎么办?
如果处理需要超过一个时钟周期才能完成(会如何),它会一直持续到完成并停止计数器递增直到它结束为止?或者计数器在处理信号时保持并行递增?
我将它设置为在8个时钟周期结束之前完成该过程(及时写入输出)。
的伪代码看起来是这样的:
Do (on rising clock edge):
if (n = 10) then
n <= 1;
Output <= ProcessedSignal;
InputSignal <= Input;
elsif (n = 1) then
n <= n + 1
Output <= Output;
-- do some signal processing here (e.g. a filter)
ProcessedSignal <= InputSignal;
else
n <= n + 1;
Output <= Output;
ProcessedSignal <= ProcessedSignal;
end if;
你的问题似乎为时过早。请参见[我如何提出一个好问题?](http://stackoverflow.com/help/how-to-ask)您可以编写一些实际的VHDL代码并进行模拟,以便您可以针对可复制的问题提出具体问题通过一个[最小,完整和可验证的例子](http://stackoverflow.com/help/mcve)。 – user1155120