
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) |