CRG(clk reset generator)模块验证

一、CRG简介

         时钟复位发生器(Clock Reset Generator)是一个电子设备或电路,用于生成和提供系统中各个部分所需的时钟信号和复位信号。时钟信号用于同步系统中各个组件的操作,而复位信号则用于初始化系统的状态或在系统需要重启时提供复位。

        时钟复位发生器通常包含一个时钟发生器模块,用于生成主时钟信号,并提供给系统中的各个部分使用。此外,时钟复位发生器还包含复位信号生成器,用于产生复位信号以初始化系统。复位信号可以是同步复位信号或异步复位信号,取决于系统设计的要求。

        在数字系统中,时钟信号和复位信号的生成和管理对于系统的正常运行至关重要。时钟复位发生器能够确保系统中各个部分的操作都能按照预定的时序进行,同时在系统需要重新初始化或重启时提供必要的复位信号,确保系统正常运行。

        总的来说,时钟复位发生器是用于生成和管理时钟信号和复位信号的电子设备或电路,在数字系统中起着非常重要的作用。

       通常情况下,在整个SOC系统中存在多个时钟域。并且存在不同子系统,子模块所对应的硬复位,软复位等逻辑配置。在设计上,通常情况下通过配置寄存器可以达到复位某一个子模块,子系统,以及整个芯片的复位。其中软复位仅仅复位对应的逻辑,而硬复位同时会复位掉整体的regbank的寄存器配置。而且往往在设计中存在level复位和pulse复位。其中level指的是需要用户配置复位拉低,且等完成复位目标后,用户再配置寄存器拉高去释放复位;而pulse复位指的是用户只需要配置1次即可,配置完寄存器,DUT完成一个pulse周期的复位拉低并释放。

        以下基于本人目前的项目经验总结了在CRG验证过程中的验证目标,验证思路,肯定存在遗漏与不足,欢迎大家进行指正,交流。

二、CRG 验证目标

        1.检查CRG模块能够送出正确的clk,rst到对应的逻辑单元。

        2.检查所有的rst cfg能够生效,且能够完成复位目标,但不可复位非预期模块,子系统等。

        3.检查软复位能够复位对应的logic,但不影响regbank的寄存器配置。

        4.检查硬复位不仅能够复位对应的logic,而且会把regbank的寄存器配置复位。

        5.检查level复位符合设计预期。

        6.检查pulse复位符合设计预期。

        7.检查在持续打流的过程中进行复位,且能够自恢复(基于DUT,optional)。

三、CRG验证方法

        1.采用assertion去检查能够送出正确的clk,rst给对应模块。

        2.采用一些多feature cross的case去检查配置不同的rst cfg后,只会去复位对应模块的logic,而不影响其余模块的正常通信。例如crg中存在uart rst cfg。那么如果存在一条case,同时会有uart数据流和mipi数据流,那么在发包过程中只配置uart rst cfg,此刻理应只会影响uart,即uart数据比对可能出现问题(可在复位前后开关相应的uart scoreboard)。但不可影响其余feature的通信,比如不影响mipi的持续发包,如果影响,即可能出现接错rst的情况。

        3.在配置软复位后,当复位release后,在不重新配置寄存器的情况下重新进行打流,数据流依旧能够正常work。

        4.在配置硬复位后,当复位release后,此刻寄存器配置已经被复位,无法正常work,因此重新配置相应的寄存器后,再重新打流能够去恢复数据通路。

        5.构造一些异常发生,此刻进行复位,并重新打流,检查能够进行异常恢复。

四、总结

        总的来说,第一步是检查clk,rst能够符合设计预期,能够在完成复位目标的同时,而不出现影响其余模块,子系统的情况。第二步是能够在复位后,不引发新的错误,不影响新的数据流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值