一、scoreboard:
在scoreboard中有创建analysis_fifo_port,do_compare_data;
拿到寄存器模型中mirror值,拼起来成为reg_send_data,以及spi_item中的值后,从寄存器中进行前门访问得到实际硬件值赋给reg_rec_data;
比较mosi和miso的值分别与reg_send_data、和reg_rec_data。
二、env:
apb_spi_env中包含apb_agent、spi_agent、scoreboard、coverage、rgm、virtual_sequencer等等。
下面先介绍coverage:
1、coverage:
第一个covergroup:寄存器读写的收集:addrXcmd;
第二个covergroup:寄存器写操作时需要等待(pready信号),preadyXwrite;
第三个covergroup:控制寄存器、分频器和从机选择的值。
例化各个covergroup,并在penable来临时对第一个和第二个covergroup采样:传输时;
在penable下降时,对寄存器配置采用。
2、virtual_senquencer:
3、apb_spi_env:
例化agt、scoreboad、coverage、virtual_sequencer、rgm、adapter;
连接时需要将agt和scoreboard连接。
将coverage和virtual中的rgm与env中的连接。
需要将virtual_sequencer中的sequencer与各个agent中的sequencer连接。
需要将rgm中的adapter通过map和sequencer连接。
rgm.map.set_sequencer(apb_agt.apb_sqr,adapter)。