VHDL 中顺序语句的速度是多少?

What is the speed of a sequential statement in VHDL?

在我的一本关于VHDL的教科书中,它指出进程语句中的代码将按顺序执行。这意味着它将在彼此之后执行。与并发语句相比。但是,我想知道代码将以什么样的速度在顺序语句中执行。在编程中,该速度由处理器的时钟速度决定。那么顺序语句的速度决定因素在哪里?

Vhdl没有速度。假设您指的是使用综合工具编译后实现的 fmax,最终速度将取决于多种因素,包括目标技术和您的设计,其中涵盖您的代码以及您选择的任何约束和策略。

在编程中,跟踪执行速度很有意义,因为程序归根结底是计算机要完成的一组指令。

VHDL 作为一种硬件描述语言,完全是另一回事。您在 VHDL 中编写的代码不提供现有硬件的指令来完成。相反,它(不出所料)描述了硬件。您在代码中定义的逻辑反过来定义了在数字电路中实现的逻辑,该电路本身将根据纳入设计的激励进行操作。

这就是为什么,参考 ,信号不会立即更新。信号分配只是对在硬件中实现的关系的描述。为了将这种关系变成一个执行过程,它需要某种物理刺激 - 因此每个过程的敏感性列表,描述哪些信号作为实施逻辑的哪些部分的刺激。

因此,回答您的问题:顺序语句不像编程命令那样“执行”。相反,它描述了硬件将在给定的 运行 内通过一个进程执行哪些逻辑操作(例如,在时钟设计中,这可能是每个时钟周期)。理想情况下,发生的“速度”有多快取决于您在代码中的描述以及硬件的速度;根据您的设计,您可能会尝试在太短的时间内完成太多(再说一次,一个时钟周期)并且 运行 违反时序限制。

但需要注意的重要一点是,这不是 执行 代码,而是 signals/bits 通过 描述的物理电路 [=24] 的移动=] 通过你的代码。您用 VHDL 定义的是 硬件 ,而不是指令。考虑的速度是硬件和设计的运行速度,而不是理解为一组指令的代码完成。