Synthèse logique

En électronique numérique, la synthèse logique (anglais : RTL synthesis) est la traduction d'une forme abstraite de description du comportement d'un circuit (voir Register Transfer Level) en sa réalisation concrète sous forme de portes logiques. Le point de départ peut être un langage de description de matériel comme VHDL ou Verilog, un schéma logique du circuit. D'autres sources sont venues s'additionner depuis les années 2010, comme l'utilisation de la programmation en OpenCL[1],[2]. Le point d'arrivée peut être un code objet pour un CPLD ou FPGA ou la création d'un ASIC.

Méthodes initiales

[modifier | modifier le code]

Pour les fonctions logiques simples, la synthèse logique était basée initialement sur l'écriture de la fonction sous la forme d'une somme de termes optimaux, puis la sélection de sous-ensembles judicieux de ceux-ci comme couverture irredondante, enfin la transcription technologique de la somme des termes retenus par la règle de double couche.

évolutions

[modifier | modifier le code]

Avec les progrès de l'intégration des circuits, la conception de circuits plus généraux a fait apparaître des modularités. Multiplier les opérateurs fonctionnels au-delà des besoins théoriques est alors devenu un moyen de simplifier la conception.

Méthodes actuelles

[modifier | modifier le code]

Les méthodes précédentes sont devenues difficilement utilisables avec l'avènement de circuits intégrés comportant plus de mille transistors et combinant plusieurs fonctionnalités comme, à partir de 1971, les premiers microprocesseurs (Intel 4004…).

Actuellement, la synthèse logique est une étape qui consiste à compiler la description fonctionnelle d'un circuit à l'aide d'un outil de synthèse et d'une bibliothèque de cellules logiques. Cette description peut être écrite en langage Verilog ou VHDL et ne doit pas comporter d'éléments comportementaux non compréhensibles par l'outil de synthèse.

Les principaux fournisseurs d'outil de synthèse logique sont Synopsys, avec Design Compiler, et Cadence, avec BuildGate et RC.

Au cours de la synthèse, on effectue une compilation logique associée à des contraintes de temps définies dans la spécification d'un circuit logique numérique. Suivant les contraintes imposées à l'outil de synthèse, on obtiendra un résultat optimisé spécifiquement en surface ou en vitesse.

Open-Source

Propriétaires

Les fabricants de FPGA fournissent généralement aussi leur propre outil de synthèse. Ces outils propriétaires prennent en compte la spécificité de l'architecture du FPGA cible, et synthétisent uniquement pour les FPGAs de leur marque propre :

Référence

[modifier | modifier le code]
  1. (en) Kevin Morris, « HLS versus OpenCL », sur Electronic-Engineering Journal,
  2. Roozmeh et Lavagno 2018.

Bibliographie

[modifier | modifier le code]
  • J. Mermet, Étude méthodologique de la conception assistée par ordinateur des systèmes logiques : CASSANDRE, thèse d'État, Université Joseph-Fourier - Grenoble I., (lire en ligne)
  • Mehdi Roozmeh et Luciano Lavagno, « Using Machine Learning to Estimate Utilization and Throughput for OpenCL-Based SpMV Implementation on an FPGA », Microprocessors and Microsystems, vol. 63,‎ , p. 199-208 (DOI 10.1016/j.micpro.2018.09.009, lire en ligne)