Hi Don
There is MUCH documentation on using the FPGA fabric for RNNs.
https://www.xilinx.com/support/documentation/application_notes/xapp1332-neural-networks.pdf
There are a couple of options and the FP options is easily synthesised.
The xilinx native DSP block DSP48E1 multiplier/adder size in 7 series
(mature) is (25bit x 18bbit) + 18b + 48b with 48 bit + carryout
accumulator, and they are designed to cascade for all manner of bit
sizes.. Up to whatever you can dream of (usually a column height ) IE
the fabric knows that you might extend them madly.
That is you could run large precision integer. There is a truncation,
barrel shifting and symmetric rounding function in the DSP block
(pipelined, 400 MHz sustained throughput) . Multipliers are cheap these
days. 80 x DSP48E1 blocks at 400 MHz in a $15 FPGA.
For floating point in fabric, one solution is to use a FP component .
The full range of IEEE functions are available . addsub,divide, recip,
exp, log, mul, recip-sqrt , abs, mul-acc, and the implemenation can be
fully pipelined for 350 MHz throughput in slow devices.
Precision is arbrirary- exponent and mantissa width from 0 to 64 bits.
Add/subtract : Example- consumes around 400 LUTs and runs at ~250 -
400 MHz in slow parts, single precision, moderately pipelined. so
utilization is moderate, and of course, running them at 300 MHz you can
share the one around ...
glen
On 6/22/2020 11:34 AM, Don wrote:
One of the first steps in using an FPGA is often converting to integer
math (it's all floats now). Just that might help with speed and memory.
Don Reid
On June 21, 2020 18:21:00 glen english <[email protected]> wrote:
Hi Jeroen , David
I'm interested in assisting where I can in the whole freeDV sphere. I've
recently gone over the last year of forum posts to see what I have
missed in detail.
I'd like to be able to implement LPC122, 203 (and Codec2) on a small ,
cheap FPGA for use with FreeDV .
I am not sure if this discussion needs a separate forum. Please let
me know.
I'm going to take a look at the code and understand how suited to a
processor or an FPGA from a cost/power point of view. I am a XIlinx user
, and I am also a XIlinx Alliance Partner, so I get access to cool
stuff.
As you know, complex algorithms are generally best executed (and more
quickly programmed and debugged) on a processor, until you run out of
speed or power, at which the programmer gradually hands over more and
more of the work to an FPGA co processor.
3 to 6 GFLOPS is of course no space for an STM32. But might be good as
a FPGA co processor for an STM32, to execute both CODEC2 and LPCNET and
take the heavy lifting out of the STM32 and turn the codec job into a
SPI peripheral.
I am thinking a medium Spartan7 (maybe $10-$20) or a small ZYNQ (single
core Cortex A9 and a heap of FPGA fabric $20-$30)
Smartphone cores are good, but running flat out for more than a few
seconds they (can) burn up . Sure they decode video, but that's on
dedicated hard blocks.
let me know what you think.
Another thing- Jeroen, if you would like me to organise a XIlinx U50
card to the task, I think my personal finances could stretch that. (or
I could head down that road to make things fast to develop)
https://www.xilinx.com/publications/product-briefs/alveo-u50-product-brief-v2.pdf
https://www.xilinx.com/support/documentation/data_sheets/ds965-u50.pdf
https://www.xilinx.com/products/boards-and-kits/alveo/u50.html
Xilinx have wrapped an easy to use framework around it. That's not the
sort of FPGA I am proposing, but it is a useful method of running up
testing with great speed. The FPGA has 8 GBytes of essentially 1024 bit
wide full core speed memory....a 10k$ FPGA.
73
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
--
Glen English
RF Communications and Electronics Engineer
CORTEX RF
&
Pacific Media Technologies Pty Ltd
ABN 40 075 532 008
PO Box 5231 Lyneham ACT 2602, Australia.
au mobile : +61 (0)418 975077
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2