summaryrefslogtreecommitdiff
path: root/manual/APPNOTE_011_Design_Investigation
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-12-02 12:54:21 +0100
committerClifford Wolf <clifford@clifford.at>2013-12-02 12:54:21 +0100
commit0f4055d4c6be5d0e0423d4ea16b49610b368020e (patch)
tree800ee5676af605b765fb7d32f6609696216f4f5f /manual/APPNOTE_011_Design_Investigation
parent6e227e3666c7db1d40df27daa0b79c8055c57e83 (diff)
Progress on AppNote 011
Diffstat (limited to 'manual/APPNOTE_011_Design_Investigation')
-rw-r--r--manual/APPNOTE_011_Design_Investigation/.gitignore4
-rw-r--r--manual/APPNOTE_011_Design_Investigation/make.sh7
-rw-r--r--manual/APPNOTE_011_Design_Investigation/memdemo.v2
-rw-r--r--manual/APPNOTE_011_Design_Investigation/submod.ys16
4 files changed, 27 insertions, 2 deletions
diff --git a/manual/APPNOTE_011_Design_Investigation/.gitignore b/manual/APPNOTE_011_Design_Investigation/.gitignore
index 6df5200c..85e44618 100644
--- a/manual/APPNOTE_011_Design_Investigation/.gitignore
+++ b/manual/APPNOTE_011_Design_Investigation/.gitignore
@@ -13,3 +13,7 @@ sumprod_04.dot
sumprod_05.dot
memdemo_00.dot
memdemo_01.dot
+submod_00.dot
+submod_01.dot
+submod_02.dot
+submod_03.dot
diff --git a/manual/APPNOTE_011_Design_Investigation/make.sh b/manual/APPNOTE_011_Design_Investigation/make.sh
index d0d20b2e..a88f642d 100644
--- a/manual/APPNOTE_011_Design_Investigation/make.sh
+++ b/manual/APPNOTE_011_Design_Investigation/make.sh
@@ -11,7 +11,8 @@
../../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
+../../yosys submod.ys
+sed -i '/^label=/ d;' example_*.dot splice.dot cmos_*.dot sumprod_*.dot memdemo_*.dot submod_*.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
@@ -27,3 +28,7 @@ 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
+dot -Tpdf -o submod_00.pdf submod_00.dot
+dot -Tpdf -o submod_01.pdf submod_01.dot
+dot -Tpdf -o submod_02.pdf submod_02.dot
+dot -Tpdf -o submod_03.pdf submod_03.dot
diff --git a/manual/APPNOTE_011_Design_Investigation/memdemo.v b/manual/APPNOTE_011_Design_Investigation/memdemo.v
index babc24e2..b39564dd 100644
--- a/manual/APPNOTE_011_Design_Investigation/memdemo.v
+++ b/manual/APPNOTE_011_Design_Investigation/memdemo.v
@@ -11,7 +11,7 @@ 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;
+ { s2, s1 } = d ? { s1, s2 } ^ d : 4'b0;
mem[s1] <= d;
y <= mem[s2];
end
diff --git a/manual/APPNOTE_011_Design_Investigation/submod.ys b/manual/APPNOTE_011_Design_Investigation/submod.ys
new file mode 100644
index 00000000..29ad6107
--- /dev/null
+++ b/manual/APPNOTE_011_Design_Investigation/submod.ys
@@ -0,0 +1,16 @@
+read_verilog memdemo.v
+proc; opt; memory; opt
+
+cd memdemo
+select -set outstage y %ci2:+$dff[Q,D] %ci*:-$mux[S]:-$dff
+select -set selstage y %ci2:+$dff[Q,D] %ci*:-$dff @outstage %d
+select -set scramble mem* %ci2 %ci*:-$dff mem* %d @selstage %d
+submod -name scramble @scramble
+submod -name outstage @outstage
+submod -name selstage @selstage
+
+cd ..
+show -format dot -prefix submod_00 memdemo
+show -format dot -prefix submod_01 scramble
+show -format dot -prefix submod_02 outstage
+show -format dot -prefix submod_03 selstage