head	1.1;
branch	1.1.1;
access;
symbols
	add:1.1.1.1
	update:1.1.1.4
	samiam95124:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2006.11.01.19.56.19;	author samiam95124;	state Exp;
branches
	1.1.1.1;
next	;
commitid	31604548faf04567;

1.1.1.1
date	2006.11.01.19.56.19;	author samiam95124;	state Exp;
branches;
next	1.1.1.2;
commitid	31604548faf04567;

1.1.1.2
date	2006.11.11.11.58.49;	author samiam95124;	state Exp;
branches;
next	1.1.1.3;
commitid	1fa44555b9f14567;

1.1.1.3
date	2006.11.19.04.16.12;	author samiam95124;	state Exp;
branches;
next	1.1.1.4;
commitid	3554455fda5a4567;

1.1.1.4
date	2006.11.19.10.52.46;	author samiam95124;	state Exp;
branches;
next	;
commitid	51214560374c4567;


desc
@@


1.1
log
@Initial revision
@
text
@////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 1995-2003 Xilinx, Inc.
// All Right Reserved.
////////////////////////////////////////////////////////////////////////////////
//   ____  ____ 
//  /   /\/   / 
// /___/  \  /    Vendor: Xilinx 
// \   \   \/     Version : 8.2.02i
//  \   \         Application : ISE
//  /   /         Filename : cpu8080_tbw.tfw
// /___/   /\     Timestamp : Sat Oct 28 22:18:07 2006
// \   \  /  \ 
//  \___\/\___\ 
//
//Command: 
//Design Name: cpu8080_tbw
//Device: Xilinx
//
`timescale 1ns/1ps

module cpu8080_tbw;
    wire [15:0] addr;
    reg [7:0] data$inout$reg = 8'b00000000;
    wire [7:0] data = data$inout$reg;
    wire readmem;
    wire writemem;
    wire readio;
    wire writeio;
    wire intr;
    wire inta;
    reg waitr = 1'b0;
    wire [2:0] r;
    wire [2:0] g;
    wire [2:0] b;
    wire hsync_n;
    wire vsync_n;
    reg reset_n = 1'b1;
    reg clock = 1'b0;

    parameter PERIOD = 40;
    parameter real DUTY_CYCLE = 0.5;
    parameter OFFSET = 100;

    initial    // Clock process for clock
    begin
        #OFFSET;
        forever
        begin
            clock = 1'b0;
            #(PERIOD-(PERIOD*DUTY_CYCLE)) clock = 1'b1;
            #(PERIOD*DUTY_CYCLE);
        end
    end

    testbench UUT (
        .addr(addr),
        .data(data),
        .readmem(readmem),
        .writemem(writemem),
        .readio(readio),
        .writeio(writeio),
        .intr(intr),
        .inta(inta),
        .waitr(waitr),
        .r(r),
        .g(g),
        .b(b),
        .hsync_n(hsync_n),
        .vsync_n(vsync_n),
        .reset_n(reset_n),
        .clock(clock));

    integer TX_FILE = 0;
    integer TX_ERROR = 0;
    
    initial begin  // Open the results file...
        TX_FILE = $fopen("results.txt");
        #100040 // Final time:  100040 ns
        if (TX_ERROR == 0) begin
            $display("No errors or warnings.");
            $fdisplay(TX_FILE, "No errors or warnings.");
        end else begin
            $display("%d errors found in simulation.", TX_ERROR);
            $fdisplay(TX_FILE, "%d errors found in simulation.", TX_ERROR);
        end
        $fclose(TX_FILE);
        $stop;
    end

    initial begin
        // -------------  Current Time:  110ns
        #110;
        reset_n = 1'b0;
        data$inout$reg = 8'bZZZZZZZZ;
        // -------------------------------------
        // -------------  Current Time:  270ns
        #160;
        reset_n = 1'b1;
        // -------------------------------------
    end

    task CHECK_addr;
        input [15:0] NEXT_addr;

        #0 begin
            if (NEXT_addr !== addr) begin
                $display("Error at time=%dns addr=%b, expected=%b", $time, addr, NEXT_addr);
                $fdisplay(TX_FILE, "Error at time=%dns addr=%b, expected=%b", $time, addr, NEXT_addr);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_readmem;
        input NEXT_readmem;

        #0 begin
            if (NEXT_readmem !== readmem) begin
                $display("Error at time=%dns readmem=%b, expected=%b", $time, readmem, NEXT_readmem);
                $fdisplay(TX_FILE, "Error at time=%dns readmem=%b, expected=%b", $time, readmem, NEXT_readmem);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_writemem;
        input NEXT_writemem;

        #0 begin
            if (NEXT_writemem !== writemem) begin
                $display("Error at time=%dns writemem=%b, expected=%b", $time, writemem, NEXT_writemem);
                $fdisplay(TX_FILE, "Error at time=%dns writemem=%b, expected=%b", $time, writemem, NEXT_writemem);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_readio;
        input NEXT_readio;

        #0 begin
            if (NEXT_readio !== readio) begin
                $display("Error at time=%dns readio=%b, expected=%b", $time, readio, NEXT_readio);
                $fdisplay(TX_FILE, "Error at time=%dns readio=%b, expected=%b", $time, readio, NEXT_readio);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_writeio;
        input NEXT_writeio;

        #0 begin
            if (NEXT_writeio !== writeio) begin
                $display("Error at time=%dns writeio=%b, expected=%b", $time, writeio, NEXT_writeio);
                $fdisplay(TX_FILE, "Error at time=%dns writeio=%b, expected=%b", $time, writeio, NEXT_writeio);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_intr;
        input NEXT_intr;

        #0 begin
            if (NEXT_intr !== intr) begin
                $display("Error at time=%dns intr=%b, expected=%b", $time, intr, NEXT_intr);
                $fdisplay(TX_FILE, "Error at time=%dns intr=%b, expected=%b", $time, intr, NEXT_intr);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_inta;
        input NEXT_inta;

        #0 begin
            if (NEXT_inta !== inta) begin
                $display("Error at time=%dns inta=%b, expected=%b", $time, inta, NEXT_inta);
                $fdisplay(TX_FILE, "Error at time=%dns inta=%b, expected=%b", $time, inta, NEXT_inta);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_r;
        input [2:0] NEXT_r;

        #0 begin
            if (NEXT_r !== r) begin
                $display("Error at time=%dns r=%b, expected=%b", $time, r, NEXT_r);
                $fdisplay(TX_FILE, "Error at time=%dns r=%b, expected=%b", $time, r, NEXT_r);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_g;
        input [2:0] NEXT_g;

        #0 begin
            if (NEXT_g !== g) begin
                $display("Error at time=%dns g=%b, expected=%b", $time, g, NEXT_g);
                $fdisplay(TX_FILE, "Error at time=%dns g=%b, expected=%b", $time, g, NEXT_g);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_b;
        input [2:0] NEXT_b;

        #0 begin
            if (NEXT_b !== b) begin
                $display("Error at time=%dns b=%b, expected=%b", $time, b, NEXT_b);
                $fdisplay(TX_FILE, "Error at time=%dns b=%b, expected=%b", $time, b, NEXT_b);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_hsync_n;
        input NEXT_hsync_n;

        #0 begin
            if (NEXT_hsync_n !== hsync_n) begin
                $display("Error at time=%dns hsync_n=%b, expected=%b", $time, hsync_n, NEXT_hsync_n);
                $fdisplay(TX_FILE, "Error at time=%dns hsync_n=%b, expected=%b", $time, hsync_n, NEXT_hsync_n);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_vsync_n;
        input NEXT_vsync_n;

        #0 begin
            if (NEXT_vsync_n !== vsync_n) begin
                $display("Error at time=%dns vsync_n=%b, expected=%b", $time, vsync_n, NEXT_vsync_n);
                $fdisplay(TX_FILE, "Error at time=%dns vsync_n=%b, expected=%b", $time, vsync_n, NEXT_vsync_n);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask

endmodule

@


1.1.1.1
log
@8080 CPU project
@
text
@@


1.1.1.2
log
@8080 CPU project
@
text
@d11 1
a11 1
// /___/   /\     Timestamp : Sat Nov 04 23:09:57 2006
d31 1
a31 1
    wire waitr;
d37 1
a37 3
    reg ps2_clk = 1'b0;
    reg ps2_data = 1'b0;
    reg reset_n = 1'b0;
a69 2
        .ps2_clk(ps2_clk),
        .ps2_data(ps2_data),
a93 2
        ps2_clk = 1'b1;
        ps2_data = 1'b1;
a95 4
        // -------------  Current Time:  130ns
        #20;
        CHECK_intr(1'b0);
        // -------------------------------------
d97 1
a97 1
        #140;
a99 221
        // -------------  Current Time:  390ns
        #120;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  510ns
        #120;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  590ns
        #80;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  670ns
        #80;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  830ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  990ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1150ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  1310ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1470ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  1630ns
        #160;
        ps2_clk = 1'b1;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  1790ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  1950ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1990ns
        #40;
        ps2_data = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  2110ns
        #120;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  2270ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  2430ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  2590ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  2750ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  2910ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3070ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  3230ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3310ns
        #80;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  3390ns
        #80;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  3550ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3590ns
        #40;
        ps2_data = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3710ns
        #120;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  3870ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  5910ns
        #2040;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  6070ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  6230ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  6390ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  6550ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  6630ns
        #80;
        ps2_data = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  6710ns
        #80;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  6870ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  6910ns
        #40;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  7030ns
        #120;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  7190ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  7350ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  7510ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  7550ns
        #40;
        ps2_data = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  7670ns
        #120;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  7830ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  7910ns
        #80;
        ps2_data = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  7990ns
        #80;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  8150ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  8310ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  8470ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  8630ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  8790ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  8950ns
        #160;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  9110ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  9190ns
        #80;
        ps2_data = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  9270ns
        #80;
        ps2_clk = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  9430ns
        #160;
        ps2_clk = 1'b1;
        // -------------------------------------
a185 12
    task CHECK_waitr;
        input NEXT_waitr;

        #0 begin
            if (NEXT_waitr !== waitr) begin
                $display("Error at time=%dns waitr=%b, expected=%b", $time, waitr, NEXT_waitr);
                $fdisplay(TX_FILE, "Error at time=%dns waitr=%b, expected=%b", $time, waitr, NEXT_waitr);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
@


1.1.1.3
log
@8080 CPU project
@
text
@d11 1
a11 1
// /___/   /\     Timestamp : Sat Nov 18 13:39:13 2006
a40 1
    wire [7:0] diag;
d75 1
a75 2
        .clock(clock),
        .diag(diag));
d82 1
a82 1
        #200040 // Final time:  200040 ns
d97 1
a99 1
        reset_n = 1'b0;
a104 1
        CHECK_diag(8'bXXX11X00);
a109 6
        // -------------  Current Time:  370ns
        #100;
        CHECK_b(3'bXXX);
        CHECK_g(3'bXXX);
        CHECK_r(3'bXXX);
        // -------------------------------------
d111 1
a111 1
        #20;
a113 4
        // -------------  Current Time:  410ns
        #20;
        CHECK_diag(8'bXXX01X00);
        // -------------------------------------
d115 1
a115 1
        #100;
a117 4
        // -------------  Current Time:  530ns
        #20;
        CHECK_diag(8'bXXX00X00);
        // -------------------------------------
d119 1
a119 1
        #60;
a121 4
        // -------------  Current Time:  650ns
        #60;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d123 1
a123 1
        #20;
a125 4
        // -------------  Current Time:  690ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d127 1
a127 1
        #140;
a129 4
        // -------------  Current Time:  850ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d131 1
a131 1
        #140;
a133 4
        // -------------  Current Time:  1010ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d135 1
a135 1
        #140;
a137 4
        // -------------  Current Time:  1170ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d139 1
a139 1
        #140;
a141 4
        // -------------  Current Time:  1330ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d143 1
a143 1
        #140;
a145 4
        // -------------  Current Time:  1490ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d147 1
a147 1
        #140;
a150 4
        // -------------  Current Time:  1650ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d152 1
a152 1
        #140;
a154 4
        // -------------  Current Time:  1810ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d156 1
a156 1
        #140;
a158 4
        // -------------  Current Time:  1970ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d160 1
a160 1
        #20;
a162 4
        // -------------  Current Time:  2010ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d164 1
a164 1
        #100;
a166 4
        // -------------  Current Time:  2130ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d168 1
a168 1
        #140;
a170 4
        // -------------  Current Time:  2290ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d172 1
a172 1
        #140;
a174 4
        // -------------  Current Time:  2450ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d176 1
a176 1
        #140;
a178 4
        // -------------  Current Time:  2610ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d180 1
a180 1
        #140;
a182 4
        // -------------  Current Time:  2770ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d184 1
a184 1
        #140;
a186 4
        // -------------  Current Time:  2930ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d188 1
a188 1
        #140;
a190 4
        // -------------  Current Time:  3090ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d192 1
a192 1
        #140;
a194 4
        // -------------  Current Time:  3250ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d196 1
a196 1
        #60;
a198 4
        // -------------  Current Time:  3330ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d200 1
a200 1
        #60;
a202 4
        // -------------  Current Time:  3410ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d204 1
a204 1
        #140;
a206 4
        // -------------  Current Time:  3570ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d208 1
a208 1
        #20;
a210 4
        // -------------  Current Time:  3610ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d212 1
a212 1
        #100;
a214 4
        // -------------  Current Time:  3730ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d216 1
a216 1
        #140;
a218 4
        // -------------  Current Time:  3890ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d220 1
a220 1
        #2020;
a222 4
        // -------------  Current Time:  5930ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d224 1
a224 1
        #140;
a226 4
        // -------------  Current Time:  6090ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d228 1
a228 1
        #140;
a230 4
        // -------------  Current Time:  6250ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d232 1
a232 1
        #140;
a234 4
        // -------------  Current Time:  6410ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d236 1
a236 1
        #140;
a238 4
        // -------------  Current Time:  6570ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d240 1
a240 1
        #60;
a242 4
        // -------------  Current Time:  6650ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d244 1
a244 1
        #60;
a246 4
        // -------------  Current Time:  6730ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d248 1
a248 1
        #140;
a250 4
        // -------------  Current Time:  6890ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d252 1
a252 1
        #20;
a254 4
        // -------------  Current Time:  6930ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d256 1
a256 1
        #100;
a258 4
        // -------------  Current Time:  7050ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d260 1
a260 1
        #140;
a262 4
        // -------------  Current Time:  7210ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d264 1
a264 1
        #140;
a266 4
        // -------------  Current Time:  7370ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d268 1
a268 1
        #140;
a270 4
        // -------------  Current Time:  7530ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d272 1
a272 1
        #20;
a274 4
        // -------------  Current Time:  7570ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d276 1
a276 1
        #100;
a278 4
        // -------------  Current Time:  7690ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d280 1
a280 1
        #140;
a282 4
        // -------------  Current Time:  7850ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d284 1
a284 1
        #60;
a286 4
        // -------------  Current Time:  7930ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d288 1
a288 1
        #60;
a290 4
        // -------------  Current Time:  8010ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d292 1
a292 1
        #140;
a294 4
        // -------------  Current Time:  8170ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d296 1
a296 1
        #140;
a298 4
        // -------------  Current Time:  8330ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d300 1
a300 1
        #140;
a302 4
        // -------------  Current Time:  8490ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d304 1
a304 1
        #140;
a306 4
        // -------------  Current Time:  8650ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d308 1
a308 1
        #140;
a310 4
        // -------------  Current Time:  8810ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d312 1
a312 1
        #140;
a314 4
        // -------------  Current Time:  8970ns
        #20;
        CHECK_diag(8'bXXX00X01);
        // -------------------------------------
d316 1
a316 1
        #140;
a318 4
        // -------------  Current Time:  9130ns
        #20;
        CHECK_diag(8'bXXX01X01);
        // -------------------------------------
d320 1
a320 1
        #60;
a322 4
        // -------------  Current Time:  9210ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
d324 1
a324 1
        #60;
a326 4
        // -------------  Current Time:  9290ns
        #20;
        CHECK_diag(8'bXXX10X01);
        // -------------------------------------
d328 1
a328 1
        #140;
a330 64
        // -------------  Current Time:  9450ns
        #20;
        CHECK_diag(8'bXXX11X01);
        // -------------------------------------
        // -------------  Current Time:  31090ns
        #21640;
        CHECK_b(3'b000);
        CHECK_g(3'b000);
        CHECK_r(3'b000);
        // -------------------------------------
        // -------------  Current Time:  31890ns
        #800;
        CHECK_hsync_n(1'b0);
        // -------------------------------------
        // -------------  Current Time:  39890ns
        #8000;
        CHECK_hsync_n(1'b1);
        // -------------------------------------
        // -------------  Current Time:  43890ns
        #4000;
        CHECK_b(3'bXXX);
        CHECK_g(3'bXXX);
        CHECK_r(3'bXXX);
        // -------------------------------------
        // -------------  Current Time:  95090ns
        #51200;
        CHECK_b(3'b000);
        CHECK_g(3'b000);
        CHECK_r(3'b000);
        // -------------------------------------
        // -------------  Current Time:  95890ns
        #800;
        CHECK_hsync_n(1'b0);
        // -------------------------------------
        // -------------  Current Time:  103890ns
        #8000;
        CHECK_hsync_n(1'b1);
        // -------------------------------------
        // -------------  Current Time:  107890ns
        #4000;
        CHECK_b(3'bXXX);
        CHECK_g(3'bXXX);
        CHECK_r(3'bXXX);
        // -------------------------------------
        // -------------  Current Time:  159090ns
        #51200;
        CHECK_b(3'b000);
        CHECK_g(3'b000);
        CHECK_r(3'b000);
        // -------------------------------------
        // -------------  Current Time:  159890ns
        #800;
        CHECK_hsync_n(1'b0);
        // -------------------------------------
        // -------------  Current Time:  167890ns
        #8000;
        CHECK_hsync_n(1'b1);
        // -------------------------------------
        // -------------  Current Time:  171890ns
        #4000;
        CHECK_b(3'bXXX);
        CHECK_g(3'bXXX);
        CHECK_r(3'bXXX);
        // -------------------------------------
a488 12
    task CHECK_diag;
        input [7:0] NEXT_diag;

        #0 begin
            if (NEXT_diag !== diag) begin
                $display("Error at time=%dns diag=%b, expected=%b", $time, diag, NEXT_diag);
                $fdisplay(TX_FILE, "Error at time=%dns diag=%b, expected=%b", $time, diag, NEXT_diag);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
@


1.1.1.4
log
@8080 CPU project
@
text
@d11 1
a11 1
// /___/   /\     Timestamp : Sat Nov 18 22:47:07 2006
d79 711
a789 678
        integer TX_ERROR = 0;
        
        initial begin  // Open the results file...
            #200040 // Final time:  200040 ns
            if (TX_ERROR == 0) begin
                $display("No errors or warnings.");
                end else begin
                    $display("%d errors found in simulation.", TX_ERROR);
                    end
                    $stop;
                end

                initial begin
                    // -------------  Current Time:  110ns
                    #110;
                    ps2_clk = 1'b1;
                    ps2_data = 1'b1;
                    reset_n = 1'b0;
                    data$inout$reg = 8'bZZZZZZZZ;
                    // -------------------------------------
                    // -------------  Current Time:  130ns
                    #20;
                    CHECK_intr(1'b0);
                    CHECK_diag(8'bXXX11X00);
                    // -------------------------------------
                    // -------------  Current Time:  270ns
                    #140;
                    reset_n = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  370ns
                    #100;
                    CHECK_b(3'bXXX);
                    CHECK_g(3'bXXX);
                    CHECK_r(3'bXXX);
                    // -------------------------------------
                    // -------------  Current Time:  390ns
                    #20;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  410ns
                    #20;
                    CHECK_diag(8'bXXX01X00);
                    // -------------------------------------
                    // -------------  Current Time:  510ns
                    #100;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  530ns
                    #20;
                    CHECK_diag(8'bXXX00X00);
                    // -------------------------------------
                    // -------------  Current Time:  590ns
                    #60;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  650ns
                    #60;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  670ns
                    #20;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  690ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  830ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  850ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  990ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  1010ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  1150ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  1170ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  1310ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  1330ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  1470ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  1490ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  1630ns
                    #140;
                    ps2_clk = 1'b1;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  1650ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  1790ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  1810ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  1950ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  1970ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  1990ns
                    #20;
                    ps2_data = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  2010ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  2110ns
                    #100;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  2130ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  2270ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  2290ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  2430ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  2450ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  2590ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  2610ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  2750ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  2770ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  2910ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  2930ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  3070ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  3090ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  3230ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  3250ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  3310ns
                    #60;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  3330ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  3390ns
                    #60;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  3410ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  3550ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  3570ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  3590ns
                    #20;
                    ps2_data = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  3610ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  3710ns
                    #100;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  3730ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  3870ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  3890ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  5910ns
                    #2020;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  5930ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  6070ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  6090ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  6230ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  6250ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  6390ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  6410ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  6550ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  6570ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  6630ns
                    #60;
                    ps2_data = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  6650ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  6710ns
                    #60;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  6730ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  6870ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  6890ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  6910ns
                    #20;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  6930ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  7030ns
                    #100;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  7050ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  7190ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  7210ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  7350ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  7370ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  7510ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  7530ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  7550ns
                    #20;
                    ps2_data = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  7570ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  7670ns
                    #100;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  7690ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  7830ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  7850ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  7910ns
                    #60;
                    ps2_data = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  7930ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  7990ns
                    #60;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  8010ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  8150ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  8170ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  8310ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  8330ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  8470ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  8490ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  8630ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  8650ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  8790ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  8810ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  8950ns
                    #140;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  8970ns
                    #20;
                    CHECK_diag(8'bXXX00X01);
                    // -------------------------------------
                    // -------------  Current Time:  9110ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  9130ns
                    #20;
                    CHECK_diag(8'bXXX01X01);
                    // -------------------------------------
                    // -------------  Current Time:  9190ns
                    #60;
                    ps2_data = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  9210ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  9270ns
                    #60;
                    ps2_clk = 1'b0;
                    // -------------------------------------
                    // -------------  Current Time:  9290ns
                    #20;
                    CHECK_diag(8'bXXX10X01);
                    // -------------------------------------
                    // -------------  Current Time:  9430ns
                    #140;
                    ps2_clk = 1'b1;
                    // -------------------------------------
                    // -------------  Current Time:  9450ns
                    #20;
                    CHECK_diag(8'bXXX11X01);
                    // -------------------------------------
                    // -------------  Current Time:  31090ns
                    #21640;
                    CHECK_b(3'b000);
                    CHECK_g(3'b000);
                    CHECK_r(3'b000);
                    // -------------------------------------
                    // -------------  Current Time:  31890ns
                    #800;
                    CHECK_hsync_n(1'b0);
                    // -------------------------------------
                    // -------------  Current Time:  39890ns
                    #8000;
                    CHECK_hsync_n(1'b1);
                    // -------------------------------------
                    // -------------  Current Time:  43890ns
                    #4000;
                    CHECK_b(3'bXXX);
                    CHECK_g(3'bXXX);
                    CHECK_r(3'bXXX);
                    // -------------------------------------
                    // -------------  Current Time:  95090ns
                    #51200;
                    CHECK_b(3'b000);
                    CHECK_g(3'b000);
                    CHECK_r(3'b000);
                    // -------------------------------------
                    // -------------  Current Time:  95890ns
                    #800;
                    CHECK_hsync_n(1'b0);
                    // -------------------------------------
                    // -------------  Current Time:  103890ns
                    #8000;
                    CHECK_hsync_n(1'b1);
                    // -------------------------------------
                    // -------------  Current Time:  107890ns
                    #4000;
                    CHECK_b(3'bXXX);
                    CHECK_g(3'bXXX);
                    CHECK_r(3'bXXX);
                    // -------------------------------------
                    // -------------  Current Time:  159090ns
                    #51200;
                    CHECK_b(3'b000);
                    CHECK_g(3'b000);
                    CHECK_r(3'b000);
                    // -------------------------------------
                    // -------------  Current Time:  159890ns
                    #800;
                    CHECK_hsync_n(1'b0);
                    // -------------------------------------
                    // -------------  Current Time:  167890ns
                    #8000;
                    CHECK_hsync_n(1'b1);
                    // -------------------------------------
                    // -------------  Current Time:  171890ns
                    #4000;
                    CHECK_b(3'bXXX);
                    CHECK_g(3'bXXX);
                    CHECK_r(3'bXXX);
                    // -------------------------------------
                end

                task CHECK_addr;
                    input [15:0] NEXT_addr;

                    #0 begin
                        if (NEXT_addr !== addr) begin
                            $display("Error at time=%dns addr=%b, expected=%b", $time, addr, NEXT_addr);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_readmem;
                    input NEXT_readmem;

                    #0 begin
                        if (NEXT_readmem !== readmem) begin
                            $display("Error at time=%dns readmem=%b, expected=%b", $time, readmem, NEXT_readmem);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_writemem;
                    input NEXT_writemem;

                    #0 begin
                        if (NEXT_writemem !== writemem) begin
                            $display("Error at time=%dns writemem=%b, expected=%b", $time, writemem, NEXT_writemem);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_readio;
                    input NEXT_readio;

                    #0 begin
                        if (NEXT_readio !== readio) begin
                            $display("Error at time=%dns readio=%b, expected=%b", $time, readio, NEXT_readio);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_writeio;
                    input NEXT_writeio;

                    #0 begin
                        if (NEXT_writeio !== writeio) begin
                            $display("Error at time=%dns writeio=%b, expected=%b", $time, writeio, NEXT_writeio);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_intr;
                    input NEXT_intr;

                    #0 begin
                        if (NEXT_intr !== intr) begin
                            $display("Error at time=%dns intr=%b, expected=%b", $time, intr, NEXT_intr);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_inta;
                    input NEXT_inta;

                    #0 begin
                        if (NEXT_inta !== inta) begin
                            $display("Error at time=%dns inta=%b, expected=%b", $time, inta, NEXT_inta);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_waitr;
                    input NEXT_waitr;

                    #0 begin
                        if (NEXT_waitr !== waitr) begin
                            $display("Error at time=%dns waitr=%b, expected=%b", $time, waitr, NEXT_waitr);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_r;
                    input [2:0] NEXT_r;

                    #0 begin
                        if (NEXT_r !== r) begin
                            $display("Error at time=%dns r=%b, expected=%b", $time, r, NEXT_r);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_g;
                    input [2:0] NEXT_g;

                    #0 begin
                        if (NEXT_g !== g) begin
                            $display("Error at time=%dns g=%b, expected=%b", $time, g, NEXT_g);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_b;
                    input [2:0] NEXT_b;

                    #0 begin
                        if (NEXT_b !== b) begin
                            $display("Error at time=%dns b=%b, expected=%b", $time, b, NEXT_b);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_hsync_n;
                    input NEXT_hsync_n;

                    #0 begin
                        if (NEXT_hsync_n !== hsync_n) begin
                            $display("Error at time=%dns hsync_n=%b, expected=%b", $time, hsync_n, NEXT_hsync_n);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_vsync_n;
                    input NEXT_vsync_n;

                    #0 begin
                        if (NEXT_vsync_n !== vsync_n) begin
                            $display("Error at time=%dns vsync_n=%b, expected=%b", $time, vsync_n, NEXT_vsync_n);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
                task CHECK_diag;
                    input [7:0] NEXT_diag;

                    #0 begin
                        if (NEXT_diag !== diag) begin
                            $display("Error at time=%dns diag=%b, expected=%b", $time, diag, NEXT_diag);
                            TX_ERROR = TX_ERROR + 1;
                        end
                    end
                endtask
d791 1
a791 1
            endmodule
@


