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

Subversion Repositories robust_axi_fabric

[/] [robust_axi_fabric/] [trunk/] [src/] [base/] [ic_registry_wr.v] - Diff between revs 7 and 16

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

Rev 7 Rev 16
Line 30... Line 30...
OUTFILE PREFIX_ic_registry_wr.v
OUTFILE PREFIX_ic_registry_wr.v
 
 
ITER MX
ITER MX
ITER SX
ITER SX
 
 
LOOP MX
 
ITER MMX_IDX
 
ENDLOOP MX
 
 
 
module PREFIX_ic_registry_wr(PORTS);
module PREFIX_ic_registry_wr(PORTS);
 
 
 
 
 
 
   input                            clk;
   input                            clk;
Line 58... Line 54...
   input                            SSX_WVALID;
   input                            SSX_WVALID;
   input                            SSX_WREADY;
   input                            SSX_WREADY;
   input                            SSX_WLAST;
   input                            SSX_WLAST;
 
 
 
 
   wire                             AWmatch_MMX_IDMMX_IDX;
   wire                             AWmatch_MMX_IDGROUP_MMX_ID.IDX;
   wire                             Wmatch_MMX_IDMMX_IDX;
   wire                             Wmatch_MMX_IDGROUP_MMX_ID.IDX;
 
 
   wire                             cmd_push_MMX;
   wire                             cmd_push_MMX;
   wire                             cmd_push_MMX_IDMMX_IDX;
   wire                             cmd_push_MMX_IDGROUP_MMX_ID.IDX;
 
 
   wire                             cmd_pop_MMX;
   wire                             cmd_pop_MMX;
   wire                             cmd_pop_MMX_IDMMX_IDX;
   wire                             cmd_pop_MMX_IDGROUP_MMX_ID.IDX;
 
 
   wire [SLV_BITS-1:0]   slave_in_MMX_IDMMX_IDX;
   wire [SLV_BITS-1:0]              slave_in_MMX_IDGROUP_MMX_ID.IDX;
   wire [SLV_BITS-1:0]   slave_out_MMX_IDMMX_IDX;
   wire [SLV_BITS-1:0]              slave_out_MMX_IDGROUP_MMX_ID.IDX;
   wire                             slave_empty_MMX_IDMMX_IDX;
   wire                             slave_empty_MMX_IDGROUP_MMX_ID.IDX;
   wire                             slave_full_MMX_IDMMX_IDX;
   wire                             slave_full_MMX_IDGROUP_MMX_ID.IDX;
 
 
   wire                             cmd_push_SSX;
   wire                             cmd_push_SSX;
   wire                             cmd_pop_SSX;
   wire                             cmd_pop_SSX;
   wire [MSTR_BITS-1:0] master_in_SSX;
   wire [MSTR_BITS-1:0] master_in_SSX;
   wire [MSTR_BITS-1:0] master_out_SSX;
   wire [MSTR_BITS-1:0] master_out_SSX;
Line 85... Line 81...
   reg                              MMX_WOK;
   reg                              MMX_WOK;
 
 
 
 
 
 
 
 
   assign                           AWmatch_MMX_IDMMX_IDX  = MMX_AWID == ID_MMX_IDMMX_IDX;
   assign                           AWmatch_MMX_IDGROUP_MMX_ID.IDX  = MMX_AWID == ID_BITS'GROUP_MMX_ID;
 
 
   assign                           Wmatch_MMX_IDMMX_IDX   = MMX_WID == ID_MMX_IDMMX_IDX;
   assign                           Wmatch_MMX_IDGROUP_MMX_ID.IDX   = MMX_WID == ID_BITS'GROUP_MMX_ID;
 
 
 
 
   assign                           cmd_push_MMX           = MMX_AWVALID & MMX_AWREADY;
   assign                           cmd_push_MMX           = MMX_AWVALID & MMX_AWREADY;
   assign                           cmd_push_MMX_IDMMX_IDX = cmd_push_MMX & AWmatch_MMX_IDMMX_IDX;
   assign                           cmd_push_MMX_IDGROUP_MMX_ID.IDX = cmd_push_MMX & AWmatch_MMX_IDGROUP_MMX_ID.IDX;
   assign                           cmd_pop_MMX            = MMX_WVALID & MMX_WREADY & MMX_WLAST;
   assign                           cmd_pop_MMX            = MMX_WVALID & MMX_WREADY & MMX_WLAST;
   assign                           cmd_pop_MMX_IDMMX_IDX  = cmd_pop_MMX & Wmatch_MMX_IDMMX_IDX;
   assign                           cmd_pop_MMX_IDGROUP_MMX_ID.IDX  = cmd_pop_MMX & Wmatch_MMX_IDGROUP_MMX_ID.IDX;
 
 
   assign                           cmd_push_SSX           = SSX_AWVALID & SSX_AWREADY;
   assign                           cmd_push_SSX           = SSX_AWVALID & SSX_AWREADY;
   assign                           cmd_pop_SSX            = SSX_WVALID & SSX_WREADY & SSX_WLAST;
   assign                           cmd_pop_SSX            = SSX_WVALID & SSX_WREADY & SSX_WLAST;
   assign                           master_in_SSX          = SSX_AWMSTR;
   assign                           master_in_SSX          = SSX_AWMSTR;
 
 
   assign                           slave_in_MMX_IDMMX_IDX = MMX_AWSLV;
   assign                           slave_in_MMX_IDGROUP_MMX_ID.IDX = MMX_AWSLV;
 
 
 
 
   LOOP MX
   LOOP MX
   always @(MMX_WID
   always @(*)
            or slave_out_MMX_IDMMX_IDX
 
            )
 
     begin
     begin
        case (MMX_WID)
        case (MMX_WID)
          ID_MMX_IDMMX_IDX : MMX_WSLV = slave_out_MMX_IDMMX_IDX;
          ID_BITS'GROUP_MMX_ID : MMX_WSLV = slave_out_MMX_IDGROUP_MMX_ID.IDX;
          default : MMX_WSLV = SERR;
          default : MMX_WSLV = SERR;
        endcase
        endcase
     end
     end
 
 
   always @(MMX_WSLV
   always @(*)
            or master_out_SSX
 
            )
 
     begin
     begin
        case (MMX_WSLV)
        case (MMX_WSLV)
          'dSX : MMX_WOK = master_out_SSX == 'dMX;
          SLV_BITS'dSX : MMX_WOK = master_out_SSX == MSTR_BITS'dMX;
          default : MMX_WOK = 1'b0;
          default : MMX_WOK = 1'b0;
        endcase
        endcase
     end
     end
 
 
   ENDLOOP MX
   ENDLOOP MX
 
 
LOOP MX
LOOP MX
LOOP MMX_IDX
 LOOP IX GROUP_MMX_ID.NUM
   prgen_fifo #(SLV_BITS, CMD_DEPTH)
   prgen_fifo #(SLV_BITS, CMD_DEPTH)
   slave_fifo_MMX_IDMMX_IDX(
   slave_fifo_MMX_IDIX(
                    .clk(clk),
                    .clk(clk),
                    .reset(reset),
                    .reset(reset),
                    .push(cmd_push_MMX_IDMMX_IDX),
                       .push(cmd_push_MMX_IDIX),
                    .pop(cmd_pop_MMX_IDMMX_IDX),
                       .pop(cmd_pop_MMX_IDIX),
                    .din(slave_in_MMX_IDMMX_IDX),
                       .din(slave_in_MMX_IDIX),
                    .dout(slave_out_MMX_IDMMX_IDX),
                       .dout(slave_out_MMX_IDIX),
                            .empty(slave_empty_MMX_IDMMX_IDX),
                       .empty(slave_empty_MMX_IDIX),
                            .full(slave_full_MMX_IDMMX_IDX)
                       .full(slave_full_MMX_IDIX)
                    );
                    );
 
 
   ENDLOOP MMX_IDX
 ENDLOOP IX
   ENDLOOP MX
   ENDLOOP MX
 
 
 
 
 
 
   LOOP SX
   LOOP SX

powered by: WebSVN 2.1.0

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