验证环境采样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
    • 分析:
      • 将数据采样和采样的条件放在两个线程里,互不影响
相关推荐
FPGA小迷弟5 小时前
FPGA 与卫星:从星载硬件到在轨智能的完整技术解析
fpga开发·架构·fpga·1024程序员节·无线电
NamoAmitabha1286 小时前
CPU 内部结构是什么?---deepseek
fpga开发
abc light7 小时前
ARM 裸机开发(6)——时钟树与定时器
arm开发·单片机·fpga开发
1560820721921 小时前
JFMZQ28DR、JFMZQ68DR、RFsoc XCZU47DR、XCZU48DR 信号处理板
fpga开发·信号处理
XMAIPC_Robot1 天前
-40~85℃宽温实测:RK3588 机器人控制器硬件底座,长时间 SLAM 定位稳定性验证
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
樱木花道長1 天前
AMD Ross 深度系列 8:FAQ 七问七答(文末附网盘链接)
人工智能·fpga开发
FPGA小迷弟1 天前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
低慢小uav1 天前
(已解决)Zynq芯片lwip协议栈,使用tcp作为服务器Service,接收大量数据时,长度接收正常,接收对数据校验,校验和异常分析
网络协议·tcp/ip·fpga开发
szxinmai主板定制专家1 天前
ARM+FPGA 数控机床控制器:选 CODESYS SoftMotion CNC,还是基于 LinuxCNC 自研搭建?架构、授权、实时性、量产风险深度对比
arm开发·fpga开发·codesys·数据采集卡·linuxcnc·rk3576
女神下凡1 天前
芯参谋(79):嵌入式学习进阶_(硬件与软件)深入实践指南
arm开发·单片机·嵌入式硬件·学习·fpga开发·设计规范