验证环境采样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
    • 分析:
      • 将数据采样和采样的条件放在两个线程里,互不影响
相关推荐
unicrom_深圳市由你创科技1 小时前
板上调试,先抓哪些信号?排查顺序是什么?
fpga开发
北城笑笑4 小时前
FPGA 55 ,FPGA 行业 2026 发展分析与报告
fpga开发·fpga
Jason_zhao_MR5 小时前
新一代电能数据采集终端方案
linux·人工智能·嵌入式硬件·fpga开发·嵌入式
ERROR:991 天前
AMD Ross没有介入Vivado的私生活
fpga开发
Riwuarua1 天前
从近似 0 基础开始 FPGA 开发——Part.18:FPGA 复位系统与可靠启动设计
fpga开发
智感子2 天前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
szxinmai主板定制专家3 天前
基于Zynq的高精度多通道数据采集卡完整解决方案(工业振动/高速采集/边缘传输)
fpga开发·zynq·数据采集卡
szxinmai主板定制专家3 天前
基于TI AM62x+FPGA的24bit高精度数据采集卡设计(振动/风电/发动机监测)
人工智能·fpga开发·arm+fpga·rk3588+fpga
szxinmai主板定制专家3 天前
基于 ARM+FPGA 雕刻机控制系统的设计
arm开发·人工智能·fpga开发·rk3576·半导体设备
吉他英雄一里4 天前
zynq入门教程
fpga开发·zynq