+++ title = "MAC Optimisations" date = "2022-11-09" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["5b2", "1c4b1"] forwardlinks = ["5b1b"] zettelid = "5b3" +++ One useful optimisation is performing a fused multiply and add, which can be done directly using the DSP units on the FPGA. One example of such an implementation is using a carry-save adder ([\#5b1b]) actually, as the multiplication will use various additions, which can just be chained as a large array of full-adders like in the the carry-save adder. Then, the accumulator can also be added to this parallel chain of full-adders before the carry is reconciled with a propagate adder at the end. [\#5b1b]: /zettel/5b1b