Skip to content
This repository has been archived by the owner on Dec 1, 2018. It is now read-only.

Use MACC IP #232

Open
shadjis opened this issue Oct 4, 2017 · 3 comments
Open

Use MACC IP #232

shadjis opened this issue Oct 4, 2017 · 3 comments
Assignees

Comments

@shadjis
Copy link
Contributor

shadjis commented Oct 4, 2017

Rather than use separate DSP blocks for multiplies and then adds, the Xilinx MACC IP can be used. This would reduce DSP utilization.

@mattfel1
Copy link
Member

mattfel1 commented Oct 5, 2017

So should we have a MAC analysis that checks for a multiply map function and addition reduce function?

@dkoeplin
Copy link
Collaborator

dkoeplin commented Oct 5, 2017

If I understand the operation of the DSP correctly, the term MACC is actually a bit of a misnomer? It's actually just a fused multiply-add, no accumulate, meaning we just look for that pattern regardless of reduction. Maybe we prioritize reductions though?

@shadjis
Copy link
Contributor Author

shadjis commented Oct 5, 2017

I think there are 2 versions,

Multiply-Add does AB + C (3 inputs)
https://www.xilinx.com/products/intellectual-property/multiply_adder.html

Multiply-Accumulate does AB + previous product (2 inputs)
https://www.xilinx.com/products/intellectual-property/multiply_accumulator.html

As we discussed this might not reduce DSP utilization, only logic utilization because rather than use adders inside CLBs it would use adders in DSP blocks. It might still be an important logic optimization in the future if a design has a lot of multiply-add operations but maybe it is lower priority.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants