Brevet FR2876472A1 — publié le 20060414

L'invention concerne un procédé de protocole pour un dispositif de système sur puce, et plus particulièrement un procédé de protocole pour composant matériel IP réutilisable pour un dispositif de système sur puce. s Les réalisations de systèmes sur puce dans lesquels on intègre dans une seule puce plusieurs blocs de circuits en relation fonctionnelle sont devenues une tendance importante dans les réalisations actuelles de circuits. Si l'on prend comme exemple un microprocesseur de système sur puce dans le domaine de l'informatique, les circuits internes du système sur in puce intègrent les blocs de circuits d'une unité centrale, d'un jeu de puces et d'une puce graphique, de sorte que le microprocesseur de système sur puce contient la fonctionnalité des trois blocs de circuits. La réalisation de systèmes sur puce réduit non seulement le coût de fabrication, mais aussi la surface totale des circuits pour réduire la dimension de l'ensemble des circuits. Chaque bloc de circuits est composé de plusieurs modules différents qui peuvent comprendre des compteurs, des additionneurs, des codeurs, des décodeurs, etc., qui sont appelés matériels IP. L'homme du métier connaît mieux la terminologie anglaise "IP hardware" ; IP signifie Intellectual Property, c'est-à-dire Propriété Industrielle en français. Les matériels IP sont des composants, ou blocs, préconçus remplissant une fonction. Ils sont souvent protégés par brevet d'où la terminologie employée. La réalisation de systèmes sur puce utilise des matériels IP pour construire les blocs de circuits requis et intègre ensuite ceux-ci ensemble dans une seule puce. La réalisation de systèmes sur puce pose cependant certains problèmes. Le plus important est la commande de la fréquence d'horloge entre les différents composants matériels IP. Un signal de fréquence d'horloge est utilisé pour commander la fréquence de fonctionnement, ou d'opération, de 3o chaque composant matériel IP dans le système sur puce. Lorsque le signal de fréquence d'horloge est envoyé à chaque bloc de circuits du système sur puce, tous les composants matériels IP du bloc de circuits fonctionnent à la même fréquence. Comme chaque composant matériel IP a sa propre fréquence de fonctionnement, pour permettre à plusieurs composants matériels I.P de fonctionner avec une seule fréquence d'horloge, le signal de fréquence d'horloge doit satisfaire à la fréquence d'horloge la plus basse pour éviter un cadencement incorrect. Cela réduit le rendement global du système. Il est par conséquent souhaitable de disposer d'un procédé de protocole pour composants matériels IP réutilisables pour un système sur puce pour atténuer et/ou éviter les problèmes précités. L'objectif principal de la présente invention est de fournir un procédé de protocole pour composant matériel IP réutilisable pour un système sur i o puce, qui puisse décrire le comportement du matériel par des fonctions logicielles. Un autre objectif de la présente invention est de fournir un procédé de protocole pour composant matériel IP réutilisable pour un système sur puce, qui puisse être réutilisé de nombreuses fois. Un autre objectif encore de la présente invention est de fournir un procédé de protocole pour composant matériel IP réutilisable pour un système sur puce, qui puisse être utilisé dans des circuits de type asynchrone. Pour atteindre les objectifs mentionnés ci-dessus, la présente invention concerne un procédé de protocole pour composant matériel IP réutilisable pour un dispositif de système sur puce, agencé pour décrire le comportement d'un matériel par l'intermédiaire d'une fonction logicielle, ce procédé comprenant: (A) une étape consistant à déterminer miner si des paramètres sont nécessaires, correspondant à une étape consistant à déterminer si le matériel IP demande des paramètres, et si des paramètres sont nécessaires, le passage à l'étape (B), sinon, le passage à l'étape (C), 3o (B) l'entrée d'au moins un paramètre de fonction, correspondant à l'entrée d'au moins un paramètre de fonction dans le matériel IP, (C) l'appel de la fonction logicielle correspondant à l'entrée d'un signal de demande dans le matériel IP, (D) l'attente d'une valeur de retour de la fonction logicielle correspondant à l'entrée d'un signal d'accusé de réception dans le matériel IP, (E) le renvoi de la valeur de retour de la fonction logicielle correspondant à l'émission des données de résultat du matériel IP, et (F) la terminaison de la fonction logicielle correspondant à la réinitialisation ou à l'amorçage du matériel IP. Finalement, la fonction logicielle est utilisée pour créer un langage de description de matériel, et ce langage est utilisé pour créer des composants matériels IP. Le système sur puce est conçu pour au moins un module matériel, et ce module fonctionne de manière asynchrone. La fonction logicielle de la présente invention peut être utilisée pour décrire le comportement du matériel et pour des conceptions de circuits aussi bien synchrones qu'asynchrones pour atteindre les objectifs de la présente invention. s s Avantageusement, le procédé comprend en outre, avant l'étape (A), une étape d'initialisation de matériel pour initialiser le matériel IP. Avantageusement encore, l'étape (B) comprend en outre une entrée d'au moins une donnée de détection qui correspond au paramètre ou aux 20 paramètres de fonction. De préférence dans ce cas, la ou les données de détection sont un nombre complément du paramètre ou des paramètres de fonction. De préférence encore, la donnée ou les données de détection sont utilisées pour détecter si le paramètre ou les paramètres de fonction sont incorrects ou pour détecter si le paramètre ou les paramètres de fonction sont complètement entrés. Avantageusement, l'étape (E) comprend en outre une sortie du matériel IP d'au moins une donnée résultante de détection, la donnée résultante ou les données résultantes de détection correspondant à des données résultantes. De préférence dans ce cas, la donnée résultante ou les données résultantes de détection sont un nombre complément de la donnée résultante ou des données résultantes. De préférence encore, la donnée ou les données résultantes de détection sont utilisées pour détecter si la donnée résultante ou les données résultantes sont incorrectes ou pour détecter si la donnée résultante ou les données résultantes sont complètement entrées. Avantageusement, la fonction logicielle peut être transformée en un langage de description de matériel. io Avantageusement, le dispositif de système sur puce comprend au moins un matériel IP et l'interaction du matériel IP ou de chacun des matériels IP est asynchrone. La figure 1 représente un organigramme logiciel d'un procédé de protocole 15 pour composant matériel IP réutilisable pour un système sur puce selon la présente invention; La figure 2 représente un organigramme de comportement pour composant matériel IP correspondant à la figure 1 et La fig. 3 représente un croquis schématique, sous forme d'un chronogramme, du comportement du composant matériel IP. Le procédé de la présente invention utilise une fonction logicielle pour décrire le comportement du composant matériel IP et appelle le module logiciel pour correspondre à l'exécution du composant IP matériel. En référence à la figure 1, une procédure du procédé de la présente invention comprend: une étape 10 consistant à déterminer si la fonction logicielle a besoin de paramètres; si elle en a besoin, l'étape 12 est exécuté ; sinon, l'étape 14 est exécutée. La fonction logicielle peut être la fonction d'accumulation suivante (1), mais n'est pas limitée à cette fonction: public static int sumTo(int CNT) int SUM O; for(int i = 1; i ≤ CNT; i++) Comme on le sait, lorsqu'un composant matériel IP se réinitialise ou s'amorce, l'étape 30 est toujours exécutée pour initialiser le matériel pour une éventuelle exécution ultérieure. En outre, l'opération matérielle de l'étape 30 est représentée sur la figure 3 sous la forme du flanc montant 50 d'un signal CLR (clear), ce qui signifie que le signal CLR est mis au niveau haut pour éliminer les données éventuelles temporairement mémorisées dans les composants matériels W. L'étape 10 pour la fonction logicielle correspond à l'étape 32 pour le composant matériel IP, l'étape 32 étant exécutée pour déterminer si le composant matériel IP a besoin de paramètres, et s'il en a besoin, l'étape 34 est exécutée pour entrer des données de paramètres, pour correspondre à l'étape 12. Si l'étape 32 détermine qu'il n'est pas requis de composant matériel IP, l'étape 36 est exécutée pour valider un signal de demande, pour correspondre à l'étape 14. L'opération matérielle de l'étape 34 est représentée sur la figure 3 sous la forme du flanc montant 52 des données de paramètres, ce qui signifie qu'un circuit extérieur (le circuit relié au composant matériel IP) entre des données de paramètres (telle que le CNT = 5 mentionné ci-dessus) dans le composant matériel IP. Le circuit 3o extérieur peut aussi recevoir le signal d'accusé de réception des données d'entrée du composant matériel IP. L'étape 14 est exécutée pour appeler la fonction logicielle. Pour la fonction (1), après l'étape 12, le logiciel doit être exécuté. L'étape 14 exécute le code 35 suivant: intSUM=O; for(int i = 1; i ≤ CNT; i++) SUM+ =i; En outre, l'étape 14 correspond à l'étape 36 de la figure 2, qui est exécutée pour valider un signal de demande (REQ). Le signal REQ au niveau haut est entré depuis le circuit extérieur dans le composant matériel IP, et le la composant matériel IP exécute une opération de circuit interne (correspondant à l'étape 14) selon des réglages fonctionnels et le paramètre d'entrée et produit une réponse appropriée (le résultat de sortie de l'étape 14). L'étape 36 est représentée sur la figure 3 sous la forme d'un flanc montant 54, ce qui signifie que le circuit extérieur met le signal REQ au niveau haut, et ensuite, le circuit interne du composant matériel IP commence à fonctionner. L'étape 16 est exécutée pour attendre une valeur de retour de la fonction logicielle. Pour la fonction (1), lorsque le paramètre est fourni (à l'étape 12) et a subi l'exécution (à l'étape 16), la fonction (1) renverra une valeur résultante (ou une valeur de retour). En outre, l'étape 16 correspond à l'étape 38 de la figure 2, qui est exécutée pour attendre un signal d'accusé de réception (ACK). Après que le z composant matériel 1P a exécuté son opération, ou fonctionnement, appropriée, il produit la valeur résultante et l'envoie au circuit extérieur. Le signal ACK est envoyé depuis le composant matériel 1P au circuit extérieur en indiquant que la valeur résultante est en cours de production. Le composant matériel IP est alors prêt à envoyer la valeur résultante au 3o circuit extérieur. L'étape 38 est représentée sur la figure 3 sous la forme du flanc montant 56 du signal ACK; lorsque le matériel IP fait passer le signal ACK d'un niveau bas à un niveau haut, le composant matériel 1P exécute l'opération demandée et envoie la valeur résultat au circuit extérieur. L'étape 18 est exécutée pour renvoyer la valeur de retour de la fonction logicielle. Après que la fonction (1) a fini son opération, la valeur de retour est renvoyée. Comme le paramètre CNT (compte) est 5, la fonction (1) se déroule et il en résulte un paramètre SUM de 15, et la fonction renvoie le paramètre SUM. L'étape 18 correspond à l'étape 40 de la figure 2, qui est exécutée pour émettre les données résultantes. Lorsque le signal REQ et le signal ACK sont mis tous les deux au niveau haut, le composant matériel IP envoie la valeur résultante de l'opération au circuit extérieur, c'est-à-dire émet les données résultantes 15. L'étape 40 est représentée sur la figure 3 sous la forme du flanc montant 58 des données de résultat, qui indique l'émission des données de résultat 15. ]. o L'étape 20 est exécutée pour mettre fin à la fonction logicielle. Après avoir renvoyée la valeur de retour, la fonction (1) a terminé sa tâche et peut être de nouveau appelée. L'étape 20 correspond à l'étape 42 représentée sur la figure 2, qui est exécutée pour réinitialiser le matériel. Après réception des données résultantes, le circuit extérieur met le signal REQ au niveau bas, de sorte que le composant IP peut effacer les données temporaires mémorisées et est prêt pour le prochain appel. L'étape 42 est représentée sur la figure 3 sous la forme du flanc descendant 60 du signal REQ. Lorsque le signal REQ est au niveau bas, le composant matériel IP cesse d'émettre les données résultantes et élimine toutes les données résultantes qu'il contient, comme indiqué par un flanc descendant 62 d'un signal de données représenté sur la figure 3. Lorsque le signal ACK est au niveau bas, qui indique que les données résultantes ont été complètement éliminées, comme indiqué par le flanc descendant 64 du signal ACK représenté sur la figure 3, le composant matériel 1P est prêt pour une opération ultérieure. En outre, lors de l'entrée du paramètre et de l'émission des données résultantes, une représentation de données à double contrôle est utilisée 3o pour assurer que les procédures d'entrée-sortie ont été accomplies, ainsi que l'exécution d'un moyen de détection d'erreurs. Comme à l'étape 34, lors de l'entrée des données de paramètre, des données de paramètre de détection d'achèvement ou de détection d'erreurs (CDED) sont aussi introduites en même temps par exemple par une technique de complément (aussi utilisée à l'étape 40) qui détermine si la somme des données de paramètre et des données de paramètre CDED est égale à 1. Cependant, beaucoup d'autres procédés de détection d'erreurs peuvent aussi être utilisés. Lorsque les données de paramètre sont introduites sous la forme CNT = 5, le paramètre CDED est entré sous la forme CNT' = -6, et son exécution matérielle est représentée sur la figure 3 sous la forme du flanc montant 53 des données de paramètre CDED; lorsque les données de résultat sont émises sous la forme SUM = 15, les données du paramètre de détection/après détection sont émises sous la forme SUM' = -16, et leur exécution matérielle est représentée sur la figure 3 sous la forme d'un flanc montant 59 des données du paramètre CDED. Par conséquent, la réalisation I o correcte de la transmission de données est bien assurée. La fonction logicielle de la présente forme de réalisation peut être utilisée pour indiquer la qualité de fonctionnement ou l'opération du composant matériel IP; et la fonction logicielle peut être appelée de manière répétée, ce qui signifie que le composant matériel IP peut répéter l'opération. Ainsi, la fonction logicielle peut être transformée en une structure matérielle pratique. Par exemple, la fonction logicielle peut être transformée en un langage bien connu de description matérielle de circuits intégrés ultra-rapides (VHDL: Very high speed integrated circuits Hardware Description Langage), et le VHDL est ensuite transformé en une structure matérielle pratique. Autrement dit, la fonction logicielle peut décrire la qualité de fonctionnement du matériel. En outre, lorsque le système sur puce est conçu de façon à avoir plusieurs fonctions logicielles, comme le composant matériel IP correspondant à la fonction logicielle est réalisé selon les étapes mentionnés ci-dessus et sans rapport avec la fréquence d'horloge, les différents composants matériels IP peuvent avoir des fréquences d'horloge différentes. Par conséquent, le composant matériel IP peut fonctionner correctement dans des réalisations de système sur puce aussi bien synchrones qu'asynchrones. 3o 2876472 REVENDICATIONS 1. Procédé de protocole pour composant matériel IP réutilisable pour un dispositif de système sur puce, agencé pour décrire le comportement d'un matériel par l'intermédiaire d'une fonction logicielle, ce procédé comprenant: (A) une étape consistant à déterminer si des paramètres sont nécessaires, correspondant à une étape consistant à déterminer si le matériel IP demande des paramètres, et si des paramètres sont nécessaires, le passage à l'étape (B), sinon, le passage à l'étape (C), (B) l'entrée d'au moins un paramètre de fonction, correspondant à l'entrée d'au moins un paramètre de fonction dans le matériel IP, (C) l'appel de la fonction logicielle correspondant à l'entrée d'un signal de demande dans le matériel IP, (D) l'attente d'une valeur de retour de la fonction logicielle correspondant à l'entrée d'un signal d'accusé de réception dans le matériel IP, (E) le renvoi de la valeur de retour de la fonction logicielle correspondant à l'émission des données de résultat du matériel IP, et (F) la terminaison de la fonction logicielle correspondant à réinitialisation ou à l'amorçage du matériel IP. 2. Procédé selon la revendication 1, comprenant en outre, avant l'étape (A), une étape d'initialisation de matériel pour initialiser le matériel IP. 3. Procédé selon la revendication 1, dans lequel l'étape (B) comprend en outre une entrée d'au moins une donnée de détection qui correspond au paramètre ou aux paramètres de fonction. 4. Procédé selon la revendication 3, dans lequel la ou les données de o détection sont un nombre complément du paramètre ou des paramètres de fonction. 5. Procédé selon la revendication 4, dans lequel la donnée ou les données de détection sont utilisées pour détecter si le paramètre ou les paramètres de fonction sont incorrects ou pour détecter si le paramètre ou les paramètres de fonction sont complètement entrés. 6. Procédé selon la revendication 1, dans lequel l'étape (E) comprend en outre une sortie du matériel IP d'au moins une donnée résultante de détection, la donnée résultante ou les données résultantes de détection correspondant à des données résultantes. 7. Procédé selon la revendication 6, dans lequel la donnée résultante ou les données résultantes de détection sont un nombre complément de la donnée résultante ou des données résultantes. 8. Procédé selon la revendication 7, dans lequel la donnée résultante ou les données résultantes de détection sont utilisées pour détecter si la donnée résultante ou les données résultantes sont incorrectes ou pour détecter si la donnée résultante ou les données résultantes sont complètement entrées. 9. Procédé selon la revendication 1, dans lequel la fonction logicielle peut être transformée en un langage de description de matériel. 10. Procédé selon la revendication 1, dans lequel le dispositif de système 20 sur puce comprend au moins un matériel IP, et l'interaction du matériel IP ou de chacun des matériels IP est asynchrone.