Google XLS avec Altifigence CLI

Un flux CLI Linux distinct exécute DSLX avec une version fixée de Google XLS upstream ; les outils MCP XLS locaux proposent des opérations sur le code aux clients compatibles.

Sur cette page

Altifigence CLI propose un flux sous Linux x86_64 pour installer et exécuter une version fixée de la chaîne d’outils Google XLS upstream. Il accepte des requêtes qui identifient des modules sources et une opération, puis renvoie les résultats des outils installés. Ce flux en ligne de commande vous permet de vérifier du DSLX, d’exécuter des tests de modules et de générer du SystemVerilog à partir d’une fonction sélectionnée.

Un second flux relie les clients MCP compatibles à des outils XLS locaux pour le code source. Ces outils utilisent le moteur XLS natif installé à leurs côtés, qui s’exécute sur le CPU, et acceptent du code directement inclus dans la requête. Le flux de la chaîne upstream et le flux MCP XLS local disposent d’étapes de configuration et de formats de requête distincts. Chacun offre un moyen concret de travailler sur du code et d’en examiner les sorties à travers l’installation d’Altifigence CLI.

Exécutez la version fixée de la chaîne d’outils Google XLS upstream

Le parcours upstream commence par une installation explicite de la chaîne d’outils. Altifigence CLI installe une version fixée de Google XLS, vérifie l’archive et contrôle l’inventaire des outils et de la bibliothèque standard. Il conserve les fichiers de licence de cette version et écrit une configuration de la chaîne une fois ces vérifications réussies. La CLI vérifie de nouveau cette version installée avant de l’utiliser.

La configuration identifie l’installation utilisée pour les requêtes suivantes. La réponse décrivant ses capacités indique les opérations et les types d’entrée disponibles, ainsi que l’identité de la version et des outils. Le travail sur le code dispose ainsi d’un contexte d’exécution explicite : une requête, une installation sélectionnée et un résultat qui consigne les outils utilisés.

  1. Installez Altifigence CLI sous Linux x86_64. Exécutez alti xls upstream install avec votre compte utilisateur habituel, en choisissant de nouveaux chemins absolus pour la destination d’installation et la configuration de la chaîne d’outils sous un dossier existant.

  2. Consultez alti xls upstream capabilities avec cette configuration de la chaîne d’outils. Examinez les opérations, les types d’entrée et l’identité de la version installée indiqués pour votre installation.

  3. Préparez une requête avec operation, input_kind, entry et files. Pour DSLX, files contient les modules associés à des chemins relatifs se terminant par .x, et entry identifie le module de départ.

  4. Exécutez alti xls upstream run avec la configuration de la chaîne d’outils, un dossier work-root existant et la requête. Choisissez check pour l’analyse syntaxique et la vérification des types, ou eval pour les fonctions de test et les procs de test du module entry.

  5. Pour une fonction sélectionnée, incluez top et choisissez convert, optimize ou codegen. Examinez les artefacts renvoyés et conservez le résultat avec la requête de code pour votre revue.

Une requête comportant plusieurs fichiers explicite le lien entre un module et ses imports. L’exemple publié place une fonction add dans adder.x et l’importe depuis main.x, où un test de module vérifie le résultat. entry désigne le module de test pour l’évaluation. check et eval portent sur ce module entry et ses imports ; les requêtes de génération identifient la fonction avec top.

D’un additionneur typé aux sorties générées

L’additionneur documenté utilise des entrées u8 et une valeur de retour u8. Son test additionne u8:255 et u8:1 et attend u8:0. Ce petit exemple est utile pour une revue, car le type du code et le retour à zéro attendu en cas de débordement y apparaissent ensemble. Vous pouvez lire la fonction, examiner l’assertion et exécuter le test de module dans le cadre d’un même travail sur le code.

Pour générer du SystemVerilog avec pipeline, l’exemple sélectionne add comme top et utilise le module de l’additionneur comme entry. La conversion produit une représentation intermédiaire de la fonction sélectionnée ; l’optimisation produit un artefact IR optimisé ; la génération de code produit le SystemVerilog ainsi que les éléments d’interface, d’ordonnancement et de signature associés. Choisir convert ou optimize permet d’arrêter la revue à une étape intermédiaire.

Ce résultat codegen avec pipeline comprend module.sv, converted.ir, optimized.ir, interface.textproto, schedule.textproto et signature.textproto. Chaque artefact contient son texte, son nombre d’octets et son SHA-256. Le résultat consigne aussi les processus des outils, notamment leurs empreintes, arguments, codes de sortie et sorties. Ensemble, ces champs relient les fichiers générés aux outils et à la requête utilisés pour l’exécution.

Une requête de génération upstream peut sélectionner des étages de pipeline ou utiliser du SystemVerilog combinatoire. Considérez cela comme un choix de structure générée pendant l’exploration du code. Un exercice de revue utile consiste à garder le DSLX à côté de l’IR et du SystemVerilog renvoyés, puis à examiner comment la fonction sélectionnée apparaît aux différentes étapes. Cette comparaison est un travail de lecture que vous menez à partir des artefacts générés.

Connectez les outils MCP XLS locaux distincts

Le flux MCP XLS local commence avec le paquet CLI vérifié pour Linux x86_64. Dans les paramètres stdio d’un client compatible, définissez la commande avec le chemin absolu de l’exécutable alti-mcp installé et laissez les arguments vides. Conservez alti-xls à côté d’alti-mcp dans cette installation vérifiée. Définissez la variable d’environnement ALTI_MCP_MODE du processus serveur sur local-xls et établissez la connexion.

Actualisez la liste des outils du client, puis appelez altifigence.local.xls.capabilities avec un objet vide, {}. Examinez les capacités du moteur et le reçu d’exécution renvoyés. Cette étape établit le contexte du moteur avant l’envoi d’opérations sur le code depuis le client.

Le jeu d’outils comprend altifigence.local.xls.capabilities, altifigence.local.xls.check, altifigence.local.xls.eval, altifigence.local.xls.optimize et altifigence.local.xls.codegen. Ils permettent d’inspecter les capacités, de vérifier le code, de l’évaluer avec des vecteurs d’entrée, d’optimiser l’IR XLS et de générer du RTL. L’exécution utilise le moteur installé à leurs côtés, sur le CPU.

Pour une opération sur le code, renseignez input_kind avec dslx ou xls-ir, le code directement inclus dans source et le nom de la fonction principale dans top. Pour eval, fournissez aussi vectors sous forme de tableaux de chaînes de caractères. Ce format de requête convient à une fonction source explicitement sélectionnée et à un ensemble d’entrées typées préparées pour elle. Un appel réussi au moteur renvoie engine et receipt dans structuredContent.

Choisissez le flux adapté au travail sur le code

Le parcours upstream convient au travail sur des modules DSLX, des imports et des tests de modules lorsque vous souhaitez obtenir les résultats d’une version fixée et installée de la chaîne Google XLS. Le parcours MCP local convient à l’utilisation d’un client compatible pour envoyer des opérations avec code inclus et des vecteurs d’évaluation au moteur CPU natif. Commencez par la réponse décrivant les capacités correspondantes, identifiez le code et gardez le résultat renvoyé à disposition pour l’examiner.

Pour l’exemple de l’additionneur, conservez la requête de test de module et la requête de génération comme deux entrées distinctes de la revue. La requête de test nomme le module contenant l’assertion, tandis que la requête de génération nomme celui contenant la fonction sélectionnée. Lire ces requêtes ensemble permet de comprendre quel code est évalué et quelle fonction est convertie en RTL. Conservez leurs correspondances de fichiers avec les résultats pour identifier facilement le module importé et entry.

Le client local propose un autre exercice pratique sur le code : envoyez une petite fonction avec des types d’entrée explicites, vérifiez le code, puis évaluez-le avec des vecteurs préparés. Comparez les valeurs renvoyées aux attentes que vous avez écrites pour ces entrées. Conservez le résultat du moteur et le reçu d’exécution avec cette revue. Vous disposez ainsi d’éléments pour mener votre propre comparaison entre code, valeurs d’entrée et sortie, chaque opération étant explicitement choisie dans le client.

Pour en savoir plus

Consultez le guide de la version fixée de XLS upstream pour l’installation, les tests de modules et les artefacts SystemVerilog.

Utilisez le guide MCP XLS local pour configurer le client et effectuer des opérations sur le code.

Lisez le guide Altifigence CLI pour le parcours d’installation sous Linux.

Rendez-vous sur Altifigence Downloads pour la distribution CLI et les téléchargements de produits.