aboutsummaryrefslogtreecommitdiffstats
path: root/manual/APPNOTE_011_Design_Investigation/memdemo.v
diff options
context:
space:
mode:
Diffstat (limited to 'manual/APPNOTE_011_Design_Investigation/memdemo.v')
-rw-r--r--manual/APPNOTE_011_Design_Investigation/memdemo.v19
1 files changed, 19 insertions, 0 deletions
diff --git a/manual/APPNOTE_011_Design_Investigation/memdemo.v b/manual/APPNOTE_011_Design_Investigation/memdemo.v
new file mode 100644
index 000000000..babc24e29
--- /dev/null
+++ b/manual/APPNOTE_011_Design_Investigation/memdemo.v
@@ -0,0 +1,19 @@
+module memdemo(clk, d, y);
+
+input clk;
+input [3:0] d;
+output reg [3:0] y;
+
+integer i;
+reg [1:0] s1, s2;
+reg [3:0] mem [0:3];
+
+always @(posedge clk) begin
+ for (i = 0; i < 4; i = i+1)
+ mem[i] <= mem[(i+1) % 4] + mem[(i+2) % 4];
+ { s2, s1 } = d ? { s1, s2 } ^ d : 0;
+ mem[s1] <= d;
+ y <= mem[s2];
+end
+
+endmodule