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

Subversion Repositories s6soc

[/] [s6soc/] [trunk/] [rtl/] [wbgpio.v] - Blame information for rev 4

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dgisselq
module wbgpio(i_clk, i_wb_cyc, i_wb_stb, i_wb_we, i_wb_data, o_wb_data,
2
                i_gpio, o_gpio, o_int);
3
        parameter       NIN=16, NOUT=16, DEFAULT=16'h00;
4
        input                   i_clk;
5
        //
6
        input                   i_wb_cyc, i_wb_stb, i_wb_we;
7
        input           [31:0]   i_wb_data;
8
        output  wire    [31:0]   o_wb_data;
9
        //
10
        input           [(NIN-1):0]      i_gpio;
11
        output  reg     [(NOUT-1):0]     o_gpio;
12
        //
13
        output  reg             o_int;
14
 
15
        // 9LUT's, 16 FF's
16
        always @(posedge i_clk)
17
                if ((i_wb_cyc)&&(i_wb_stb)&&(i_wb_we))
18
                        o_gpio <= ((o_gpio)&(~i_wb_data[(NOUT+16-1):16]))
19
                                |((i_wb_data[(NOUT-1):0])&(i_wb_data[(NOUT+16-1):16]));
20
 
21
        reg     [(NIN-1):0]      x_gpio, r_gpio;
22
        // 3 LUTs, 33 FF's
23
        always @(posedge i_clk)
24
        begin
25
                x_gpio <= i_gpio;
26
                r_gpio <= x_gpio;
27
                o_int  <= (x_gpio != r_gpio);
28
        end
29
 
30
        assign  o_wb_data = { {(16-NIN){1'b0}}, r_gpio,
31
                                        {(16-NOUT){1'b0}}, o_gpio };
32
endmodule

powered by: WebSVN 2.1.0

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