在 vhdl 中循环
Looping in vhdl
我正在为 RSA 算法编写代码。我需要使用循环才能工作。但是循环没有明确的界限。所以它是不可合成的。还有其他循环方法吗?请帮忙。
循环的种类无关紧要。您无法综合可变数量的硬件。但是,要使循环可合成,它必须具有明确的 上限 - 合成器必须清楚最大迭代次数。允许提前退出循环。
我建议您坚持使用 for
循环进行综合。这将使您的代码更具可移植性。
您不需要使用循环,但也许您觉得它最方便?
如果您使用循环来定义构建了多少硬件,您需要包括所有可能的硬件(因此对循环有一个高限制),然后使用一些逻辑从右边获取您需要的输出放置在硬件中,所以模拟循环的情况 "exiting early"
或者,如果您在状态机中模拟软件循环,则可以在状态变量中跟踪迭代或 "complete" 的标志,并使用它移动到下一个当您执行了足够的计算时声明。
我正在为 RSA 算法编写代码。我需要使用循环才能工作。但是循环没有明确的界限。所以它是不可合成的。还有其他循环方法吗?请帮忙。
循环的种类无关紧要。您无法综合可变数量的硬件。但是,要使循环可合成,它必须具有明确的 上限 - 合成器必须清楚最大迭代次数。允许提前退出循环。
我建议您坚持使用 for
循环进行综合。这将使您的代码更具可移植性。
您不需要使用循环,但也许您觉得它最方便?
如果您使用循环来定义构建了多少硬件,您需要包括所有可能的硬件(因此对循环有一个高限制),然后使用一些逻辑从右边获取您需要的输出放置在硬件中,所以模拟循环的情况 "exiting early"
或者,如果您在状态机中模拟软件循环,则可以在状态变量中跟踪迭代或 "complete" 的标志,并使用它移动到下一个当您执行了足够的计算时声明。