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

Subversion Repositories ps2

[/] [ps2/] [tags/] [rel_6/] [bench/] [verilog/] [ps2_test_bench.v] - Diff between revs 6 and 7

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 6 Rev 7
Line 41... Line 41...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.3  2002/02/20 15:20:02  mihad
 
// Little/big endian changes incorporated
 
//
// Revision 1.2  2002/02/18 18:08:31  mihad
// Revision 1.2  2002/02/18 18:08:31  mihad
// One bug fixed
// One bug fixed
//
//
// Revision 1.1.1.1  2002/02/18 16:16:55  mihad
// Revision 1.1.1.1  2002/02/18 16:16:55  mihad
// Initial project import - working
// Initial project import - working
Line 59... Line 62...
`define KBD_CNTL_REG        32'h64
`define KBD_CNTL_REG        32'h64
`define KBD_DATA_REG        32'h60
`define KBD_DATA_REG        32'h60
/*
/*
 * controller commands
 * controller commands
 */
 */
`define KBD_READ_MODE       32'h20
`define KBD_READ_MODE       32'h20_00_00_00
`define KBD_WRITE_MODE      32'h60
`define KBD_WRITE_MODE      32'h60_00_00_00
`define KBD_SELF_TEST       32'hAA
`define KBD_SELF_TEST       32'hAA_00_00_00
`define KBD_SELF_TEST2      32'hAB
`define KBD_SELF_TEST2      32'hAB_00_00_00
`define KBD_CNTL_ENABLE     32'hAE
`define KBD_CNTL_ENABLE     32'hAE_00_00_00
/*
/*
 * keyboard commands
 * keyboard commands
 */
 */
`define KBD_ENABLE          32'hF4
`define KBD_ENABLE          32'hF4_00_00_00
`define KBD_DISABLE         32'hF5
`define KBD_DISABLE         32'hF5_00_00_00
`define KBD_RESET           32'hFF
`define KBD_RESET           32'hFF_00_00_00
/*
/*
 * keyboard replies
 * keyboard replies
 */
 */
`define KBD_ACK             32'hFA
`define KBD_ACK             32'hFA
`define KBD_POR             32'hAA
`define KBD_POR             32'hAA
Line 85... Line 88...
`define KBD_GTO             32'h40
`define KBD_GTO             32'h40
`define KBD_PERR            32'h80
`define KBD_PERR            32'h80
/*
/*
 * keyboard controller mode register bits
 * keyboard controller mode register bits
 */
 */
`define KBD_EKI             32'h01
`define KBD_EKI             32'h01_00_00_00
`define KBD_SYS             32'h04
`define KBD_SYS             32'h04_00_00_00
`define KBD_DMS             32'h20
`define KBD_DMS             32'h20_00_00_00
`define KBD_KCC             32'h40
`define KBD_KCC             32'h40_00_00_00
`define KBD_DISABLE_COMMAND 32'h10
`define KBD_DISABLE_COMMAND 32'h10_00_00_00
 
 
module ps2_test_bench() ;
module ps2_test_bench() ;
 
 
parameter [31:0] MAX_SEQUENCE_LENGTH = 10 ;
parameter [31:0] MAX_SEQUENCE_LENGTH = 10 ;
wire kbd_clk_cable  ;
wire kbd_clk_cable  ;
Line 449... Line 452...
        read_data_reg(data, status) ;
        read_data_reg(data, status) ;
 
 
        if ( status !== 1 )
        if ( status !== 1 )
            disable main ;
            disable main ;
 
 
        if ( (data & (`KBD_EKI|`KBD_SYS|`KBD_DMS|`KBD_KCC)) !== (`KBD_EKI|`KBD_SYS|`KBD_DMS|`KBD_KCC)  )
        if ( ({data, 24'h0} & (`KBD_EKI|`KBD_SYS|`KBD_DMS|`KBD_KCC)) !== (`KBD_EKI|`KBD_SYS|`KBD_DMS|`KBD_KCC)  )
        begin
        begin
            $display("Error! Read command byte returned wrong value!") ;
            $display("Error! Read command byte returned wrong value!") ;
            #400 $stop ;
            #400 $stop ;
        end
        end
    end
    end
    begin
    begin
        @(char_valid) ;
        @(char_valid) ;
        if ( received_char !== `KBD_RESET )
        if ( {received_char, 24'h0} !== `KBD_RESET )
        begin
        begin
            $display("Error! Keyboard received invalid character/command") ;
            $display("Error! Keyboard received invalid character/command") ;
            #400 $stop ;
            #400 $stop ;
        end
        end
 
 
Line 478... Line 481...
            ok,
            ok,
            error
            error
        ) ;
        ) ;
 
 
         @(char_valid) ;
         @(char_valid) ;
        if ( received_char !== `KBD_DISABLE )
        if ( {received_char,24'h0} !== `KBD_DISABLE )
        begin
        begin
            $display("Error! Keyboard received invalid character/command") ;
            $display("Error! Keyboard received invalid character/command") ;
            #400 $stop ;
            #400 $stop ;
        end
        end
 
 
Line 492... Line 495...
            ok,
            ok,
            error
            error
        ) ;
        ) ;
 
 
        @(char_valid) ;
        @(char_valid) ;
        if ( received_char !== `KBD_ENABLE )
        if ( {received_char,24'h0} !== `KBD_ENABLE )
        begin
        begin
            $display("Error! Keyboard received invalid character/command") ;
            $display("Error! Keyboard received invalid character/command") ;
            #400 $stop ;
            #400 $stop ;
        end
        end
 
 
Line 1110... Line 1113...
        end
        end
    end
    end
    join
    join
 
 
    // do D2 command, that copies parameter in input buffer to output buffer
    // do D2 command, that copies parameter in input buffer to output buffer
    kbd_write( `KBD_CNTL_REG, 32'hD2, ok_controler ) ;
    kbd_write( `KBD_CNTL_REG, 32'hD2_00_00_00, ok_controler ) ;
    if ( ok_controler !== 1 )
    if ( ok_controler !== 1 )
        disable main ;
        disable main ;
 
 
    kbd_write(`KBD_DATA_REG, 32'h5555_5555, ok_controler) ;
    kbd_write(`KBD_DATA_REG, 32'h5555_5555, ok_controler) ;
 
 

powered by: WebSVN 2.1.0

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