aboutsummaryrefslogtreecommitdiffstats
path: root/manual/PRESENTATION_ExSyn/techmap_01_map.v
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-02-04 16:51:12 +0100
committerClifford Wolf <clifford@clifford.at>2014-02-04 16:51:12 +0100
commit03d63dd861725ae9a4668a874566603b6b9bc247 (patch)
treea155d79656e02157daa5459760a84d162c961b70 /manual/PRESENTATION_ExSyn/techmap_01_map.v
parent7a5f378baef95bb1507333d86143662de1b08098 (diff)
downloadyosys-03d63dd861725ae9a4668a874566603b6b9bc247.tar.gz
yosys-03d63dd861725ae9a4668a874566603b6b9bc247.tar.bz2
yosys-03d63dd861725ae9a4668a874566603b6b9bc247.zip
presentation progress
Diffstat (limited to 'manual/PRESENTATION_ExSyn/techmap_01_map.v')
-rw-r--r--manual/PRESENTATION_ExSyn/techmap_01_map.v24
1 files changed, 24 insertions, 0 deletions
diff --git a/manual/PRESENTATION_ExSyn/techmap_01_map.v b/manual/PRESENTATION_ExSyn/techmap_01_map.v
new file mode 100644
index 000000000..64c0b87c5
--- /dev/null
+++ b/manual/PRESENTATION_ExSyn/techmap_01_map.v
@@ -0,0 +1,24 @@
+module \$add (A, B, Y);
+
+parameter A_SIGNED = 0;
+parameter B_SIGNED = 0;
+parameter A_WIDTH = 1;
+parameter B_WIDTH = 1;
+parameter Y_WIDTH = 1;
+
+input [A_WIDTH-1:0] A;
+input [B_WIDTH-1:0] B;
+output [Y_WIDTH-1:0] Y;
+
+generate
+ if ((A_WIDTH == 32) && (B_WIDTH == 32))
+ begin
+ wire [15:0] CARRY = |{A[15:0], B[15:0]} && ~|Y[15:0];
+ assign Y[15:0] = A[15:0] + B[15:0];
+ assign Y[31:16] = A[31:16] + B[31:16] + CARRY;
+ end
+ else
+ wire _TECHMAP_FAIL_ = 1;
+endgenerate
+
+endmodule