La integración de RAL a agente
Una vez después de la aplicación RAL, RAL tiene que estar conectado con el Agente de autobús. En esta sección se describe la conexión de RAL con el secuenciador y el monitor del autobús.
La integración de cadenas secuenciales de autobuses
Todos los enfoques de integración requieren un modelo de registro para ser configurado con uno o más secuenciadores de autobuses.
El modelo de registro se convierte en una propiedad de un subtipo uvm_reg_sequence que ejecuta
- Directamente en un secuenciador de autobuses, si sólo hay una interfaz de bus que proporciona acceso a los registros DUT
- Como una secuencia virtual, si hay una o más interfaces de bus que proporcionan acceso a los registros DUT;
- Como una secuencia de registro consecutivo
La integración del modelo de registro con un monitor de bus
Por defecto, el modelo de registro actualiza su copia espejo del registro valora de forma implícita. Cada vez que un registro se lee o escribe a través del modelo de registro, su valor se actualiza espejo.
Si otros agentes en la interfaz de bus realizan leer y transacciones de escritura fuera del contexto del modelo de registro, el modelo de registro debe aprender de estas operaciones de autobuses para actualizar su espejo en consecuencia.
- La integración se lleva a cabo mediante instanciar primero un componente uvm_reg_predictor
- componente uvm_reg_predictor se conecta entonces al puerto de análisis del monitor de bus
class tb_env extends uvm_env;
reg_model regmodel;
uvm_reg_predictor#(ahb_trans) ahb2reg_predictor;
reg2ahb_adapter reg_adapter;
ahb_agent ahb;
virtual function void build_phase(uvm_phase phase);
ahb2reg_predictor = new(“ahb2reg_predictor”, this);
endfunction
virtual function void connect_phase(uvm_phase phase);
if (regmodel.get_parent() == null) begin
reg_adapter = reg2ahb_adapter::type_id::create(“reg_adapter”,,get_full_name());
...
ahb2reg_predictor.map = regmodel.AHB;
ahb2reg_predictor.adapter = reg_adapter;
ahb.monitor.ap.connect(ahb2reg_predictor.bus_in);
end
...
endfunction
...
endclass