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

Subversion Repositories aemb

[/] [aemb/] [trunk/] [rtl/] [verilog/] [aeMB2_gprf.v] - Diff between revs 134 and 191

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 134 Rev 191
/* $Id: aeMB2_gprf.v,v 1.4 2008-04-26 17:57:43 sybreon Exp $
/* $Id: aeMB2_gprf.v,v 1.4 2008-04-26 17:57:43 sybreon Exp $
**
**
** AEMB2 EDK 6.2 COMPATIBLE CORE
** AEMB2 EDK 6.2 COMPATIBLE CORE
** Copyright (C) 2004-2008 Shawn Tan <shawn.tan@aeste.net>
** Copyright (C) 2004-2008 Shawn Tan <shawn.tan@aeste.net>
**
**
** This file is part of AEMB.
** This file is part of AEMB.
**
**
** AEMB is free software: you can redistribute it and/or modify it
** AEMB is free software: you can redistribute it and/or modify it
** under the terms of the GNU Lesser General Public License as
** under the terms of the GNU Lesser General Public License as
** published by the Free Software Foundation, either version 3 of the
** published by the Free Software Foundation, either version 3 of the
** License, or (at your option) any later version.
** License, or (at your option) any later version.
**
**
** AEMB is distributed in the hope that it will be useful, but WITHOUT
** AEMB is distributed in the hope that it will be useful, but WITHOUT
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
** or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
** or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
** Public License for more details.
** Public License for more details.
**
**
** You should have received a copy of the GNU Lesser General Public
** You should have received a copy of the GNU Lesser General Public
** License along with AEMB. If not, see <http:**www.gnu.org/licenses/>.
** License along with AEMB. If not, see <http:**www.gnu.org/licenses/>.
*/
*/
/**
/**
 * General Purpose Register File
 * General Purpose Register File
 * @aeMB2_gprf.v
 * @aeMB2_gprf.v
 
 
 * Dual set of 32 general purpose registers for the core. These are
 * Dual set of 32 general purpose registers for the core. These are
   R0-R31. A zero is written to R0 for both sets during reset and
   R0-R31. A zero is written to R0 for both sets during reset and
   maintained after that.
   maintained after that.
 
 
 */
 */
 
 
module aeMB2_gprf (/*AUTOARG*/
module aeMB2_gprf (/*AUTOARG*/
   // Outputs
   // Outputs
   opa_if, opb_if, opd_if,
   opa_if, opb_if, opd_if,
   // Inputs
   // Inputs
   mux_of, mux_ex, ich_dat, rd_of, rd_ex, sel_mx, rpc_mx, xwb_mx,
   mux_of, mux_ex, ich_dat, rd_of, rd_ex, sel_mx, rpc_mx, xwb_mx,
   dwb_mx, alu_mx, sfr_mx, mul_mx, bsf_mx, gclk, grst, dena, gpha
   dwb_mx, alu_mx, sfr_mx, mul_mx, bsf_mx, gclk, grst, dena, gpha
   );
   );
   parameter AEMB_HTX = 1;
   parameter AEMB_HTX = 1;
 
 
   // INTERNAL
   // INTERNAL
   output [31:0] opa_if,
   output [31:0] opa_if,
                 opb_if,
                 opb_if,
                 opd_if;
                 opd_if;
 
 
   input [2:0]    mux_of,
   input [2:0]    mux_of,
                 mux_ex;
                 mux_ex;
   input [31:0]  ich_dat;
   input [31:0]  ich_dat;
   input [4:0]    rd_of,
   input [4:0]    rd_of,
                 rd_ex;
                 rd_ex;
 
 
   // DATA SOURCSE
   // DATA SOURCSE
   input [3:0]    sel_mx;
   input [3:0]    sel_mx;
   input [31:2]  rpc_mx;
   input [31:2]  rpc_mx;
   input [31:0]  xwb_mx,
   input [31:0]  xwb_mx,
                 dwb_mx,
                 dwb_mx,
                 alu_mx,
                 alu_mx,
                 sfr_mx,
                 sfr_mx,
                 mul_mx,
                 mul_mx,
                 bsf_mx;
                 bsf_mx;
 
 
   // SYSTEM
   // SYSTEM
   input         gclk,
   input         gclk,
                 grst,
                 grst,
                 dena,
                 dena,
                 gpha;
                 gpha;
 
 
   /*AUTOWIRE*/
   /*AUTOWIRE*/
   /*AUTOREG*/
   /*AUTOREG*/
 
 
   wire [31:0]    opd_wr;
   wire [31:0]    opd_wr;
   reg [31:0]     rMEMA[63:0],
   reg [31:0]     rMEMA[63:0],
                 rMEMB[63:0],
                 rMEMB[63:0],
                 rMEMD[63:0];
                 rMEMD[63:0];
   reg [31:0]     mem_mx;
   reg [31:0]     mem_mx;
   reg [31:0]     regd;
   reg [31:0]     regd;
   reg           wrb_fb;
   reg           wrb_fb;
   reg [4:0]      rd_mx;
   reg [4:0]      rd_mx;
   reg [2:0]      mux_mx;
   reg [2:0]      mux_mx;
 
 
   // PIPELINE
   // PIPELINE
   always @(posedge gclk)
   always @(posedge gclk)
     if (grst) begin
     if (grst) begin
        /*AUTORESET*/
        /*AUTORESET*/
        // Beginning of autoreset for uninitialized flops
        // Beginning of autoreset for uninitialized flops
        mux_mx <= 3'h0;
        mux_mx <= 3'h0;
        rd_mx <= 5'h0;
        rd_mx <= 5'h0;
        wrb_fb <= 1'h0;
        wrb_fb <= 1'h0;
        // End of automatics
        // End of automatics
     end else if (dena) begin
     end else if (dena) begin
        wrb_fb <= #1 |rd_ex & |mux_ex; // FIXME: check mux
        wrb_fb <= #1 |rd_ex & |mux_ex; // FIXME: check mux
 
 
        rd_mx <= #1 rd_ex;
        rd_mx <= #1 rd_ex;
        mux_mx <= #1 mux_ex;
        mux_mx <= #1 mux_ex;
     end
     end
 
 
   // LOAD SIZER   
   // LOAD SIZER   
   always @(/*AUTOSENSE*/dwb_mx or sel_mx or xwb_mx) begin
   always @(/*AUTOSENSE*/dwb_mx or sel_mx or xwb_mx) begin
      case (sel_mx)
      case (sel_mx)
        // 8'bits
        // 8'bits
        4'h8: mem_mx <= #1 {24'd0, dwb_mx[31:24]};
        4'h8: mem_mx <= #1 {24'd0, dwb_mx[31:24]};
        4'h4: mem_mx <= #1 {24'd0, dwb_mx[23:16]};
        4'h4: mem_mx <= #1 {24'd0, dwb_mx[23:16]};
        4'h2: mem_mx <= #1 {24'd0, dwb_mx[15:8]};
        4'h2: mem_mx <= #1 {24'd0, dwb_mx[15:8]};
        4'h1: mem_mx <= #1 {24'd0, dwb_mx[7:0]};
        4'h1: mem_mx <= #1 {24'd0, dwb_mx[7:0]};
        // 16'bits
        // 16'bits
        4'hC: mem_mx <= #1 {16'd0, dwb_mx[31:16]};
        4'hC: mem_mx <= #1 {16'd0, dwb_mx[31:16]};
        4'h3: mem_mx <= #1 {16'd0, dwb_mx[15:0]};
        4'h3: mem_mx <= #1 {16'd0, dwb_mx[15:0]};
        // 32'bits
        // 32'bits
        4'hF: mem_mx <= #1 dwb_mx;
        4'hF: mem_mx <= #1 dwb_mx;
        // XSL bus
        // XSL bus
        4'h0: mem_mx <= #1 xwb_mx;
        4'h0: mem_mx <= #1 xwb_mx;
        default: mem_mx <= 32'hX;
        default: mem_mx <= 32'hX;
      endcase // case (sel_mx)
      endcase // case (sel_mx)
   end // always @ (...
   end // always @ (...
 
 
   // SELECT SOURCE
   // SELECT SOURCE
   localparam [2:0] MUX_SFR = 3'o7,
   localparam [2:0] MUX_SFR = 3'o7,
                    MUX_BSF = 3'o6,
                    MUX_BSF = 3'o6,
                    MUX_MUL = 3'o5,
                    MUX_MUL = 3'o5,
                    MUX_MEM = 3'o4,
                    MUX_MEM = 3'o4,
 
 
                    MUX_RPC = 3'o2,
                    MUX_RPC = 3'o2,
                    MUX_ALU = 3'o1,
                    MUX_ALU = 3'o1,
                    MUX_NOP = 3'o0;
                    MUX_NOP = 3'o0;
 
 
   always @(/*AUTOSENSE*/alu_mx or bsf_mx or mem_mx or mul_mx
   always @(/*AUTOSENSE*/alu_mx or bsf_mx or mem_mx or mul_mx
            or mux_mx or rpc_mx or sfr_mx)
            or mux_mx or rpc_mx or sfr_mx)
     case (mux_mx)
     case (mux_mx)
       MUX_ALU: regd <= #1 alu_mx; // ALU
       MUX_ALU: regd <= #1 alu_mx; // ALU
       MUX_RPC: regd <= #1 {rpc_mx[31:2], 2'o0}; // PC Link
       MUX_RPC: regd <= #1 {rpc_mx[31:2], 2'o0}; // PC Link
       MUX_MEM: regd <= #1 mem_mx; // RAM/FSL
       MUX_MEM: regd <= #1 mem_mx; // RAM/FSL
       MUX_MUL: regd <= #1 mul_mx; // MULTIPLIER
       MUX_MUL: regd <= #1 mul_mx; // MULTIPLIER
       MUX_BSF: regd <= #1 bsf_mx; // SHIFTER
       MUX_BSF: regd <= #1 bsf_mx; // SHIFTER
       MUX_NOP: regd <= #1 32'h0;
       MUX_NOP: regd <= #1 32'h0;
       MUX_SFR: regd <= #1 sfr_mx;
       MUX_SFR: regd <= #1 sfr_mx;
       default: regd <= #1 32'hX;
       default: regd <= #1 32'hX;
     endcase // case (mux_mx)
     endcase // case (mux_mx)
 
 
   // REGISTER FILE - Infer LUT memory
   // REGISTER FILE - Infer LUT memory
   wire [5:0]        wRD0 = {gpha, ich_dat[25:21]};
   wire [5:0]        wRD0 = {gpha, ich_dat[25:21]};
   wire [5:0]        wRA0 = {gpha, ich_dat[20:16]};
   wire [5:0]        wRA0 = {gpha, ich_dat[20:16]};
   wire [5:0]        wRB0 = {gpha, ich_dat[15:11]};
   wire [5:0]        wRB0 = {gpha, ich_dat[15:11]};
   wire [5:0]        wRW0 = {!gpha, rd_mx};
   wire [5:0]        wRW0 = {!gpha, rd_mx};
   wire             wWRE = grst | wrb_fb;
   wire             wWRE = grst | wrb_fb;
 
 
   wire [31:0]       wDA0,
   wire [31:0]       wDA0,
                    wDB0,
                    wDB0,
                    wDD0;
                    wDD0;
 
 
   assign           opa_if = wDA0;
   assign           opa_if = wDA0;
   assign           opb_if = wDB0;
   assign           opb_if = wDB0;
   assign           opd_if = wDD0;
   assign           opd_if = wDD0;
 
 
   /* aeMB2_dparam AUTO_TEMPLATE "_\([a-z,0-9]+\)" (
   /* aeMB2_dparam AUTO_TEMPLATE "_\([a-z,0-9]+\)" (
    .AW(6'd6),
    .AW(6'd6),
    .DW(6'd32),
    .DW(6'd32),
 
 
    .clk_i(gclk),
    .clk_i(gclk),
    .ena_i(dena),
    .ena_i(dena),
 
 
    .dat_i(regd),
    .dat_i(regd),
    .adr_i(wRW0[5:0]),
    .adr_i(wRW0[5:0]),
    .wre_i(wWRE),
    .wre_i(wWRE),
    .dat_o(),
    .dat_o(),
 
 
    .xwre_i(),
    .xwre_i(),
    .xdat_i(),
    .xdat_i(),
    .xadr_i(wR@[5:0]),
    .xadr_i(wR@[5:0]),
    .xdat_o(wD@[31:0]),
    .xdat_o(wD@[31:0]),
    ) */
    ) */
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd6),                  // Templated
       .AW                              (6'd6),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_A0
   bank_A0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDA0[31:0]),             // Templated
      .xdat_o                           (wDA0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW0[5:0]),              // Templated
      .adr_i                            (wRW0[5:0]),              // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .xadr_i                           (wRA0[5:0]),              // Templated
      .xadr_i                           (wRA0[5:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd6),                  // Templated
       .AW                              (6'd6),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_B0
   bank_B0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDB0[31:0]),             // Templated
      .xdat_o                           (wDB0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW0[5:0]),              // Templated
      .adr_i                            (wRW0[5:0]),              // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .xadr_i                           (wRB0[5:0]),              // Templated
      .xadr_i                           (wRB0[5:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd6),                  // Templated
       .AW                              (6'd6),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_D0
   bank_D0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDD0[31:0]),             // Templated
      .xdat_o                           (wDD0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW0[5:0]),              // Templated
      .adr_i                            (wRW0[5:0]),              // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .wre_i                            (wWRE),                  // Templated
      .xadr_i                           (wRD0[5:0]),              // Templated
      .xadr_i                           (wRD0[5:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
endmodule // aeMB2_gprf
endmodule // aeMB2_gprf
 
 
/*
/*
 $Log: not supported by cvs2svn $
 $Log: not supported by cvs2svn $
 Revision 1.3  2008/04/26 01:09:06  sybreon
 Revision 1.3  2008/04/26 01:09:06  sybreon
 Passes basic tests. Minor documentation changes to make it compatible with iverilog pre-processor.
 Passes basic tests. Minor documentation changes to make it compatible with iverilog pre-processor.
 
 
 Revision 1.2  2008/04/20 16:34:32  sybreon
 Revision 1.2  2008/04/20 16:34:32  sybreon
 Basic version with some features left out.
 Basic version with some features left out.
 
 
 Revision 1.1  2008/04/18 00:21:52  sybreon
 Revision 1.1  2008/04/18 00:21:52  sybreon
 Initial import.
 Initial import.
*/
*/
 
 
`ifdef XXX
`ifdef XXX
 
 
   wire [4:0]        wRD0 = (gpha) ? ich_dat[25:21] : 5'd0;
   wire [4:0]        wRD0 = (gpha) ? ich_dat[25:21] : 5'd0;
   wire [4:0]        wRA0 = (gpha) ? ich_dat[20:16] : 5'd0;
   wire [4:0]        wRA0 = (gpha) ? ich_dat[20:16] : 5'd0;
   wire [4:0]        wRB0 = (gpha) ? ich_dat[15:11] : 5'd0;
   wire [4:0]        wRB0 = (gpha) ? ich_dat[15:11] : 5'd0;
 
 
   wire [4:0]        wRD1 = (!gpha) ? ich_dat[25:21] : 5'd0;
   wire [4:0]        wRD1 = (!gpha) ? ich_dat[25:21] : 5'd0;
   wire [4:0]        wRA1 = (!gpha) ? ich_dat[20:16] : 5'd0;
   wire [4:0]        wRA1 = (!gpha) ? ich_dat[20:16] : 5'd0;
   wire [4:0]        wRB1 = (!gpha) ? ich_dat[15:11] : 5'd0;
   wire [4:0]        wRB1 = (!gpha) ? ich_dat[15:11] : 5'd0;
 
 
   wire [4:0]        wRW  = rd_mx;
   wire [4:0]        wRW  = rd_mx;
 
 
   wire             wWR0 = (!gpha & dena & wrb_fb) | grst;
   wire             wWR0 = (!gpha & dena & wrb_fb) | grst;
   wire             wWR1 = (gpha & dena & wrb_fb) | grst;
   wire             wWR1 = (gpha & dena & wrb_fb) | grst;
 
 
   wire             wWA0 = wWR0;
   wire             wWA0 = wWR0;
   wire             wWB0 = wWR0;
   wire             wWB0 = wWR0;
   wire             wWD0 = wWR0;
   wire             wWD0 = wWR0;
   wire             wWA1 = wWR1;
   wire             wWA1 = wWR1;
   wire             wWB1 = wWR1;
   wire             wWB1 = wWR1;
   wire             wWD1 = wWR1;
   wire             wWD1 = wWR1;
 
 
   wire [31:0]       wDA0,
   wire [31:0]       wDA0,
                    wDA1,
                    wDA1,
                    wDB0,
                    wDB0,
                    wDB1,
                    wDB1,
                    wDD0,
                    wDD0,
                    wDD1;
                    wDD1;
 
 
   assign           opa_if = wDA0 | wDA1;
   assign           opa_if = wDA0 | wDA1;
   assign           opb_if = wDB0 | wDB1;
   assign           opb_if = wDB0 | wDB1;
   assign           opd_if = wDD0 | wDD1;
   assign           opd_if = wDD0 | wDD1;
 
 
   /* aeMB2_dparam AUTO_TEMPLATE "_\([a-z,0-9]+\)" (
   /* aeMB2_dparam AUTO_TEMPLATE "_\([a-z,0-9]+\)" (
    .AW(6'd5),
    .AW(6'd5),
    .DW(6'd32),
    .DW(6'd32),
 
 
    .clk_i(gclk),
    .clk_i(gclk),
    .ena_i(dena),
    .ena_i(dena),
 
 
    .dat_i(regd),
    .dat_i(regd),
    .adr_i(wRW[4:0]),
    .adr_i(wRW[4:0]),
    .wre_i(wW@),
    .wre_i(wW@),
    .dat_o(),
    .dat_o(),
 
 
    .xwre_i(),
    .xwre_i(),
    .xdat_i(),
    .xdat_i(),
    .xadr_i(wR@[4:0]),
    .xadr_i(wR@[4:0]),
    .xdat_o(wD@[31:0]),
    .xdat_o(wD@[31:0]),
    ) */
    ) */
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_A0
   bank_A0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDA0[31:0]),             // Templated
      .xdat_o                           (wDA0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWA0),                  // Templated
      .wre_i                            (wWA0),                  // Templated
      .xadr_i                           (wRA0[4:0]),              // Templated
      .xadr_i                           (wRA0[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_B0
   bank_B0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDB0[31:0]),             // Templated
      .xdat_o                           (wDB0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWB0),                  // Templated
      .wre_i                            (wWB0),                  // Templated
      .xadr_i                           (wRB0[4:0]),              // Templated
      .xadr_i                           (wRB0[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_D0
   bank_D0
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDD0[31:0]),             // Templated
      .xdat_o                           (wDD0[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWD0),                  // Templated
      .wre_i                            (wWD0),                  // Templated
      .xadr_i                           (wRD0[4:0]),              // Templated
      .xadr_i                           (wRD0[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_A1
   bank_A1
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDA1[31:0]),             // Templated
      .xdat_o                           (wDA1[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWA1),                  // Templated
      .wre_i                            (wWA1),                  // Templated
      .xadr_i                           (wRA1[4:0]),              // Templated
      .xadr_i                           (wRA1[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_B1
   bank_B1
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDB1[31:0]),             // Templated
      .xdat_o                           (wDB1[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWB1),                  // Templated
      .wre_i                            (wWB1),                  // Templated
      .xadr_i                           (wRB1[4:0]),              // Templated
      .xadr_i                           (wRB1[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
 
 
   aeMB2_dparam
   aeMB2_dparam
     #(/*AUTOINSTPARAM*/
     #(/*AUTOINSTPARAM*/
       // Parameters
       // Parameters
       .AW                              (6'd5),                  // Templated
       .AW                              (6'd5),                  // Templated
       .DW                              (6'd32))                 // Templated
       .DW                              (6'd32))                 // Templated
   bank_D1
   bank_D1
     (/*AUTOINST*/
     (/*AUTOINST*/
      // Outputs
      // Outputs
      .dat_o                            (),                      // Templated
      .dat_o                            (),                      // Templated
      .xdat_o                           (wDD1[31:0]),             // Templated
      .xdat_o                           (wDD1[31:0]),             // Templated
      // Inputs
      // Inputs
      .adr_i                            (wRW[4:0]),               // Templated
      .adr_i                            (wRW[4:0]),               // Templated
      .dat_i                            (regd),                  // Templated
      .dat_i                            (regd),                  // Templated
      .wre_i                            (wWD1),                  // Templated
      .wre_i                            (wWD1),                  // Templated
      .xadr_i                           (wRD1[4:0]),              // Templated
      .xadr_i                           (wRD1[4:0]),              // Templated
      .xdat_i                           (),                      // Templated
      .xdat_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .xwre_i                           (),                      // Templated
      .clk_i                            (gclk),                  // Templated
      .clk_i                            (gclk),                  // Templated
      .ena_i                            (dena));                         // Templated
      .ena_i                            (dena));                         // Templated
`endif
`endif
 
 

powered by: WebSVN 2.1.0

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