OpenCores
URL https://opencores.org/ocsvn/i8255/i8255/trunk

Subversion Repositories i8255

[/] [i8255/] [tsti8255.v] - Diff between revs 2 and 3

Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 3
`timescale 1ns / 1ps
`timescale 1ns / 1ps
 
 
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// Company: 
// Company: 
// Engineer:
// Engineer:
//
//
// Create Date:   00:16:54 11/16/2009
// Create Date:   00:16:54 11/16/2009
// Design Name:   i8255
// Design Name:   i8255
// Module Name:   /home/malasar/projects/fpga/i8080/tsti8255.v
// Module Name:   /home/malasar/projects/fpga/i8080/tsti8255.v
// Project Name:  i8080
// Project Name:  i8080
// Target Device:  
// Target Device:  
// Tool versions:  
// Tool versions:  
// Description: 
// Description: 
//
//
// Verilog Test Fixture created by ISE for module: i8255
// Verilog Test Fixture created by ISE for module: i8255
//
//
// Dependencies:
// Dependencies:
// 
// 
// Revision:
// Revision:
// Revision 0.01 - File Created
// Revision 0.01 - File Created
// Additional Comments:
// Additional Comments:
// 
// 
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
 
 
 
 
module tsti8255;
module tsti8255;
 
 
        // Inputs
        // Inputs
        reg reset;
        reg reset;
        reg ncs;
        reg ncs;
        reg nrd;
        reg nrd;
        reg nwr;
        reg nwr;
        reg [1:0] addr;
        reg [1:0] addr;
        // Bidirs
        // Bidirs
        wire [7:0] data;
        wire [7:0] data;
        wire [7:0] pa;
        wire [7:0] pa;
        reg pae;
        reg pae;
        wire [7:0] pb;
        wire [7:0] pb;
        reg pbe;
        reg pbe;
        wire [3:0] pch;
        wire [3:0] pch;
        reg pche;
        reg pche;
        wire [3:0] pcl;
        wire [3:0] pcl;
        reg pcle;
        reg pcle;
        wire clk;
        wire clk;
        reg oflag;
        reg oflag;
        reg pause;
        reg pause;
        reg [7:0] newval;
        reg [7:0] newval;
        reg [7:0] step;
        reg [7:0] step;
        reg [7:0] wrtport;
        reg [7:0] wrtport;
        reg [7:0] resetret;
        reg [7:0] resetret;
        reg [7:0] writeret;
        reg [7:0] writeret;
   clck clk1(clk);
   clck clk1(clk);
        // Instantiate the Unit Under Test (UUT)
        // Instantiate the Unit Under Test (UUT)
        i8255 uut (
        i8255 uut (
                .data(data),
                .data(data),
                .reset(reset),
                .reset(reset),
                .ncs(ncs),
                .ncs(ncs),
                .nrd(nrd),
                .nrd(nrd),
                .nwr(nwr),
                .nwr(nwr),
                .addr(addr),
                .addr(addr),
                .pa(pa),
                .pa(pa),
                .pb(pb),
                .pb(pb),
                .pch(pch),
                .pch(pch),
                .pcl(pcl)
                .pcl(pcl)
        );
        );
 
 
        initial begin
        initial begin
                // Initialize Inputs
                // Initialize Inputs
                reset <= 1;
                reset <= 1;
                pae<=0;
                pae<=0;
                pche<=0;
                pche<=0;
                wrtport<=0;
                wrtport<=0;
                pause<=0;
 
                ncs <= 1;
                ncs <= 1;
                nrd <= 1;
                nrd <= 1;
                nwr <= 1;
                nwr <= 1;
                addr <= 2'b11;
                addr <= 2'b11;
                oflag<=0;
                oflag<=0;
                newval<=0;
                newval<=0;
                step<=6;
                step<=6;
                resetret<=0;
                resetret<=0;
                writeret<=0;
                writeret<=0;
                #10 $finish();
                #10 $finish();
 
 
                // Add stimulus here
                // Add stimulus here
 
 
        end
        end
        assign data=(oflag)?newval:8'bz;
        assign data=(oflag)?newval:8'bz;
        assign pa=(pae)?wrtport:8'bz;
        assign pa=(pae)?wrtport:8'bz;
        assign pch=(pche)?wrtport[7:4]:8'bz;
        assign pch=(pche)?wrtport[7:4]:8'bz;
 
 
        always @(posedge clk) begin
        always @(posedge clk) begin
                if (reset==1) begin
                if (reset==1) begin
                        ncs<=0;
                        ncs<=0;
                        reset<=0; //#2
                        reset<=0; //#2
                        end
                        end
                else begin
                else begin
                        case (step)
                        case (step)
                                0: begin
                                0: begin
                                        newval<=8'b10000000; //#4
                                        newval<=8'b10000000; //#4
                                        oflag<=1;
                                        oflag<=1;
                                        step<=33;
                                        step<=33;
                                        resetret<=2;
                                        resetret<=2;
                                        writeret<=32;
                                        writeret<=32;
                                        ncs<=0;
                                        ncs<=0;
                                        end
                                        end
                                2: begin
                                2: begin
                                   newval<=8'h35; //#10
                                   newval<=8'h35; //#10
                                        oflag<=1;
                                        oflag<=1;
                                        addr<=0;
                                        addr<=0;
                                        step<=33;
                                        step<=33;
                                        resetret<=3;
                                        resetret<=3;
                                        writeret<=32;
                                        writeret<=32;
                                        end
                                        end
                                3: begin
                                3: begin
                                   newval=8'h0;
                                   newval<=8'h0;
                                        nrd=1;
                                        nrd<=1;
                                        nwr=1;
                                        nwr<=1;
                                        step=4;
                                        step<=4;
                                        end
                                        end
                                4: begin
                                4: begin
                                        newval=8'b10100000;
                                        newval<=8'b10100000;
                                        addr=2;
                                        addr<=2;
                                        nrd=1;
                                        nrd<=1;
                                        nwr=0;
                                        nwr<=0;
                                        step=5;
                                        step<=5;
                                        end
                                        end
                                6: begin
                                6: begin
                                        newval=8'b10010000; //a-output, c -input //#4
                                        newval<=8'b10010000; //a-output, c -input //#4
                                        addr=3;
                                        addr<=3;
                                        oflag=1;
                                        oflag<=1;
                                        pae=0;
                                        pae<=0;
                                        step=33;
                                        step<=33;
                                        resetret=7;
                                        resetret<=7;
                                        writeret=32;
                                        writeret<=32;
                                        end
                                        end
                                7: begin
                                7: begin
                                        wrtport=8'b11010000; //#10
                                        wrtport<=8'b11010000; //#10
                                        pae=1;
                                        pae<=1;
                                        //pche=1;
                                        //pche=1;
                                        oflag=0;
                                        oflag<=0;
                                        addr=0;
                                        addr<=0;
                                        nrd=0;
                                        nrd<=0;
                                        nwr=1;
                                        nwr<=1;
                                        step=32;
                                        step<=32;
                                        resetret=8;
                                        resetret<=8;
                                        end
                                        end
                                8: begin
                                8: begin
                                        newval=8'b10100000;
                                        newval<=8'b10100000;
                                        //pae=0;
                                        //pae=0;
                                        pche=1;
                                        pche<=1;
                                        oflag=1;
                                        oflag<=1;
                                        addr=0;
                                        addr<=0;
                                        nrd=1;
                                        nrd<=1;
                                        nwr=0;
                                        nwr<=0;
                                        step=10;
                                        step<=10;
                                        end
                                        end
                                9: begin
                                9: begin
                                        pae=0;
                                        pae<=0;
                                        addr=0;
                                        addr<=0;
                                        nrd=0;
                                        nrd<=0;
                                        nwr=1;
                                        nwr<=1;
                                        step=10;
                                        step<=10;
                                        end
                                        end
                                32: begin
                                32: begin //reset step
                                        oflag=0;
                                        oflag<=0;
                                        nrd=1;
                                        nrd<=1;
                                        nwr=1;
                                        nwr<=1;
                                        step=resetret;
                                        step<=resetret;
                                        end
                                        end
                                33: begin //write routine
                                33: begin //write routine
                                        nwr=0;
                                        nwr<=0;
                                        nrd=1;
                                        nrd<=1;
                                        step=writeret;
                                        step<=writeret;
                                        end
                                        end
 
 
                        endcase
                        endcase
                        end
                        end
                end
                end
 
 
 
 
endmodule
endmodule
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.