A method of compiling a source program to produce hardware is provided. The
method includes the steps of carrying out data flow analysis of the source
program to produce a data flow representation of the source program, where
the data flow representation includes a number of multipliers each
arranged to accept first and second input arguments having first and
second input bit widths respectively, and to produce an output having a
bit width; optimizing the data flow representation so that the input and
output bit widths are minimised, even if this results in them being
different for some or all of the multipliers; and carrying out high level
synthesis on the optimised data flow representation, including sharing
functional units between the multipliers in such a way that the area of
silicon required to produce the functional units is minimised, even if
this results in the functional unit input and output bit widths being
different.
Een methode om een bronprogramma wordt te compileren om hardware te produceren verstrekt. De methode omvat de stappen van het uitvoeren van de analyse van de gegevensstroom van het bronprogramma om een vertegenwoordiging van de gegevensstroom van het bronprogramma te veroorzaken, waar de vertegenwoordiging van de gegevensstroom een aantal multiplicatoren elk geschikt om eerst respectievelijk goed te keuren en tweede inputargumenten eerst en de tweede breedten die van het inputbeetje omvat hebben, en een output te veroorzaken die een beetjebreedte hebben; het optimaliseren van de vertegenwoordiging van de gegevensstroom zodat de input en outputbeetjebreedten worden geminimaliseerd, zelfs als dit in hen resulteert die voor wat of de elk van multiplicatoren verschillend zijn; en uitvoerend synthese op hoog niveau op de geoptimaliseerde vertegenwoordiging van de gegevensstroom, met inbegrip van het delen van functionele eenheden tussen de multiplicatoren zodanig dat het gebied van silicium dat wordt vereist om de functionele eenheden te veroorzaken wordt geminimaliseerd, zelfs als dit in de functionele van de eenheidsinput en output beetjebreedten resulteert die verschillend zijn.