OpenCores
URL https://opencores.org/ocsvn/fpga-median/fpga-median/trunk

Subversion Repositories fpga-median

[/] [fpga-median/] [trunk/] [rtl/] [pixel_network.v] - Diff between revs 2 and 9

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

Rev 2 Rev 9
// +----------------------------------------------------------------------------
/* --------------------------------------------------------------------------------
// Universidade Federal da Bahia
 This file is part of FPGA Median Filter.
//------------------------------------------------------------------------------
 
// PROJECT: FPGA Median Filter
    FPGA Median Filter is free software: you can redistribute it and/or modify
//------------------------------------------------------------------------------
    it under the terms of the GNU General Public License as published by
// FILE NAME            : pixel_network.v
    the Free Software Foundation, either version 3 of the License, or
// AUTHOR               : João Carlos Bittencourt
    (at your option) any later version.
// AUTHOR'S E-MAIL      : joaocarlos@ieee.org
 
// -----------------------------------------------------------------------------
    FPGA Median Filter is distributed in the hope that it will be useful,
// RELEASE HISTORY
    but WITHOUT ANY WARRANTY; without even the implied warranty of
// VERSION  DATE        AUTHOR        DESCRIPTION
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// 1.0      2013-08-13  joao.nunes    initial version
    GNU General Public License for more details.
// -----------------------------------------------------------------------------
 
// KEYWORDS: comparator, low, hight, median
    You should have received a copy of the GNU General Public License
// -----------------------------------------------------------------------------
    along with FPGA Median Filter.  If not, see <http://www.gnu.org/licenses/>.
// PURPOSE: Obtain the Median of a 3x3 mask.
-------------------------------------------------------------------------------- */
// -----------------------------------------------------------------------------
/* +----------------------------------------------------------------------------
 
   Universidade Federal da Bahia
 
  ------------------------------------------------------------------------------
 
   PROJECT: FPGA Median Filter
 
  ------------------------------------------------------------------------------
 
   FILE NAME            : pixel_network.v
 
   AUTHOR               : João Carlos Bittencourt
 
   AUTHOR'S E-MAIL      : joaocarlos@ieee.org
 
   -----------------------------------------------------------------------------
 
   RELEASE HISTORY
 
   VERSION  DATE        AUTHOR        DESCRIPTION
 
   1.0      2013-08-13  joao.nunes    initial version
 
   -----------------------------------------------------------------------------
 
   KEYWORDS: comparator, low, hight, median
 
   -----------------------------------------------------------------------------
 
   PURPOSE: Obtain the Median of a 3x3 mask.
 
   ----------------------------------------------------------------------------- */
module pixel_network
module pixel_network
#(
#(
    parameter DATA_WIDTH = 8
    parameter DATA_WIDTH = 8
)(
)(
    input [DATA_WIDTH-1:0] c3h,
    input [DATA_WIDTH-1:0] c3h,
    input [DATA_WIDTH-1:0] c3m,
    input [DATA_WIDTH-1:0] c3m,
    input [DATA_WIDTH-1:0] c3l,
    input [DATA_WIDTH-1:0] c3l,
    input [DATA_WIDTH-1:0] c2h,
    input [DATA_WIDTH-1:0] c2h,
    input [DATA_WIDTH-1:0] c2m,
    input [DATA_WIDTH-1:0] c2m,
    input [DATA_WIDTH-1:0] c2l,
    input [DATA_WIDTH-1:0] c2l,
    input [DATA_WIDTH-1:0] c1h,
    input [DATA_WIDTH-1:0] c1h,
    input [DATA_WIDTH-1:0] c1m,
    input [DATA_WIDTH-1:0] c1m,
    input [DATA_WIDTH-1:0] c1l,
    input [DATA_WIDTH-1:0] c1l,
 
 
    output [DATA_WIDTH-1:0] median
    output [DATA_WIDTH-1:0] median
);
);
 
 
    wire [DATA_WIDTH-1:0] node_u0_lo;
    wire [DATA_WIDTH-1:0] node_u0_lo;
    wire [DATA_WIDTH-1:0] node_u1_hi;
    wire [DATA_WIDTH-1:0] node_u1_hi;
    wire [DATA_WIDTH-1:0] node_u1_lo;
    wire [DATA_WIDTH-1:0] node_u1_lo;
    wire [DATA_WIDTH-1:0] node_u2_hi;
    wire [DATA_WIDTH-1:0] node_u2_hi;
    wire [DATA_WIDTH-1:0] node_u3_lo;
    wire [DATA_WIDTH-1:0] node_u3_lo;
    wire [DATA_WIDTH-1:0] node_u4_hi;
    wire [DATA_WIDTH-1:0] node_u4_hi;
    wire [DATA_WIDTH-1:0] node_u5_hi;
    wire [DATA_WIDTH-1:0] node_u5_hi;
    wire [DATA_WIDTH-1:0] node_u6_lo;
    wire [DATA_WIDTH-1:0] node_u6_lo;
    wire [DATA_WIDTH-1:0] node_u7_hi;
    wire [DATA_WIDTH-1:0] node_u7_hi;
    wire [DATA_WIDTH-1:0] node_u7_lo;
    wire [DATA_WIDTH-1:0] node_u7_lo;
    wire [DATA_WIDTH-1:0] node_u8_hi;
    wire [DATA_WIDTH-1:0] node_u8_hi;
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(0) // disable hight output
        .HI_MUX(0) // disable hight output
    ) node_u0 (
    ) node_u0 (
        .data_a(c3h),
        .data_a(c3h),
        .data_b(c2h),
        .data_b(c2h),
 
 
        // .data_hi(),
        // .data_hi(),
        .data_lo(node_u0_lo)
        .data_lo(node_u0_lo)
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u1 (
    ) node_u1 (
        .data_a(c3m),
        .data_a(c3m),
        .data_b(c2m),
        .data_b(c2m),
 
 
        .data_hi(node_u1_hi),
        .data_hi(node_u1_hi),
        .data_lo(node_u1_lo)
        .data_lo(node_u1_lo)
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(0), // disable low output
        .LOW_MUX(0), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u2 (
    ) node_u2 (
        .data_a(c2l),
        .data_a(c2l),
        .data_b(c1l),
        .data_b(c1l),
 
 
        .data_hi(node_u2_hi)
        .data_hi(node_u2_hi)
        // .data_lo()
        // .data_lo()
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(0) // disable hight output
        .HI_MUX(0) // disable hight output
    ) node_u3 (
    ) node_u3 (
        .data_a(node_u0_lo),
        .data_a(node_u0_lo),
        .data_b(c1h),
        .data_b(c1h),
 
 
        // .data_hi(),
        // .data_hi(),
        .data_lo(node_u3_lo)
        .data_lo(node_u3_lo)
    );
    );
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(0), // disable low output
        .LOW_MUX(0), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u4 (
    ) node_u4 (
        .data_a(node_u1_lo),
        .data_a(node_u1_lo),
        .data_b(c1m),
        .data_b(c1m),
 
 
        .data_hi(node_u4_hi)
        .data_hi(node_u4_hi)
        // .data_lo()
        // .data_lo()
    );
    );
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(0), // disable low output
        .LOW_MUX(0), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u5 (
    ) node_u5 (
        .data_a(c3l),
        .data_a(c3l),
        .data_b(node_u2_hi),
        .data_b(node_u2_hi),
 
 
        .data_hi(node_u5_hi)
        .data_hi(node_u5_hi)
        // .data_lo()
        // .data_lo()
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(0) // disable hight output
        .HI_MUX(0) // disable hight output
    ) node_u6 (
    ) node_u6 (
        .data_a(node_u1_hi),
        .data_a(node_u1_hi),
        .data_b(node_u4_hi),
        .data_b(node_u4_hi),
 
 
        // .data_hi(),
        // .data_hi(),
        .data_lo(node_u6_lo)
        .data_lo(node_u6_lo)
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u7 (
    ) node_u7 (
        .data_a(node_u3_lo),
        .data_a(node_u3_lo),
        .data_b(node_u6_lo),
        .data_b(node_u6_lo),
 
 
        .data_hi(node_u7_hi),
        .data_hi(node_u7_hi),
        .data_lo(node_u7_lo)
        .data_lo(node_u7_lo)
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(0), // disable low output
        .LOW_MUX(0), // disable low output
        .HI_MUX(1) // disable hight output
        .HI_MUX(1) // disable hight output
    ) node_u8 (
    ) node_u8 (
        .data_a(node_u7_lo),
        .data_a(node_u7_lo),
        .data_b(node_u5_hi),
        .data_b(node_u5_hi),
 
 
        .data_hi(node_u8_hi)
        .data_hi(node_u8_hi)
        // .data_lo()
        // .data_lo()
    );
    );
 
 
    node
    node
    #(
    #(
        .DATA_WIDTH(DATA_WIDTH),
        .DATA_WIDTH(DATA_WIDTH),
        .LOW_MUX(1), // disable low output
        .LOW_MUX(1), // disable low output
        .HI_MUX(0) // disable hight output
        .HI_MUX(0) // disable hight output
    ) node_u9 (
    ) node_u9 (
        .data_a(node_u7_hi),
        .data_a(node_u7_hi),
        .data_b(node_u8_hi),
        .data_b(node_u8_hi),
 
 
        // .data_hi(),
        // .data_hi(),
        .data_lo(median)
        .data_lo(median)
    );
    );
 
 
 
 

powered by: WebSVN 2.1.0

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