Dans un domaine où la seule constante est le changement, il n'est pas nécessaire de passer en revue les développements et les changements dans les technologies électroniques et les approches de conception pour voir comment le changement permet aux ingénieurs de conception de créer la prochaine génération de produits innovants. Après l'application massive des microprocesseurs, de nouvelles technologies bon marché et de haute qualité ont ouvert la porte à la conception de produits électroniques innovants basés sur des logiciels. C'est un bon exemple. En bref, après avoir transféré l’élément principal de la conception – l’« intelligence» contrôlée – dans le domaine des logiciels, les ingénieurs de conception peuvent créer des produits meilleurs, plus intelligents et moins chers en moins de temps.
Ce changement signifie que les développeurs de logiciels embarqués sont les principaux moteurs de la définition des fonctionnalités et des caractéristiques des produits électroniques d'aujourd'hui et produiront finalement du matériel. Le facteur de succès de cette approche réside dans la réduction de la complexité matérielle et la flexibilité ouverte apportée par la conversion des éléments de contrôle de la conception en un domaine programmable.
Aujourd'hui, l'arrivée de dispositifs programmables à haute capacité et à faible coût donne le même espoir pour le développement de la conception de produits électroniques, car il est devenu possible de définir le matériel système lui - même dans le domaine des logiciels. Les dispositifs à grande échelle tels que les FPGA de grande capacité sont idéaux pour répondre à ce besoin. Ces cycles peuvent généralement être utilisés pour construire une grande partie des blocs fonctionnels logiques périphériques du système, y compris les interfaces de bus, les blocs d'E / s, et même les mémoires. L'introduction d'une grande quantité de logique dans le domaine des FPGA a eu un impact profond sur le développement matériel et a ouvert la porte à une nouvelle ère de conception « douce», qui offre une flexibilité sans précédent dans la conception et un potentiel illimité pour réduire la taille et la complexité des cartes.
Bien qu'il ait le potentiel de révolutionner le processus de développement de produits électroniques, la plupart des développeurs de logiciels embarqués choisissent toujours un processeur matériel discret au début du processus de conception, comme avant, créant une plate - forme physique, puis écrivant des logiciels pour utiliser cette plate - forme. Le manque d'exploration des domaines « logiciels» et matériels du développement de systèmes embarqués est principalement dû au manque d'outils permettant aux programmeurs C d'appliquer leurs compétences au niveau du matériel programmable. En fait, la plupart des processus de conception FPGA actuels proviennent principalement du domaine de la conception de puces et nécessitent des compétences très spécialisées.
Porter le design souple à un nouveau niveau
Pour aller au - delà des applications de logique adhésive FPGA, un champ de vision plus large est nécessaire, y compris la pleine utilisation des dispositifs programmables et l'introduction d'autant de matériel que possible dans le domaine logiciel. Cela inclut une introduction aux fonctions du processeur lui - même. De nos jours, les processeurs logiciels dans les FPGA se transforment de plus en plus en plates - formes embarquées. Fondamentalement, le passage à un processeur logiciel avec FPGA apportera des avantages de flexibilité structurelle, de taille de carte plus petite et de simplicité. Mais une application plus profonde apportera des avantages plus attrayants.
Lorsque les caractéristiques programmables d'un FPGA sont utilisées pour obtenir une couche d'abstraction sur le dessus d'un processeur, cela ouvre des possibilités infinies pour les développeurs embarqués d'implémenter des conceptions de niveau abstrait non seulement dans le logiciel, mais aussi dans le matériel. Imaginez un système dans lequel un processeur est connecté à sa mémoire et à ses périphériques via du matériel configurable (essentiellement un package matériel) – ce qui abstrait l’interface du processeur. Le simple fait de reprogrammer un FPGA modifie le package matériel et les concepteurs de systèmes peuvent facilement changer le cœur du processeur ou même basculer entre un processeur dur et un processeur logiciel sans modifier le matériel du système supplémentaire. Du point de vue du système, tous les processeurs sont similaires, ce qui simplifie le processus de conception du matériel. Bien sûr, son extension au domaine des logiciels d'application nécessite également un compilateur capable de fournir une compatibilité de niveau C entre les processeurs.
L'avantage de ce système est qu'il n'est pas nécessaire de sélectionner le processeur "à l'avance". Le système peut être développé à l'aide d'une sorte de processeur, mais la phase de développement a révélé que des performances plus élevées étaient nécessaires et que des périphériques plus rapides étaient utilisés. Grâce à la couche d'enveloppe, le processeur peut être souple, dur ou même un cœur de processeur matériel à l'intérieur du FPGA, sans affecter le matériel environnant, car la couche de conversion ne crée qu'une interface standard pour connecter les périphériques. En effet, la connexion du périphérique lui - même peut être abstraite de la même manière. Dans ce schéma, le FPGA fournit une connectivité commune à tous les composants du système embarqué et devient effectivement une structure d'interconnexion du système. En d'autres termes, il devient efficacement la « colonne vertébrale» des interfaces standard, où le matériel et les logiciels peuvent facilement communiquer avec les processeurs et les périphériques.
Enfin, l'introduction d'un wrapper transparent sur le processeur créera un environnement de développement basé sur FPGA offrant une véritable indépendance du processeur. La vitesse de développement du logiciel et du matériel a augmenté, le choix du processeur peut être fait plus tard dans le processus de conception et une co - conception efficace logiciel / matériel est devenue possible.
Conversion entre logiciel et matériel
Une extension de l'idée de créer des couches de processeur et de périphérique dans du matériel configurable est de générer automatiquement du matériel système spécifique à l'application et d'exécuter des algorithmes logiciels dans le matériel - un coprocesseur matériel « propre».
L'idée de générer du matériel directement à partir de code C n'est pas nouvelle. Plusieurs systèmes ont été mis en place. Jusqu'à présent, l'idée était de créer un matériel système complet via un langage de type c. Essentiellement, ce n’est pas différent de la conception d’un FPGA avec HDL, comme VHDL ou verilog, qui nécessite que les développeurs de logiciels apprennent et adoptent de nouvelles méthodes de conception. Ce qui fonctionne vraiment pour les développeurs embarqués est de rendre le processus transparent. L'outil de conception doit être capable de gérer l'entrée du Code C ANSI standard et de convertir les fonctions sélectionnées par le programmeur en matériel. Non seulement cela, mais le système doit être capable de générer tout le Code nécessaire pour utiliser le matériel généré. De cette façon, les programmeurs embarqués déchargent les algorithmes spécialisés du processeur vers le matériel spécialisé sans connaître les détails de conception du matériel sous - jacent.
Exploiter pleinement le potentiel des FPGA
De toute évidence, du point de vue de l'outil, tirer le meilleur parti des possibilités offertes par les dispositifs programmables tels que les FPGA nécessite un système qui augmente le niveau d'abstraction du processus de développement afin que les éléments centraux de la conception puissent être facilement modifiés par des techniques et des processus de conception similaires. Un tel système doit être capable d'unifier l'ensemble du processus de développement de produits électroniques et d'intégrer le développement de matériel, de logiciels et de matériel Programmable dans un environnement unifié.
Figure 1. Exploiter pleinement le potentiel des FPGA signifie apporter tous les éléments de la conception, y compris le matériel et les logiciels, dans le domaine programmable.
Altium designer a introduit un processeur simple et avancé pour atteindre cet objectif, répondant aux exigences des logiciels, FPGA et PCB, ainsi qu'un environnement de développement de produits intégré qui intègre tous les processus nécessaires dans une seule application (Figure 1). Le développement matériel et logiciel est unifié au niveau de la plate - forme, ce qui permet une conception collaborative rapide logiciel / matériel. Avec les processeurs basés sur FPGA et le cœur du package de processeur, les concepteurs peuvent cibler altium designer ou tout autre processeur tiers pris en charge, tout en conservant toutes les fonctionnalités de la conception, y compris la connexion facile des périphériques FPGA. Le compilateur basé sur Viper d'altium designer garantit une compatibilité de code de niveau C entre toutes les architectures de processeur prises en charge par le système.
Outre le potentiel de développement rapide de produits, l'intégration d'altium designer offre de nouvelles possibilités de conception et de fonctionnalité pour les développeurs embarqués. Altium a également développé une nouvelle technologie de compilateur matériel / logiciel intégré qui sera bientôt prise en charge par altium designer. La technologie génère simultanément un code exécutable hautement optimisé et une implémentation FPGA matérielle parallèle à partir du Code C standard, et génère le Code nécessaire pour lier les deux ensemble au moment de l'exécution. En pratique, cela signifie que les développeurs peuvent spécifier des fonctions de code C qui sont déchargées du processeur vers le matériel, et l'environnement logiciel / matériel intégré d'altium designer rend le processus rapide et transparent (Figure 2).
Figure 2: Avec l'aide d'outils logiciels avancés, les développeurs embarqués peuvent influencer, modifier et déboguer le matériel système sous - jacent lorsqu'ils deviennent ingénieurs en matériel.
Un tel système offre aux développeurs embarqués la possibilité de sélectionner la case à cocher du système pour obtenir le potentiel d'amélioration ultime des performances et des coûts lors du transfert de fonctionnalités logicielles dédiées au matériel. Cela permet aux développeurs de transmettre efficacement des fonctionnalités entre le matériel et le logiciel et de continuer à intégrer des solutions applicatives optimisées. Un phénomène intéressant à noter est que les développeurs de logiciels qui utilisent cette fonctionnalité d'altium designer et d'autres fonctionnalités avancées telles que le noyau encapsulé intégré et les composants logiciels pré - synchronisés basés sur des bibliothèques peuvent utiliser efficacement le matériel à l'intérieur du mécanisme FPGA. En bref, les ingénieurs logiciels qui utilisent le système peuvent facilement utiliser le matériel FPGA avec leurs compétences existantes sans impliquer la structure sous - jacente ou la programmation RTL du périphérique cible (Figure 3).
Figure 3, l'intégration des processus de conception, y compris le matériel, le matériel programmable et les logiciels, permet aux dispositifs FPGA d'être exploités et de créer des systèmes embarqués complets qui ne nécessitent qu'une technologie commune.
L'environnement de développement intégré d'altium designer, associé à des FPGA à grande échelle à faible coût, permet aux développeurs embarqués de développer pleinement le potentiel des périphériques programmables. Après avoir utilisé le bon environnement de développement, l'énorme espace de conception Reconfigurable apporté par les FPGA actuels permet une nouvelle approche de la conception embarquée où les concepteurs peuvent apporter des innovations révolutionnaires au développement de l'électronique, comme ils l'ont fait il y a des décennies. L'introduction des processeurs a révolutionné l'industrie électronique.