The design consists of a RAM and an approximate multiplier a * b = r
based on DRUM: A Dynamic Range Unbiased Multiplier for
Approximate Applications by Hashemi et. al.
r = a * b
. Write data to a
and b
. Then read the result/s from the RAM. The product results should differ if the frequency is increased.
Address map:
Nothing.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | addr[0] | ram_out(0) | ram_in(0) or result(0) |
1 | addr[1] | ram_out(1) | ram_in(1) or result(1) |
2 | addr[2] | ram_out(2) | ram_in(2) or result(2) |
3 | addr[3] | ram_out(3) | ram_in(3) or result(3) |
4 | ram_out(4) | ram_in(4) or result(4) | |
5 | result write enable | ram_out(5) | ram_in(5) or result(5) |
6 | tristate output enable | ram_out(6) | ram_in(6) or result(6) |
7 | RAM write enable | ram_out(7) | ram_in(7) or result(7) |