Anonim

Pourquoi prototype?

Étant donné que de nombreux bogues logiciels imprévus sont liés à la complexité de l'intégration du système d'exploitation, des applications et du matériel, un prototype de FPGA à la vitesse permet de nombreux mois supplémentaires de tests logiciels rigoureux à l'étape cruciale de l'intégration. Cet avantage est à nouveau multiplié si les clones du prototype de FPGA sont disséminés dans de nombreux laboratoires logiciels. La disponibilité de cartes FPGA standard de haute qualité en fait une question d’économie plutôt que de temps.

Le logiciel peut être confié à un grand nombre d’utilisateurs potentiels qui trouveront sûrement une multitude de façons de verrouiller le système d’exploitation, de bloquer une application ou de faire en général des choses que l’ingénieur logiciel n’avait jamais imaginées.

n

Quand prototyper

Il est évidemment intéressant que le débogage soit effectué avant la signature de la conception du SoC. La figure 1 montre l'accent typique mis sur la simulation, l'émulation et le prototypage au cours des différentes étapes d'un grand projet Asic. Comme on peut le constater, les prototypes FPGA sont principalement utilisés car le projet nécessite une vitesse et une capacité élevées pendant les étapes d'intégration.

Prenons le cas où la solution idéale à un problème d’intégration logicielle réside dans une modification matérielle. Par exemple, cela peut impliquer l'extraction d'un algorithme DSP gourmand en cycle dans un co-processeur ou une logique de périphérique personnalisée. Si le point de découverte d'une telle exigence survient après que le SoC est déjà loin d'être terminé, voire même terminé et échantillonné, il est peu probable que la modification requise de l'appareil soit prise en compte; quel que soit l'avantage pour le produit final.

itemid-51967-getasset

Fig 1. L'utilisation relative de différentes techniques de vérification au cours d'un projet

Les défis du prototypage

Étonnamment, la création du matériel lui-même n'est pas le problème le plus difficile. En effet, des cartes de prototypage Asic spécialement conçues, telles que HAPS, sont disponibles auprès d’un certain nombre de fournisseurs. Les véritables défis se posent lorsque vous essayez d'implémenter la conception dans le FPGA.

Partitionnement et gestion des entrées / sorties

Bien que les plus grands FPGA actuels puissent gérer plus de deux millions de portes Asic chacune, de nombreuses conceptions Asic sont encore plus grandes. Cela nécessite que seule une partie critique du SoC soit prototypée ou que la conception soit partitionnée entre plusieurs FPGA. Cela présente des obstacles intéressants, car notre objectif principal est la vérification. Par conséquent, le but doit être de partitionner avec le moins de modifications possibles à la RTL Asic. Le partitionnement de la conception crée des limites artificielles et, pour les conceptions avec des bus internes étendus ou des chemins de données étendus, la partition peut provoquer une explosion du nombre de broches d'E / S requises. Les broches du FPGA deviennent la ressource limitante, même lorsque vous utilisez les derniers FPGA avec plus de 1000 E / S chacun.

Des ressources d'E / S supplémentaires peuvent être créées en multiplexant plusieurs signaux sur la même broche FPGA, puis en démultiplexant sur le FPGA cible. Une fois encore, nous ne souhaitons pas modifier la RTL Asic pour rendre cela possible, donc un multiplexage automatique des broches est effectué. Cela introduirait clairement une pénalité de performance; Cependant, les FPGA ont des E / S assez rapides pour que, même multiplexés, ils fournissent toujours des performances suffisantes pour valider les logiciels embarqués complexes «à la vitesse».

itemid-51969-getasset

Fig. 2 Conversion automatique de l'horloge synchronisée

Changements topographiques sans altération de RTL

Avec une intervention manuelle et une intelligence conceptuelle, nous pourrions réduire les limites d'E / S en répliquant le sous-bloc dans plusieurs FPGA, réduisant ainsi le besoin d'interconnexion entre eux. D'autres opérations spécialisées sur la RTL, telles que les portes de bas niveau à découpage de bits ou la fermeture à glissière de blocs plus complexes (toutes deux possibles sans modifications de la RTL), réduiront encore le besoin en E / S FPGA.

Les horloges Asic et FPGA ne sont pas identiques

Les problèmes supplémentaires rencontrés par l’équipe lors du portage d’une conception SoC sur un FPGA sont le fait que les auteurs du RTL original n’ont peut-être guère tenu compte de celui-ci. Les instanciations de cellules Asic ou RAM BIST sont deux exemples d'objets hostiles aux FPGA dans la RTL, mais les problèmes les plus importants sont l'adresse IP et la complexité de l'horloge. Les FPGA ont du mal à prendre en charge les styles de conception gated-clock utilisés dans Asics pour réduire la consommation d'énergie. Au lieu de cela, les signaux de déclenchement d'horloge doivent être convertis en activations d'horloge dans le matériel FPGA. Effectuer cette conversion manuellement serait extrêmement fastidieux et risquerait d'introduire de nouveaux bogues. Certains outils de synthèse peuvent effectuer cette conversion gated-clock automatiquement même sur des circuits de génération d'horloge complexes. La figure 2 montre un exemple d'une telle conversion d'horloge générée automatiquement dans Synplify Premier de Synplicity.

Traitement IP

Les grands blocs IP, tels que les processeurs ARM, peuvent être acquis en tant que puces complètes et interfacés au reste du matériel de prototypage. La seule exigence est que le matériel soit suffisamment souple pour prendre en charge diverses cartes filles prêtes pour IP, telles que la carte Coretile ARM. Toutefois, les fonctions communes plus petites telles que la mémoire, les FIFO, les multiplicateurs et les additionneurs seront trop nombreuses pour être gérées de cette manière. Là encore, le logiciel EDA approprié peut convertir automatiquement ces fonctions en implémentations compatibles FPGA ou fournir des solutions simples pour les isoler en vue d’une implémentation externe.

Nous sommes au conseil d'administration de la FPGA: et maintenant?

Une fois que la conception a été portée sur le FPGA et qu'elle tourne à la vitesse supérieure, un autre problème se pose: comment effectuer le débogage de manière efficace? Les analyseurs logiques, intégrés ou externes, peuvent contribuer à cet effort, mais fonctionnent généralement dans l’espace de noms au niveau de la porte. Par conséquent, retracer ces signaux dans la RTL (c'est-à-dire où la conception a été entrée à l'origine) peut être un processus fastidieux, car il nécessite de revenir en arrière tout au long de l'étape de synthèse. Il est préférable d’effectuer le débogage à l’aide d’outils permettant de maintenir en toute transparence le lien symbolique entre la porte et les espaces de noms RTL.

Quelle est la prochaine étape pour le prototypage FPGA?