验证环境采样rtl时序数据遇到的问题

记录验证环境采样rtl时序数据遇到的问题

需要解决的问题:

  • 需要在每个时钟周期查看read_en信号是否生效,如果生效在下个周期拿出data

  • wave示例:

  • 注释:read_en为3bit低有效数据,即当read_en != 'h7时读有效

遇到的问题:

  • 错误示例:

    {sv} 复制代码
        forever begin
            @(posedge clk)
            if(read_en != 'h7) begin
                @(posegde clk)
                get_data();
            end
        end
  • 错误分析:

    • 在第一个read_en生效后,即read_en为0时,需要等待一个周期去拿去数据A,但这时候拿数的逻辑超过了1个周期,导致下次read_en没有被采样到,会跳过B直接去拿C
  • 正确的做法:

    {sv} 复制代码
        event start_read;
        fork
            forever begin
                @(posedge clk)
                if(read_en != 'h7)
                    -> stat_read
            end
            forever begin
                @(start_read);
                @(posedge clk)
                    get_data();
            end
        join
    • 分析:
      • 将数据采样和采样的条件放在两个线程里,互不影响
相关推荐
Kong_19949 小时前
芯片开发学习笔记·二十九——大模型基础知识与 KV Cache 详解
fpga开发·芯片开发
m0_46644103詹湛10 小时前
FPGA 定点数、小数与负数的加减乘除原理
fpga开发
zlinear数据采集卡12 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
zlinear数据采集卡16 小时前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
FPGA小迷弟16 小时前
Vivado中高速收发器GTX/GTH的配置与调试实战
fpga开发·fpga·硬件开发
minglie116 小时前
简易寄存器接口SMMR---iic控制器
fpga开发
FPGA小迷弟16 小时前
Vivado ILA与VIO调试工具实战指南:从入门到精通
fpga开发·fpga·硬件开发
FPGA小迷弟1 天前
FPGA状态机设计详解:从Moore到Mealy的完整指南
fpga开发·fpga
zlinear数据采集卡2 天前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
zlinear数据采集卡2 天前
ZLinear产品线全景对比:D223 vs DABL7606 vs DABL-G511选型指南
arm开发·嵌入式硬件·算法·fpga开发·开源