summaryrefslogtreecommitdiffstats
path: root/content/zettel/5b3.md
blob: b2312415690b73efb7a8c415d19c33092b51cd03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
+++
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