vhdl - VHDL中顺序语句的速度是多少?
问题描述
在我的一本关于 VHDL 的教科书中,它指出进程语句中的代码将按顺序执行。这意味着它将一个接一个地执行。与并发语句相比。但是,我想知道代码将以何种速度在顺序语句中执行。在编程中,这个速度是由处理器的时钟速度决定的。那么顺序语句的速度决定因素在哪里呢?
解决方案
在编程中,跟踪执行速度是有意义的,因为从根本上说,程序是计算机完成的一组指令。
VHDL,作为一种硬件描述语言,完全是另外一回事。您用 VHDL 编写的代码不提供完成现有硬件的指令。相反,它(不出所料)描述了硬件。反过来,您在代码中定义的逻辑定义了在数字电路中实现的逻辑,该数字电路本身将根据设计中的激励进行操作。
这就是为什么参考您的其他问题,信号不会立即更新的原因。信号分配只是对在硬件中实现的关系的描述。为了使这种关系变成一个执行过程,它需要某种物理刺激 - 因此每个过程的敏感性列表,对哪些信号作为对已实现逻辑的哪些部分的刺激的描述。
因此,要解决您的问题:顺序语句不会像编程命令那样“执行”。相反,它描述了硬件将在给定运行过程中执行的逻辑操作(例如,在时钟设计中,这可能是每个时钟周期)。理想情况下,发生的“快”多快取决于您在代码中的描述以及硬件速度;根据您的设计,您可能会尝试在太短的时间内完成太多工作(例如,同样是一个时钟周期),并且会遇到时序限制。
但需要注意的重要一点是,这不是代码的执行,而是信号/位通过代码描述的物理电路的移动。您用 VHDL 定义的是硬件,而不是指令。要考虑的速度是硬件和设计的运行速度,而不是理解为一组指令的代码的完成度。
推荐阅读
- ruby - 如何将数字列表与具有数字列表的另一个文件匹配?
- java - 无需任何数学运算即可使用双底数和整数指数求幂。Java中的库
- javascript - 如何在 React 上实现“跳转到内容”的 Web 可访问性功能?
- python - 求解单项和多项式 Python 类
- javascript - 如何使用 Hooks 设置状态?
- python - 尝试按数字和字母顺序对这个地址列表进行排序
- regex - 使用 spark 删除 txt 文件中的特殊字符
- java - 如何在文本文件中保留句子、行空间和段落
- g1ant - 为什么“ie.waitforcomplete 10000”不起作用?
- django - Django:模板需要根据您的身份返回每个项目的结果