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

Subversion Repositories robust_axi2apb

[/] [robust_axi2apb/] [trunk/] [src/] [base/] [axi2apb_ctrl.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
 
2
INCLUDE def_axi2apb.txt
3
OUTFILE PREFIX_axi2apb_ctrl.v
4
 
5
module  PREFIX_axi2apb_ctrl (PORTS);
6
 
7
 
8
   input              clk;
9
   input              reset;
10
 
11
   input              finish_wr;
12
   input              finish_rd;
13
 
14
   input              cmd_empty;
15
   input              cmd_read;
16
   input              WVALID;
17
 
18
   output                     psel;
19
   output                     penable;
20
   output                     pwrite;
21
   input                      pready;
22
 
23
 
24
   wire                       wstart;
25
   wire                       rstart;
26
 
27
   reg                        busy;
28
   reg                        psel;
29
   reg                        penable;
30
   reg                        pwrite;
31
   wire                       pack;
32
   wire                       cmd_ready;
33
 
34
 
35
   assign                     cmd_ready = (~busy) & (~cmd_empty);
36
   assign                     wstart = cmd_ready & (~cmd_read) & (~psel) & WVALID;
37
   assign                     rstart = cmd_ready & cmd_read & (~psel);
38
 
39
   assign             pack = psel & penable & pready;
40
 
41
   always @(posedge clk or posedge reset)
42
     if (reset)
43
       busy <= #FFD 1'b0;
44
     else if (psel)
45
       busy <= #FFD 1'b1;
46
     else if (finish_rd | finish_wr)
47
       busy <= #FFD 1'b0;
48
 
49
   always @(posedge clk or posedge reset)
50
     if (reset)
51
       psel <= #FFD 1'b0;
52
     else if (pack)
53
       psel <= #FFD 1'b0;
54
     else if (wstart | rstart)
55
       psel <= #FFD 1'b1;
56
 
57
   always @(posedge clk or posedge reset)
58
     if (reset)
59
       penable <= #FFD 1'b0;
60
     else if (pack)
61
       penable <= #FFD 1'b0;
62
     else if (psel)
63
       penable <= #FFD 1'b1;
64
 
65
   always @(posedge clk or posedge reset)
66
     if (reset)
67
       pwrite  <= #FFD 1'b0;
68
     else if (pack)
69
       pwrite  <= #FFD 1'b0;
70
     else if (wstart)
71
       pwrite  <= #FFD 1'b1;
72
 
73
 
74
endmodule
75
 
76
 

powered by: WebSVN 2.1.0

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