Ich verwende UVM, um die sehr einfache Schnittstelle zu testen und nun mit dem Problem "Eckfall" konfrontiert zu werden. Also muss ich Logik [0: 7] Signal vom Ausgabemonitor an die Anzeigetafel senden. Dieser Teil des Codes ist:Senden des Bussignals über den Analyse-Port
class outputMonitor extends uvm_monitor;
..
logic [7:0] lcdCmd;
uvm_analysis_port #(logic) sendPrt;
task run_phase (uvm_phase phase);
forever
begin
sendPrt.write(lcdCmd) ;
end
endtask
endclass
class scoreboard extends uvm_subscriber #(logic);
`uvm_component_utils(scoreboard)
function void write (logic t);
$display("%t: scoreboard: ########### calling write function-- data=%b", $time, t);
endfunction
endclass
Während der Simulation Ich sehe, dass nur das letzte Bit lcdCmd übertragen wird scorebaord. Gibt es eine Möglichkeit, die gesamten Busdaten über Ports zu übertragen?
Natürlich kann ich Struktur oder Transaktion erstellen, legen Sie die lcdCmd dort und senden Sie die Struktur. Aber warum kann ich nicht einfach den Bus schicken?
Dank Hayk
Dank viel arbeitete er – haykp