blob: af78ef8f6a9f8a1643f84ee1d6385652bea133db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
module intc
(
input logic clk,
rst_n,
input logic irq_timer,
irq_jtaguart,
input logic avl_address,
avl_read,
avl_write,
input logic[31:0] avl_writedata,
output logic avl_irq,
output logic[31:0] avl_readdata
);
logic[31:0] status, mask;
assign status = {30'b0, irq_jtaguart, irq_timer} & mask;
assign avl_irq = |status;
assign avl_readdata = avl_address ? mask : status;
always @(posedge clk or negedge rst_n)
if(!rst_n)
mask <= 0;
else if(avl_write && avl_address)
mask <= avl_writedata;
endmodule
|