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 @