aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 322233bb50131ab7a286db6b82b1fe475b63553b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Booth Multiplier

Sequentially multiply two signed twos-compliment integers in
Verilog using the [Booth Algorithm][1].

[1]: https://en.wikipedia.org/wiki/Booth%27s_multiplication_algorithm

This design has been sucessfully synthesized with F4PGA
(`5aafae65883e95e41de2d0294729662dbe0a34f5`) on a Digilent Arty A7-35T
running at a clock speed of 100MHz. The test design is in `arty_test`.

## License

All source code is licensed under the CERN-OHL-W v2 or later, unless
otherwise noted.

## Usage

Set parameters `A1_LEN` and `A2_LEN` to the argument size of the
first and second integer. Set `A2LEN_SIZ` equal to
`floor(log2(A2_LEN) + 1)`.

After inputting each integer, pulse `arm` and wait until `fin` goes
high to retreive the output in `outn`.

## Simulating

Simulation is done with Verilator. Run `make`.