diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-02-04 16:51:12 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-02-04 16:51:12 +0100 |
commit | 03d63dd861725ae9a4668a874566603b6b9bc247 (patch) | |
tree | a155d79656e02157daa5459760a84d162c961b70 /manual/PRESENTATION_ExSyn/techmap_01_map.v | |
parent | 7a5f378baef95bb1507333d86143662de1b08098 (diff) | |
download | yosys-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.v | 24 |
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 |