`include "../outreg.v" module tb; reg fast_clk, slow_clk; initial begin $dumpfile("testbench.vcd"); $dumpvars(0, tb); repeat (80) @(posedge slow_clk); $display("OKAY"); $finish; end always #4 fast_clk = (fast_clk === 1'b0); always #12 slow_clk = (slow_clk === 1'b0); reg [7:0] wdata = 1; always @(posedge fast_clk) wdata <= {wdata[6:0], wdata[7] ^ wdata[2]}; reg [3:0] waddr = 0; always @(posedge fast_clk) waddr <= waddr + 1'b1; reg [3:0] raddr = 0; always @(posedge slow_clk) raddr <= raddr + 1'b1; wire [3:0] rdata, rdata_postsyn; dut dut_i( .fast_clk(fast_clk), .slow_clk(slow_clk), .raddr(raddr), .waddr(waddr), .wen(1'b1), .wdata(wdata[3:0]), .rdata(rdata) ); dut_syn dut_syn_i( .fast_clk(fast_clk), .slow_clk(slow_clk), .raddr(raddr), .waddr(waddr), .wen(1'b1), .wdata(wdata[3:0]), .rdata(rdata_postsyn) ); always @(posedge fast_clk) if (rdata_postsyn != rdata) begin $display("ERROR"); $finish; end endmodule