summaryrefslogtreecommitdiff
path: root/manual/PRESENTATION_ExSyn/techmap_01_map.v
diff options
context:
space:
mode:
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 00000000..64c0b87c
--- /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