summaryrefslogtreecommitdiff
path: root/manual/APPNOTE_011_Design_Investigation
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-12-01 14:07:44 +0100
committerClifford Wolf <clifford@clifford.at>2013-12-01 14:07:44 +0100
commit73e28f0e3900cc071f13365748212f1ef10cf0e2 (patch)
tree87090019e28573b447a5ef17c1f4993e043da2f8 /manual/APPNOTE_011_Design_Investigation
parent7295b25955ad6f185846e46e7a860e0b474f94a0 (diff)
Progress on AppNote 011
Diffstat (limited to 'manual/APPNOTE_011_Design_Investigation')
-rw-r--r--manual/APPNOTE_011_Design_Investigation/.gitignore6
-rw-r--r--manual/APPNOTE_011_Design_Investigation/make.sh14
-rw-r--r--manual/APPNOTE_011_Design_Investigation/memdemo.v19
3 files changed, 38 insertions, 1 deletions
diff --git a/manual/APPNOTE_011_Design_Investigation/.gitignore b/manual/APPNOTE_011_Design_Investigation/.gitignore
index 5626754f..6df5200c 100644
--- a/manual/APPNOTE_011_Design_Investigation/.gitignore
+++ b/manual/APPNOTE_011_Design_Investigation/.gitignore
@@ -7,3 +7,9 @@ cmos_01.dot
splice.dot
sumprod_00.dot
sumprod_01.dot
+sumprod_02.dot
+sumprod_03.dot
+sumprod_04.dot
+sumprod_05.dot
+memdemo_00.dot
+memdemo_01.dot
diff --git a/manual/APPNOTE_011_Design_Investigation/make.sh b/manual/APPNOTE_011_Design_Investigation/make.sh
index cbabdc8e..d0d20b2e 100644
--- a/manual/APPNOTE_011_Design_Investigation/make.sh
+++ b/manual/APPNOTE_011_Design_Investigation/make.sh
@@ -5,7 +5,13 @@
../../yosys -p 'techmap; splitnets -ports; abc -liberty ../../techlibs/cmos/cmos_cells.lib;; show -lib ../../techlibs/cmos/cmos_cells.v -format dot -prefix cmos_01' cmos.v
../../yosys -p 'opt; cd sumprod; select a:sumstuff; show -format dot -prefix sumprod_00' sumprod.v
../../yosys -p 'opt; cd sumprod; select a:sumstuff %x; show -format dot -prefix sumprod_01' sumprod.v
-sed -i '/^label=/ d;' example_*.dot splice.dot cmos_*.dot sumprod_*.dot
+../../yosys -p 'opt; cd sumprod; select prod; show -format dot -prefix sumprod_02' sumprod.v
+../../yosys -p 'opt; cd sumprod; select prod %ci; show -format dot -prefix sumprod_03' sumprod.v
+../../yosys -p 'opt; cd sumprod; select prod %ci2; show -format dot -prefix sumprod_04' sumprod.v
+../../yosys -p 'opt; cd sumprod; select prod %ci3; show -format dot -prefix sumprod_05' sumprod.v
+../../yosys -p 'proc; opt; memory; opt; cd memdemo; show -format dot -prefix memdemo_00' memdemo.v
+../../yosys -p 'proc; opt; memory; opt; cd memdemo; show -format dot -prefix memdemo_01 y %ci2:+$dff[Q,D] %ci*:-$mux[S]:-$dff' memdemo.v
+sed -i '/^label=/ d;' example_*.dot splice.dot cmos_*.dot sumprod_*.dot memdemo_*.dot
dot -Tpdf -o example_00.pdf example_00.dot
dot -Tpdf -o example_01.pdf example_01.dot
dot -Tpdf -o example_02.pdf example_02.dot
@@ -15,3 +21,9 @@ dot -Tpdf -o cmos_00.pdf cmos_00.dot
dot -Tpdf -o cmos_01.pdf cmos_01.dot
dot -Tpdf -o sumprod_00.pdf sumprod_00.dot
dot -Tpdf -o sumprod_01.pdf sumprod_01.dot
+dot -Tpdf -o sumprod_02.pdf sumprod_02.dot
+dot -Tpdf -o sumprod_03.pdf sumprod_03.dot
+dot -Tpdf -o sumprod_04.pdf sumprod_04.dot
+dot -Tpdf -o sumprod_05.pdf sumprod_05.dot
+dot -Tpdf -o memdemo_00.pdf memdemo_00.dot
+dot -Tpdf -o memdemo_01.pdf memdemo_01.dot
diff --git a/manual/APPNOTE_011_Design_Investigation/memdemo.v b/manual/APPNOTE_011_Design_Investigation/memdemo.v
new file mode 100644
index 00000000..babc24e2
--- /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