summaryrefslogtreecommitdiff
path: root/hdl/fibseq.sv
diff options
context:
space:
mode:
Diffstat (limited to 'hdl/fibseq.sv')
-rw-r--r--hdl/fibseq.sv32
1 files changed, 32 insertions, 0 deletions
diff --git a/hdl/fibseq.sv b/hdl/fibseq.sv
new file mode 100644
index 0000000..752c0b6
--- /dev/null
+++ b/hdl/fibseq.sv
@@ -0,0 +1,32 @@
1`include "utils.svh"
2
3module fibseq
4 #( BITS = 8
5 )
6 ( input bit clk
7 , input bit reset
8
9 , input bit ready `define ready `past(ready)
10 , output bit valid
11 , output bit [BITS-1:0] data
12 );
13
14bit [BITS-1:0] a;
15bit [BITS-1:0] b;
16
17always_ff @(posedge clk) begin
18 if (reset) begin
19 valid = 0;
20 a = 0;
21 b = 1;
22 end else begin
23 if (`ready) valid = 0;
24 if (!valid) begin
25 valid = 1;
26 data = a;
27 {a, b} = {b, a + b};
28 end
29 end
30end
31
32endmodule