Rev 93 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 93 | Rev 102 | ||
---|---|---|---|
Line 35... | Line 35... | ||
35 | reg [2:0] req; |
35 | reg [2:0] req; |
36 | 36 | ||
37 | reg [2:0] pri_req; |
37 | reg [2:0] pri_req; |
38 | 38 | ||
39 | 39 | ||
- | 40 | wire [2:0] enareq; |
|
- | 41 | ||
40 | 42 | ||
41 | 43 | ||
42 | // M1 signal beginning |
44 | // M1 signal beginning |
43 | always @(posedge clk) |
45 | always @(posedge clk) |
44 | {m1_rr, m1_r} <= {m1_r, m1_n}; |
46 | {m1_rr, m1_r} <= {m1_r, m1_n}; |
Line 88... | Line 90... | ||
88 | // readback requests |
90 | // readback requests |
89 | assign req_rd = { 5'd0, req[2:0] }; |
91 | assign req_rd = { 5'd0, req[2:0] }; |
90 | 92 | ||
91 | 93 | ||
92 | 94 | ||
- | 95 | assign enareq = req & ena; |
|
- | 96 | ||
- | 97 | ||
93 | // make prioritized request position |
98 | // make prioritized request position |
94 | always @(posedge clk) |
99 | always @(posedge clk) |
95 | if( m1_beg ) |
100 | if( m1_beg ) |
96 | begin |
101 | begin |
97 | pri_req[0] <= req[0] ; |
102 | pri_req[0] <= enareq[0] ; |
98 | pri_req[1] <= !req[0] && req[1] ; |
103 | pri_req[1] <= !enareq[0] && enareq[1] ; |
99 | pri_req[2] <= !req[0] && !req[1] && req[2]; |
104 | pri_req[2] <= !enareq[0] && !enareq[1] && enareq[2]; |
100 | end |
105 | end |
101 | // |
106 | // |
102 | assign int_vector = { 1'b1, ~pri_req[2], ~pri_req[1] }; // for 3 requests only |
107 | assign int_vector = { 1'b1, ~pri_req[2], ~pri_req[1] }; // for 3 requests only |
103 | 108 | ||
104 | 109 | ||
105 | // gen interrupt |
110 | // gen interrupt |
106 | always @(posedge clk) |
111 | always @(posedge clk) |
107 | int_n <= !( req & ena ); |
112 | int_n <= !enareq; |
108 | 113 | ||
109 | 114 | ||
110 | endmodule |
115 | endmodule |
111 | 116 |