7.1 理解功能

image.png
阅读Wathcdog 上锁寄存器,[31:1]是可写的,[0]反应了当前寄存器的状态。
寄存器的上锁测试不是功能测试的一种,因此没有必要放到element_seq中,单独进行一个case语句即可。

7.2 编辑测试用例

:::info

  1. 创建一个apb_watchdog_reg_lock_virt_seq.sv;
  2. 创建对应的test.sv
  3. 在.svh文件中导入新创建的seq和test。 ::: :::info

  4. 在reg_lock_virt_seq中添加监测寄存器状态的函数,分别检查lock及unlock以后寄存器的值 ::: :::danger 【思考】
    检查寄存器上锁测试中一般分为三个状态:

  • 默认访问的模式(非上锁状态);
  • 上锁状态下检测;
  • 解锁状态下检测。 :::

    【调试与结果】

    image.png

    根据结果来看,解锁以后寄存器的状态是1不是0,说明寄存器没有被解锁成功。

image.png

将wrdata中的[31:1]位创建成wracc这个bus,结果发现写入的值就是1ACCE551

image.png

经过检查,对lock寄存器32位都写入1ACCE551那么就会解锁。