一、验证思路
对portout先做set,但并不是对全部bit位都做set,对简单寄存器地址访问的思路如上图,tb从AHB端写入,从portout读回;从portin写入,从AHB端读回,都是通过`uvm_do_with的方式对寄存器地址进行read和write;
masked bit过程,对于portin来说,当id > 0时,先需要暂存一下当前的bit id,把对应的id交出来,这样就完成了一个mask的过程;
接下来对portout和portin做一个简单的compare,为了考虑bit位的翻转问题,设定初始值1,0,1;AHB端拿到portin之前需要等待3个周期,一拍做记录,两拍做同步(双触发器同步);
前面不使用寄存器模型,先对数据基本的读写进行测试;先配置好简单测试需要的寄存器地址信息;
二、时序分析
1、过了三个时钟上升沿后,开始从AHB读回portin信号;
2、过了两个时钟上升沿后,开始从portout读回AHB写入的信号;