Я пытаюсь выяснить, как подключить несколько UVC (компонентов проверки UVM) к одному и тому же тестируемому устройству, где UVC не имеют общего интерфейса, но подключаются к одним и тем же сигналам на тестируемом устройстве.
ИУ, которое может работать с разными протоколами на общих сигналах и может переключаться между протоколами после получения определенной последовательности. Каждый протокол был независимо разработан в собственный UVC; назовем их низкоскоростными и высокоскоростными. Предположим, что интерфейсы и тестируемое устройство следующие:
interface lowspeed_if( input bit clock, reset );
logic a;
logic b;
logic c;
logic [7:0] io_drv; wire [7:0] io = io_drv;
wire ready;
initial {a,b,c,io_drv} = 'z;
endinterface : lowspeed_if
interface highspeed_if( input bit clock, clk2, reset );
logic a;
logic b_drv; wire b = b_drv;
logic [7:0] io_drv; wire [7:0] io = io_drv;
wire ready;
initial {a,b_drv,io_drv} = 'z;
endinterface : highspeed_if
module device_to_test(input a, inout b, input c, inout [7:0] io, output ready);
/* RTL */
endmodule : device
Поскольку UVC не были разработаны с учетом других протоколов, низкоскоростной драйвер/монитор может подключаться только к lowspeed_if
, а высокоскоростной драйвер/монитор может подключаться только к highspeed_if
. Это означает, что есть два интерфейса, которые должны подключаться к одним и тем же сигналам a
, b
, io
и ready
.
Есть ли способ подключить эти UVC к одному и тому же тестируемому устройству без изменения исходных UVC?