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

Subversion Repositories robust_axi_fabric

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /robust_axi_fabric
    from Rev 19 to Rev 20
    Reverse comparison

Rev 19 → Rev 20

/trunk/src/base/ic_registry_wr.v
65,6 → 65,7
wire cmd_pop_MMX;
wire cmd_pop_MMX_IDGROUP_MMX_ID.IDX;
 
wire slave_empty_MMX;
wire [SLV_BITS-1:0] slave_in_MMX_IDGROUP_MMX_ID.IDX;
wire [SLV_BITS-1:0] slave_out_MMX_IDGROUP_MMX_ID.IDX;
wire slave_empty_MMX_IDGROUP_MMX_ID.IDX;
80,6 → 81,9
reg [SLV_BITS-1:0] MMX_WSLV;
reg MMX_WOK;
 
reg MMX_pending;
reg MMX_pending_d;
wire MMX_pending_rise;
88,7 → 92,7
assign Wmatch_MMX_IDGROUP_MMX_ID.IDX = MMX_WID == ID_BITS'bADD_IDGROUP_MMX_ID;
assign cmd_push_MMX = MMX_AWVALID & MMX_AWREADY;
assign cmd_push_MMX = MMX_AWVALID & (MMX_pending ? MMX_pending_rise : MMX_AWREADY);
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_IDGROUP_MMX_ID.IDX = cmd_pop_MMX & Wmatch_MMX_IDGROUP_MMX_ID.IDX;
99,7 → 103,22
assign slave_in_MMX_IDGROUP_MMX_ID.IDX = MMX_AWSLV;
 
 
assign MMX_pending_rise = MMX_pending & (~MMX_pending_d);
always @(posedge clk or posedge reset)
if (reset)
begin
MMX_pending <= #FFD 1'b0;
MMX_pending_d <= #FFD 1'b0;
end
else
begin
MMX_pending <= #FFD MMX_AWVALID & (~MMX_AWREADY);
MMX_pending_d <= #FFD MMX_pending;
end
LOOP MX
always @(*)
begin
112,7 → 131,7
always @(*)
begin
case (MMX_WSLV)
SLV_BITS'dSX : MMX_WOK = master_out_SSX == MSTR_BITS'dMX;
SLV_BITS'dSX : MMX_WOK = (master_out_SSX == MSTR_BITS'dMX) & (~slave_empty_MMX);
default : MMX_WOK = 1'b0;
endcase
end
120,7 → 139,9
ENDLOOP MX
LOOP MX
assign slave_empty_MMX = GONCAT(slave_empty_MMX_IDGROUP_MMX_ID.IDX &);
LOOP IX GROUP_MMX_ID.NUM
prgen_fifo #(SLV_BITS, CMD_DEPTH)
slave_fifo_MMX_IDIX(
.clk(clk),
139,7 → 160,7
LOOP SX
prgen_fifo #(MSTR_BITS, 32) //TBD SLV_DEPTH
prgen_fifo #(MSTR_BITS, SLV_DEPTH)
master_fifo_SSX(
.clk(clk),
.reset(reset),
/trunk/src/base/ic_wdata.v
37,28 → 37,28
 
parameter STRB_BITS = DATA_BITS/8;
input clk;
input reset;
input clk;
input reset;
port MMX_AWGROUP_IC_AXI_CMD;
port MMX_WGROUP_IC_AXI_W;
revport SSX_WGROUP_IC_AXI_W;
input SSX_AWVALID;
input SSX_AWREADY;
input [MSTR_BITS-1:0] SSX_AWMSTR;
port MMX_AWGROUP_IC_AXI_CMD;
port MMX_WGROUP_IC_AXI_W;
revport SSX_WGROUP_IC_AXI_W;
input SSX_AWVALID;
input SSX_AWREADY;
input [MSTR_BITS-1:0] SSX_AWMSTR;
 
 
parameter WBUS_WIDTH = GONCAT(GROUP_IC_AXI_W.IN.WIDTH +);
parameter WBUS_WIDTH = GONCAT(GROUP_IC_AXI_W.IN.WIDTH +);
 
wire [WBUS_WIDTH-1:0] SSX_WBUS;
wire [WBUS_WIDTH-1:0] SSX_WBUS;
wire [WBUS_WIDTH-1:0] MMX_WBUS;
wire [WBUS_WIDTH-1:0] MMX_WBUS;
wire [SLV_BITS-1:0] MMX_WSLV;
wire MMX_WOK;
wire [SLV_BITS-1:0] MMX_WSLV;
wire MMX_WOK;
wire SSX_MMX;
wire SSX_MMX;
 
 
78,12 → 78,12
.MMX_WLAST(MMX_WLAST),
.MMX_WSLV(MMX_WSLV),
.MMX_WOK(MMX_WOK),
.SSX_AWVALID(SSX_AWVALID),
.SSX_AWREADY(SSX_AWREADY),
.SSX_AWVALID(SSX_AWVALID),
.SSX_AWREADY(SSX_AWREADY),
.SSX_AWMSTR(SSX_AWMSTR),
.SSX_WVALID(SSX_WVALID),
.SSX_WREADY(SSX_WREADY),
.SSX_WLAST(SSX_WLAST),
.SSX_WVALID(SSX_WVALID),
.SSX_WREADY(SSX_WREADY),
.SSX_WLAST(SSX_WLAST),
STOMP ,
);
 
/trunk/src/base/def_ic.txt
38,8 → 38,9
SWAP.USER MASTER_NUM 3 ##number of masters
SWAP.USER SLAVE_NUM 6 ##number of slaves
 
SWAP.USER CMD_DEPTH 8 ##AXI command depth for read and write
 
SWAP.USER CMD_DEPTH 4 ##AXI master command depth for read and write
SWAP.USER SLV_DEPTH 8 ##AXI slave command depth for read and write
SWAP.USER DATA_BITS 64 ##AXI data bits
SWAP.USER ADDR_BITS 32 ##AXI address bits
 
/trunk/src/base/ic_dec.v
45,6 → 45,11
reg [SLV_BITS-1:0] MMX_ASLV;
reg MMX_AIDOK;
wire [DEC_MSB:DEC_LSB] MMX_AADDR_DEC;
 
 
assign MMX_AADDR_DEC = MMX_AADDR[DEC_MSB:DEC_LSB];
LOOP MX
always @(MMX_AADDR or MMX_AIDOK)
begin
52,7 → 57,7
case (MMX_AIDOK)
1'b1 : MMX_ASLV = SLV_BITS'd0;
ELSE TRUE(SLAVE_NUM==1)
case ({MMX_AIDOK, MMX_AADDR[DEC_MSB:DEC_LSB]})
case ({MMX_AIDOK, MMX_AADDR_DEC})
{1'b1, BIN(SX SLV_BITS)} : MMX_ASLV = SLV_BITS'dSX;
ENDIF TRUE(SLAVE_NUM==1)
default : MMX_ASLV = SLV_BITS'dSERR;

powered by: WebSVN 2.1.0

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