Catapulte C - Catapult C

Catapult C Synthesis, un produit commercial d'automatisation de la conception électronique de Mentor Graphics , est un outil de synthèse de haut niveau , parfois appelé synthèse algorithmique ou synthèse ESL. Catapult C prend les entrées ANSI C / C++ et SystemC et génère du code de niveau de transfert de registre (RTL) destiné aux FPGA et aux ASIC .

Histoire

En 2004, Mentor Graphics a officiellement annoncé son produit de synthèse de haut niveau Catapult C offrant une prise en charge de la conception hiérarchique pour la synthèse de sous-systèmes multiblocs en pipeline à partir de descriptions ANSI C/C++ non chronométrées. La principale fonctionnalité de Catapult C était de générer des RTL ( VHDL et Verilog ) destinés aux ASIC et aux FPGA. Les utilisateurs ont spécifié des contraintes de temps et de zone, et ont fourni une période d'horloge et une technologie de destination. Mentor a également annoncé un générateur de bibliothèque Catapult C pour les concepteurs ASIC afin de collecter des données de caractérisation détaillées.

En 2005, Mentor a annoncé des extensions à Catapult C pour créer automatiquement des modèles et des wrappers au niveau des transactions SystemC, pour la simulation de la conception dans des environnements de vérification prenant en charge SystemC. Mentor a également introduit la synthèse d'interface pour mapper le transfert de données impliqué par la transmission d'arguments de fonction C++ à des interfaces matérielles telles que des fils, des registres, des registres d'établissement de liaison, des mémoires, des bus ou des interfaces définies par l'utilisateur plus complexes.

En 2006, Mentor a annoncé Catapult SL (System Level) pour créer automatiquement des sous-systèmes de traitement du signal. Catapult SL pourrait coordonner le partitionnement des opérations C séquentielles en plusieurs blocs au sein du sous-système, y compris le partitionnement en plusieurs domaines d'horloge. Catapult SL insère automatiquement les canaux interblocs et les mémoires tampons appropriés pour assembler le sous-système.

En janvier 2009, Mentor a annoncé une intégration entre Catapult C et son environnement de conception et de simulation Vista SystemC pour générer automatiquement des modèles au niveau des transactions (TLM). Dans ce processus, l'entrée ANSI C++ non temporisée à Catapult est encapsulée dans un wrapper TLM ; les informations de synchronisation sont extraites des résultats de la synthèse et rétro-annotées dans le modèle résultant. Le flux est compatible avec la norme TLM-2.0 de l'Open SystemC Initiative (OSCI).

En juin 2009, Mentor a annoncé qu'il avait amélioré Catapult C avec la possibilité de synthétiser la logique de contrôle, de créer des netlists RTL à puissance optimisée, avec une synchronisation d'horloge multi-niveaux automatique et un flux de vérification automatisé pour permettre un débogage du RTL par rapport au C++ d'origine. contribution.

En janvier 2010, Mentor a annoncé la possibilité pour Catapult C de prendre en charge les entrées SystemC directes, y compris la prise en charge basée sur le cycle et au niveau des transactions (TLM).

En mai 2011, Mentor a annoncé que Catapult C prend en charge la synthèse TLM. Les modèles TLM abstraits sont convertis en modèles SystemC précis et spécifiques au protocole, et à partir de là, synthétisés en code RTL. Les descriptions synthétisables existantes peuvent être converties en TLM.

En août 2011, Catapult C a été racheté par Calypto Design Systems.

En septembre 2015, Mentor Graphics a acquis Calypto Design Systems, rachetant ainsi Catapult C.

Caractéristiques

CatapultC synthétise ANSI C/C++ sans extensions propriétaires. La prise en charge du langage C/C++ inclut des pointeurs, des classes, des modèles, une spécialisation de modèle et une surcharge d'opérateur, qui facilitent la méthodologie de réutilisation de la conception sur le code RTL.

Catapult C prend en charge la synthèse algorithmique et logique de contrôle.

Les concepteurs effectuent des itérations avec CatC pour choisir leur micro-architecture préférée pour des contraintes de performances et de surface spécifiées. Catapult possède une interface utilisateur graphique avec une vue visuelle du circuit matériel qu'il planifie, ainsi que la référence d'horloge entre le code C et le code Verilog RTL. Catapult C propose 3 types de simulation utilisant le banc de test C/C++ d'origine : basé sur le cycle, basé sur RTL et basé sur le niveau de porte.

Catapult C prend en charge la génération de modèles SystemC destinés aux plates-formes virtuelles et un environnement de test SystemC pour vérifier la RTL générée par rapport au C++ d'origine à l'aide du banc de test C++ d'origine.

Catapult C prend en charge la synthèse de modèles de niveau de transaction (TLM), y compris les interfaces de bus standard et les protocoles personnalisés.

Produits HLS concurrents

Les références

Liens externes