From 40bd702015f3a09f5c4d1ad30439b1ea186d7484 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 18 May 2024 17:48:27 -0600 Subject: target/w3d_de1soc: initial commit --- target/w3d_de1soc/intc.sv | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 target/w3d_de1soc/intc.sv (limited to 'target/w3d_de1soc/intc.sv') diff --git a/target/w3d_de1soc/intc.sv b/target/w3d_de1soc/intc.sv new file mode 100644 index 0000000..af78ef8 --- /dev/null +++ b/target/w3d_de1soc/intc.sv @@ -0,0 +1,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 -- cgit v1.2.3