diff options
Diffstat (limited to 'rtl/src/verilog/eim_indicator.v')
-rw-r--r-- | rtl/src/verilog/eim_indicator.v | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/rtl/src/verilog/eim_indicator.v b/rtl/src/verilog/eim_indicator.v new file mode 100644 index 0000000..1324afb --- /dev/null +++ b/rtl/src/verilog/eim_indicator.v @@ -0,0 +1,36 @@ +`timescale 1ns / 1ps
+
+module eim_indicator
+ (
+ sys_clk, sys_rst,
+ eim_active,
+ led_out
+ );
+
+ //
+ // Ports
+ //
+ input wire sys_clk;
+ input wire sys_rst;
+ input wire eim_active;
+ output wire led_out;
+
+ //
+ // Parameters
+ //
+ localparam CNT_BITS = 24; // led will be dim for 2**(24-1) = 8388608 ticks, which is ~100 ms @ 80 MHz.
+
+ //
+ // Counter
+ //
+ reg [CNT_BITS-1:0] cnt;
+
+ always @(posedge sys_clk)
+ //
+ if (sys_rst) cnt <= {CNT_BITS{1'b0}};
+ else if (cnt > {CNT_BITS{1'b0}}) cnt <= cnt - 1'b1;
+ else if (eim_active) cnt <= {CNT_BITS{1'b1}};
+
+ assign led_out = ~cnt[CNT_BITS-1];
+
+endmodule
|