Я написал тестовую среду axi4_stream.Это хорошо работает, но теперь мне нужно протестировать дизайн с seq_item, который наследует предыдущий элемент.Этот элемент переопределяет функции convert2string и do_compare.
Я думал параметризировать все классы axi4_stream с помощью seq_items, но через час попыток сделать это, я пришел к выводу, что это просто боль, и мне нужно копать в другом направлении.
здесь прототипы моих классов
оригинал:
class axi4_s_seq_item extends uvm_sequence_item;
class axi4_s_sequence extends uvm_sequence#(axi4_s_seq_item);
class axi4_s_sequencer extends uvm_sequencer#(axi4_s_seq_item);
class axi4_s_master extends uvm_driver#(axi4_s_seq_item);
class axi4_s_slave extends uvm_driver();
class axi4_s_monitor extends uvm_monitor;
class axi4_s_scoreboard extends uvm_scoreboard;
class axi4_s_agent extends uvm_agent;
...
как я думал изменить:
class new_axi4_s_seq_item extends axi4_s_seq_item;
class axi4_s_seq_item extends uvm_sequence_item;
class axi4_s_sequence#(type seq_item = axi4_s_seq_item) extends uvm_sequence#(seq_item);
class axi4_s_sequencer#(type seq_item = axi4_s_seq_item) extends uvm_sequencer#(seq_item);
class axi4_s_master#(type seq_item = axi4_s_seq_item) extends uvm_driver#(seq_item);
class axi4_s_slave extends uvm_driver();
class axi4_s_monitor#(type seq_item = axi4_s_seq_item) extends uvm_monitor;
class axi4_s_scoreboard#(type seq_item = axi4_s_seq_item) extends uvm_scoreboard;
class axi4_s_agent#(type seq_item = axi4_s_seq_item) extends uvm_agent;
...
Я думаю, я могу использовать определения для изменения имен классов, но все же я думаю, что есть решение ООП.