Note publique d'information : Les FPGA (Field Programmable Gate Arrays) constituent un type de circuit reprogrammable
qui, sous certaines conditions, peuvent avoir de meilleures performances que les microprocesseurs
classiques. Les FPGA utilisent le circuit comme paradigme de programmation, ce qui
permet d'effectuer des calculs parallèles propres à l'application visée. Ils permettent
aussi d’atteindre l’efficacité arithmétique: un bit ne doit être calculé que s'il
est utile dans le résultat final. Pour ce faire, l’arithmétique utilisée par les FPGA
ne peut se limiter qu’à des fonctions conçues pour les microprocesseurs. Cette thèse
se propose d’étudier les méthodes pour l’implémentation des fonctions gros-grain pour
les FPGA à travers trois voies. De nouvelles méthodes pour évaluer des fonctions trigonométriques,
telles que le sinus, cosinus et arc tangente ont été développés dans cette thèse.
Chaque méthode est optimisée dans son contexte, de la manière la plus flexible et
la plus souple possible. Pour que les méthodes aboutissent à leur efficacité arithmétique,
il est nécessaire de procéder à une analyse d'erreurs, ainsi qu’à un choix attentif
des paramétrés de la méthode et à une fine compréhension des algorithmes utilisés.
Les filtres numériques constituent une famille importante d’opérateurs arithmétiques
qui rassemble des fonctions élémentaires. Ils peuvent être spécifiés à un niveau élevé
d'abstraction, à travers une fonction de transfert avec des contraintes sur le rapport
signal/bruit. Ils peuvent être ensuite implémentés comme des chemins de données basés
sur des additions et des multiplications. Le principal résultat est donc une méthode
qui transforme une spécification de haut niveau en une implémentation d’une façon
automatique. La première étape se rapporte au développement d'une méthode pour le
calcul des produits par des constantes. Des filtres FIR et IIR peuvent être construits
à l'aide de cette brique de base. Pour que les opérateurs arithmétiques atteignent
leur performance maximale, on a besoin d’un pipeline correspondant au contexte donné.
Même si les connaissances du développeur s’avèrent d’un grand avantage pendant le
processus de création d'un pipeline d'un chemin de données, cette étape demeure complexe
et facilement susceptible à des erreurs. Une méthode automatique, contrôlée par le
développeur a dont été développée. Cette thèse fournit un générateur des opérateurs
arithmétiques de haute qualité près à l'emploi, et qui propagent le domaine des calculs
sur des FPGA à un pas plus proche de l’adoption générale. Les cœurs arithmétiques
font partie d'un générateur open-source, où les fonctions peuvent être décrites par
une spécification de haut niveau, comme par exemple une formule mathématique.
Note publique d'information : Field-Programmable Gate Arrays (FPGAs) have been shown to sometimes outperform mainstream
microprocessors. The circuit paradigm enables efficient application-specific parallel
computations. FPGAs also enable arithmetic efficiency: a bit is only computed if it
is useful to the final result. To achieve this, FPGA arithmetic shouldn’t be limited
to basic arithmetic operations offered by microprocessors. This thesis studies the
implementation of coarser operations on FPGAs, in three main directions: New FPGA-specific
approaches for evaluating the sine, cosine and the arctangent have been developed.
Each function is tuned for its context and is as versatile and flexible as possible.
Arithmetic efficiency requires error analysis and parameter tuning, and a fine understanding
of the algorithms used. Digital filters are an important family of coarse operators
resembling elementary functions: they can be specified at a high level as a transfer
function with constraints on the signal/noise ratio, and then be implemented as an
arithmetic datapath based on additions and multiplications. The main result is a method
which transforms a high-level specification into a filter in an automated way. The
first step is building an efficient method for computing sums of products by constants.
Based on this, FIR and IIR filter generators are constructed. For arithmetic operators
to achieve maximum performance, context-specific pipelining is required. Even if the
designer’s knowledge is of great help when building and pipelining an arithmetic datapath,
this remains complex and error-prone. A user-directed, automated method for pipelining
has been developed. This thesis provides a generator of high-quality, ready-made operators
for coarse computing cores, which brings FPGA-based computing a step closer to mainstream
adoption. The cores are part of an open-ended generator, where functions are described
as high-level objects such as mathematical expressions.