vhdl - Active-HDL 仿真时钟交叉

标签 vhdl simulation clock active-hdl

我有 2 个模块使用相同的时钟但在不同的文件中,当我在模块 B 中采样来自模块 A 的信号时,在波形仿真中它没有像它应该的那样在一个时钟周期后获得样本,它表明是同一上升沿的样本(适合异步实例化的行为)。

有人告诉我这是因为 Active-HDL 认为它是 2 个不同的时钟,因为组件不同,这就是为什么它在同一个上升沿采样(因为信号从 A 到 B 的增量时间)。

我如何定义 Active-HDL 将理解它们在同一区域使用相同的时钟?

最佳答案

这与您的模拟器无关。我假设你正在做这样的事情:

        +----------+           +----------+
        |          |-- clk --->|          |
clk --->| Module A |           | Module B |
        |          |-- data -->|          |
        +----------+           +----------+

你应该在哪里做这样的事情:

        +----------+           +----------+
        |          |           |          |
clk -+->| Module A |-- data -->| Module B |
     |  |          |           |          |
     |  +----------+           |          | 
     |                         |          |
     +-----------------------> |          |
                               +----------+

第一种配置的问题在于,当您的时钟信号通过模块 A 时,它会延迟一个或多个增量周期。因此,它可能会在与数据信号相同或更晚的增量周期中切换。这是您在模拟器的波形 View 中看不到的东西(除非它有扩展增量周期的选项),但您可以查看 ListView 以准确了解增量时间中发生的情况。

关于vhdl - Active-HDL 仿真时钟交叉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178195/

相关文章:

javascript - 图像类别根据一天中的时间而变化

python - Python 中的时钟

vhdl - 在 '.all' 子句中使用 'use' 有什么缺点吗?

syntax - 目的是提供一种以上的架构?

java - Java 版电梯模拟器帮助

java - 模拟时钟工作但秒重画

syntax-error - VHDL 4位吠陀乘法器

algorithm - 算术平均值

wpf - 是否曾在 WPF 或 Silverlight 中做过布料模拟?

C++ 模拟脉冲串序列