module external_reg #( parameter WIDTH = 32, parameter SUBWORDS = 1 )( input wire clk, input wire rst, input wire [SUBWORDS-1:0] req, input wire req_is_wr, input wire [WIDTH-1:0] wr_data, input wire [WIDTH-1:0] wr_biten, output logic rd_ack, output logic [WIDTH-1:0] rd_data, output logic wr_ack ); timeunit 1ps; timeprecision 1ps; logic [SUBWORDS-1:0][WIDTH-1:0] value; task do_write(logic [SUBWORDS-1:0] strb, logic [WIDTH-1:0] data, logic [WIDTH-1:0] biten); automatic int delay; // Random delay delay = $urandom_range(3,0); repeat(delay) @(posedge clk) $info("Write delay: %d", delay); for(int i=0; i