49 lines
1.1 KiB
Systemverilog
49 lines
1.1 KiB
Systemverilog
// DESCRIPTION: Verilator: Verilog Test module
|
|
//
|
|
// This file ONLY is placed under the Creative Commons Public Domain
|
|
// SPDX-FileCopyrightText: 2025 Antmicro
|
|
// SPDX-License-Identifier: CC0-1.0
|
|
|
|
package uvm_pkg;
|
|
class uvm_queue #(
|
|
type T = int
|
|
);
|
|
endclass
|
|
class m_uvm_waiter;
|
|
endclass
|
|
class uvm_config_db #(
|
|
type T = int
|
|
);
|
|
static local uvm_queue #(m_uvm_waiter) m_waiters[string];
|
|
static function void set(int a, string b, string c, int d);
|
|
endfunction
|
|
endclass
|
|
endpackage
|
|
package sfr_agent_pkg;
|
|
class sfr_monitor_abstract;
|
|
endclass
|
|
endpackage : sfr_agent_pkg
|
|
module sfr_monitor_bfm #(
|
|
ADDR_WIDTH = 8,
|
|
DATA_WIDTH = 8
|
|
) (
|
|
input [ADDR_WIDTH-1:0] address
|
|
);
|
|
import uvm_pkg::*;
|
|
import sfr_agent_pkg::*;
|
|
int SFR_MONITOR;
|
|
initial begin
|
|
uvm_config_db#(sfr_monitor_abstract)::set(null, "uvm_test_top", "SFR_MONITOR", SFR_MONITOR);
|
|
end
|
|
endmodule : sfr_monitor_bfm
|
|
module hdl_top;
|
|
parameter DATA_WIDTH = 32;
|
|
parameter ADDR_WIDTH = 32;
|
|
sfr_monitor_bfm #(
|
|
.ADDR_WIDTH(ADDR_WIDTH),
|
|
.DATA_WIDTH(DATA_WIDTH)
|
|
) SFR_MONITOR (
|
|
.address(42)
|
|
);
|
|
endmodule
|