FUNCTIONAL PEARL Derivation of a logarithmic time carry lookahead addition circuit
2004 ◽
Vol 14
(6)
◽
pp. 697-713
◽
Keyword(s):
Using Haskell as a digital circuit description language, we transform a ripple carry adder that requires $O(n)$ time to add two $n$-bit words into a parallel carry lookahead adder that requires $O(\log n)$ time. The ripple carry adder uses a scan function to calculate carry bits, but this scan cannot be parallelized directly since it is applied to a non-associative function. Several techniques are applied in order to introduce parallelism, including partial evaluation and symbolic function representation. The derivation given here constitutes a semi-formal correctness proof, and it also brings out explicitly each of the ideas underlying the algorithm.
1989 ◽
Vol 27
(1-5)
◽
pp. 267-271
◽
2020 ◽
Vol 10
(4)
◽
pp. 4008
2020 ◽
Vol 6
(6)
◽
pp. 40-50
Keyword(s):
2018 ◽
Vol 266
◽
pp. 164-178
◽
2019 ◽
Vol 26
(3)
◽
pp. 332-350
2015 ◽
Vol 738-739
◽
pp. 1266-1269
Keyword(s):
2019 ◽
Vol 9
(1)
◽
pp. 2928-2932
Keyword(s):