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_resp.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 eyalhoc
OUTFILE PREFIX_ic_resp.v
2
 
3
ITER MX
4
ITER SX
5
 
6
module PREFIX_ic_resp (PORTS);
7
 
8
   parameter                              STRB_BITS  = DATA_BITS/8;
9
 
10
   input                                      clk;
11
   input                                      reset;
12
 
13
   port                                       MMX_AGROUP_IC_AXI_CMD;
14
   port                                       MMX_GROUP_IC_AXI_R;
15
   revport                                    SSX_GROUP_IC_AXI_R;
16
 
17
 
18
   parameter                              RBUS_WIDTH = GONCAT(GROUP_IC_AXI_R.OUT.WIDTH +);
19
 
20
   wire                                       SSX_req;
21
 
22
   wire [RBUS_WIDTH-1:0]           SSX_RBUS;
23
 
24
   wire [RBUS_WIDTH-1:0]           MMX_RBUS;
25
 
26
   wire                                       SSX_MMX;
27
 
28
   wire [MSTR_BITS-1:0]    SSX_MSTR;
29
   wire                                       SSX_OK;
30
 
31
   wire [SLVS-1:0]                         MMX_slave;
32
 
33
 
34
 
35
 
36
 
37
   CREATE ic_registry_resp.v def_ic.txt
38
   PREFIX_ic_registry_resp
39
     PREFIX_ic_registry_resp (
40
                              .clk(clk),
41
                              .reset(reset),
42
                              .MMX_ASLV(MMX_ASLV),
43
                              .MMX_AID(MMX_AID),
44
                              .MMX_AVALID(MMX_AVALID),
45
                              .MMX_AREADY(MMX_AREADY),
46
                              .SSX_ID(SSX_ID),
47
                              .SSX_VALID(SSX_VALID),
48
                              .SSX_READY(SSX_READY),
49
                              .SSX_LAST(SSX_LAST),
50
                              .SSX_MSTR(SSX_MSTR),
51
                              .SSX_OK(SSX_OK),
52
                              STOMP ,
53
                              );
54
 
55
 
56
   CREATE ic_arbiter.v def_ic.txt DEFCMD(SWAP MSTR_SLV slv) DEFCMD(SWAP MSTRNUM SLVS) DEFCMD(SWAP SLVNUM MSTRS) DEFCMD(DEFINE DEF_PRIO)
57
   PREFIX_ic_slv_arbiter
58
   PREFIX_ic_slv_arbiter(
59
                         .clk(clk),
60
                         .reset(reset),
61
 
62
                         .MSX_slave(SSX_MSTR),
63
 
64
                         .SMX_master(MMX_slave),
65
 
66
                         .M_last({CONCAT(SSX_LAST ,)}),
67
                         .M_req({CONCAT(SSX_req ,)}),
68
                         .M_grant({CONCAT(SSX_READY ,)})
69
                         );
70
 
71
 
72
   assign                                        SSX_req = SSX_VALID & SSX_OK;
73
 
74
   assign                                        SSX_MMX = MMX_slave[SX];
75
 
76
 
77
   assign                                        SSX_RBUS   = {GONCAT(SSX_GROUP_IC_AXI_R.OUT ,)};
78
 
79
   assign                                        {GONCAT(MMX_GROUP_IC_AXI_R.OUT ,)} = MMX_RBUS;
80
 
81
   LOOP MX
82
     assign                                      MMX_RBUS = CONCAT((SSX_RBUS & {RBUS_WIDTH{SSX_MMX}}) |);
83
 
84
   ENDLOOP MX
85
 
86
 
87
   LOOP SX
88
       assign                                    SSX_READY = CONCAT((SSX_MMX & MMX_READY) |);
89
 
90
   ENDLOOP SX
91
 
92
endmodule
93
 
94
 
95
 

powered by: WebSVN 2.1.0

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