diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-12-01 14:07:44 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-12-01 14:07:44 +0100 |
commit | 73e28f0e3900cc071f13365748212f1ef10cf0e2 (patch) | |
tree | 87090019e28573b447a5ef17c1f4993e043da2f8 /manual/APPNOTE_011_Design_Investigation | |
parent | 7295b25955ad6f185846e46e7a860e0b474f94a0 (diff) | |
download | yosys-73e28f0e3900cc071f13365748212f1ef10cf0e2.tar.gz yosys-73e28f0e3900cc071f13365748212f1ef10cf0e2.tar.bz2 yosys-73e28f0e3900cc071f13365748212f1ef10cf0e2.zip |
Progress on AppNote 011
Diffstat (limited to 'manual/APPNOTE_011_Design_Investigation')
-rw-r--r-- | manual/APPNOTE_011_Design_Investigation/.gitignore | 6 | ||||
-rw-r--r-- | manual/APPNOTE_011_Design_Investigation/make.sh | 14 | ||||
-rw-r--r-- | manual/APPNOTE_011_Design_Investigation/memdemo.v | 19 |
3 files changed, 38 insertions, 1 deletions
diff --git a/manual/APPNOTE_011_Design_Investigation/.gitignore b/manual/APPNOTE_011_Design_Investigation/.gitignore index 5626754fc..6df5200cb 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 cbabdc8e3..d0d20b2ee 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 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 |