INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
"bridge~core" => "cpu" => "fbus~xchg", "cmem" => "Direct", "cio" => "Direct", "fbus~p" => "Direct", "fbus~xchg" => { FBUSA => 'Direct', , FBUS => 'fbus~xchg', }, "fbus~p" => "fbus~xchg" => { FBUSA => 'Direct', FBUS => 'fbus~xchg', }, "cpu" => "fbus~xchg", "fbus~p" => 'Direct', "cio" => { "cio~p" => 'Direct' }, "cmem" => { "cmem~p" => 'Direct'}, "fbus~xchg" => { "fbus~xchg" => { FBUS => 'Direct'}, "cpu" => { "fbus~xchg" => { FBUS => 'Direct' }, ); ####### %HwifAlternateMap = ( ### %SysWrapMap = ( bridge => [ BRIDGE~sys, sys~bridge ], bridge~core => [ BRIDGE~sys, sys~bridge ], ) ; ####### %SysConnectMap = 3 de A2 ( ###### "$GlobSysInst" => ###### "MatchExpr" => "($GlobSysInst)\$", "ExtrExpr" => "($GlobSysInst)\$", #### "SYS~CON" => {"ReqModule" => {"$GlobSysInstModule" => "$GlobSysInstModuleSrc",
"Connect" => "Global" = > [\&subst~infix, ["(.*)", ""], ], }, #### $GlobSysInst ###### "BRIDGE~sys" => ###### { "MatchExpr" => nA (? :BRIDGE~[0-3]~) (sys) \$", "ExtrExpr" => "^BRIDGE~([0-3])~sys\$", #### "SYS~CON" => "ReqModule" => {"sys~bridge" => "sys~bridge.v", }, "Connect" =>{ BRIDGE~a => [\&subst~infix, ["(.*)", ""],], }, "SysConn" => { BRIDGE~a => [\&getGlobSysInst, "E", [\&subst~infix, ["sys~(.*)", ""],],], "SysWrap" => { BRIDGE~a => [\&subst~infix, ["syswrap~(.*)", ""],], #### # Construction des noms des Blocs Systèmes dédiés à un Composant et # vérification de la connectivité des interfaces entre les Blocs Système et #leurs Composants dédiés "getOwnDest" => \&getSpecSysOwn, "genVloglnstParameter" => \&gen~sys~VlogInstParameter, \\ #######################-##### }, # Variables faisant référence à un code générique commun pour l'ensemble des projets }, #### BRIDGE~sys ) ; ### %SysSpecMap 4 de A2 ( ###### "FBUS~XCHG" => ###### { "MatchExpr" => I1A(?:.*~) (FBUS~XCHG) \$11,
"ExtrExpr" => "^(?:.*) ([0-3])~FBUS~XCHG\$", "BaselidExpr" => "^.*(FBUS~XCHG)\$", ### "IND~CON" => { "ReqModule" => {"fbus~xchg" => "fbus~xchg.v", "Port" => { "FBUS" => ["FBUS~xchg", "fbus~xchg", 0], "FBUSA" = > ["FBUS~xchg", "fbus~xchg", 1], }, "Connect" => { "FBUS" => [\&subst~infix, ["(XX.*)", ""],], "FBUSA" => [\&subst~infix, ["in(.*)", "aa~con"], ["out(.*)", "bb~con"],], "SelfConnect" => { "FBUS" => [\&subst~infix, ["(XX.*)", ""],], "FBUSA" => [\&subst~infix, ["out(.*) ", "aa~con"], ["in(.*)", "bb~con"],], }, "genOwn" => \&genOwnSysSpecMapGeneric, "getOwnDest" => \&getSpecSysOwn, "CfgCpp" => [Fbus~Xchg, [ ['Own', [fbus~xchg, IND~CON, ], ['None'], ], ], ] , }, ###### 'FBUS~PROBE' => ###### { "MatchExpr" => "(.*)(FBUS~PROBE)\$", "ExtrExpr" => ".*?([0-3]).*FBUS~PROBE\$", "BaselidExpr" => "^(.*)~FBUS~PROBE\$", #### "PROBE" => { "ReqModule" => {"fbus probe" => "fbus~probe.v" "Connect" => {"FBUS" = > [\&subst~infix, ["(. *)", ""1 J ], ii ii "Port" => { "FBUS" => ["FBUS~probe", "fbus~probe", 0], "SysConn" => { "FBUS~probe" => \@std~glob~con,
"genVlogInstParameter" => \&gen~sys~VlogInstParameter~Generic, }.
) ; ### %indTypeCftpMap = 5 de A2 '#############' "FBUS~xchg" => "FBUS~XCHG", "fbus~xchg" => "FBUS~XCHG", ); ### @sysGlobConnTab référencé par %SysPinConst ( [ sys~RESET , RESET ], [ sys~POWER~GOOD , POWER~GOOD ], [ sys~CLK , CLK~33MHz ], [ sys~CLK~2X , CLK~66MHz ] , ) ; ### %SysPinConst = 6 de A2 ( "$GlobSysInst" => \@sysGlobConnTab, CPU~sys => \@sysGlobConnTab, CMEM~sys => \@sysGlobConnTab, CIO~sys => \@sysGlobConnTab, BRIDGE~sys => \@sysGlobConnTab, BRIDGE => \@sysGlobConnTab, ); ##### sub gen~sys~VlogInstParameter 7 de A2 my($inst, $cat, $Cftp, $i~map) = @~; ($Cftp, $i~map) = getCftp($inst) unless $Cftp and $i~map; my($extr) = $ {$i~map}{$Cftp}{'ExtrExpr'}; $inst = # $extr ; my ($Module~num, $Node~num, $SubNode~num) = ($1, $2, $3, $4) ; my ($parent~inst, $parent~cftp, $parent~map) = &get~parent~inst($inst); my($num~add) = 0; $num~add = $ {$parent~map}{$parent~cftp}{'NumAdd'}, $Node~num += $num~add if existe $ {$parent~map}{$parent~cftp}{'NumAdd'}; my($parameter) =
foreach $pp ($Module~num, $Node~num, $SubNode~num) { $parameter ", " if $parameter ne "" and $pp = # /\d+/; $parameter .= $pp if $pp = # /\d+/; my($conn~mask) = &get~parent-inst-connected mask($inst); if ($conn~mask ne ""){ $parameter ", " if $parameter ne ""; $parameter .= $conn~mask; } if ($parameter) return "#($parameter)"; } return "" ####### 1; ### makes perl happy
ANNEXE A3 - Procédures de connexion des Composants #! /usr/triton/bin/perl ######################################################### ###################### # # Copyright (c) 2000 BULL - Worldwide Information Systems # All rights reserved # # Module name : patent~connect~defs.pm # Author Andrzej Wozniak # # Description . connection génération # # Revision : $Revision : 1. 1 $ # # Rev Date . $Date: 2001-01-29 20 :19:10+01 $ # ######################################################### ###################### #### sub genDest 1 de A3 my($inst, $extExpr, $srclfc) = @~; my(%dest) = (); my($dft) ; unless ( $inst = # /$extExpr/) { &dprint-config error("genDest", "number extracting expression \"$extExpr\" failed for $inst\n"); return (\%dest, $dft); while( $inst = # /$extExpr/ ) { $nl = $1; $n2 = $2; $n3 = $3; my($nb) = 0; if($inst =- $ InstNameModuleMap {CPU} {"MatchExpr"}) ## CPU %dest = ("BRIDGE~$nl" => "FBUS"), $dft = "BRIDGE", last if $srcIfc = # /^FBUS [A-Za-z0-9~]*/ ; goto label error; } if($inst =- $InstNameModuleMap {BRIDGE} {"MatchExpr11 }){ ## BRIDGE
%dest = ( "CPU~$nl" => "FBUS"), $dft = "CPU", last if $srcIfc = # /FBUS/; %dest = ( "CMEM~$nl" => "CMEM"), $dft = "CMEM", last if $srcIfc =- /CMEM/; %dest = ( "CIO~$nl" => "CIO"), $dft = "CIO", last if $srcIfc = # /CIO/; goto label~error; if($inst =- $ InstNameModuleMap {CMEM} {"MatchExpr"}) ## CMEM %dest = ("BRIDGE~$nl" => "CMEM"), $dft = "BRIDGE", last if $srclfc = # /CMEM$/; goto label~error; if($inst =- $ InstNameModuleMap {CIO} {"MatchExpr"}) ## CIO %dest = ("BRIDGE~$n1" => "CIO"), $dft = "BRIDGE", last if $srcIfc =- /CIO$/; goto label~error; &dprint-config~error("genDest", "unknown instance $inst"); last; label error: &dprint~config error("genDest", "unknown interface $srclfc for instance $inst"); last; } return (\%dest, $dft); ####### 1; ### makes perl happy
ANNEXE A4 - Code de génération du fichier Verilog Top. v de connexion des Composants #! /usr/triton/bin/perl ######################################################### ###################### # # Copyright (c) 2000 BULL - Worldwide Information Systems # Ail rights reserved # # Module name : patent~verilog~defs.pm # Author Andrzej Wozniak # # Description . VERILOG strings and defs # for génération of top.v source code # # Revision : $Revision : 1. 4 $ # # Rev Date . $Date: 2001-02-19 19:55:41+01 $ # ######################################################### ###################### @verilog~src~path = ( "$db~dir/patent/sim/models", ); $top~verilog~header "END~OF~TOP~HEADER" ///////////////////////////////////////////////////////// ///////////// // FILE \"%s\" GENERATED by A. W. PERL SCRIPT FROM \"%s\" file ///////////////////////////////////////////////////////// /////////////\n\n ////// "timescale 100ps END OF TOP HEADER $top~verilog~preamble <<"END~OF~TOP~PREAMBLE" module top (); wire POWER~GOOD; wire RESET;
recherche (address, parent~address, child~address, host, domain, parent~domain, child domain, title, description, language, content~type, modification~date, docsize, occurrence, word, frequent~word, description~word, key~word, title~word, séquence, ...).
Chaque attribut peut être utilisé comme argument des fonctions de comptage ( count() ) ou d'inversion ( reverse() ). Dans ce cas, l'attribut doit comporter le préfixe count~ ou reverse~ .
La requête envoyée par cette balise peut contenir des contraintes, des clauses de groupe, et des clauses de tri, fournies dans les attributs correspondants.
Une contrainte de requête peut être crée dynamiquement, comme une variable de chaîne XVRML, ou peut être définie comme une clause statique. Si le premier caractère de l'attribut CONSTR est le symbole @ , la contrainte est traitée comme une contrainte dynamique, sinon elle est traitée comme une contrainte statique. La contrainte dynamique doit contenir seulement une référence à la chaîne où la variable (@var~name), où la contrainte est stockée.
Si une telle contrainte est trouvée, elle est évaluée et la chaîne résultante traitée comme une contrainte statique.
La grammaire de la contrainte est par exemple la suivante : constraint dynamic constraint static constraint dynamic constraint '@' Name static-constraint single~constraint compound~constraint compound~constraint ::= '{' static~constraint S (logic~operator S static~constraint)* '}' logic~~operator ::= 'AND' 'OR' single~constraint '{' (in~constraint level~constraint) '}' in constraint ::= constr attribute S 'IN' S constr val list constr attribute ::= " ' " attribute name "'" attribute~name 'address' 'parent~address' 'child~address' 'host' 'domain' 'parent~domain' 'child domain' 'title' | 'description' 'language' 'content~type' 'modification - date' 'docsize' 'word~type' 1 'word' 'frequent~word' j 'description~word' ! 'key word' 'title~word''séquence' constr~val~list '(' X-VRML~variable comma~list ') ' comma~list : : = "'" Name ( ' , ' "'" Name "'")* level~constraint 'domain' S 'LEVEL' S ( Number X- VRML~numeric~variable ) ('CASCADE')? X-VRML~string~variable '@' Name X-VRML numeric variable '$' Name NameChar ::= Letter Digit '-' '~' CombiningChar Extender Name (Letter '~' ' :') (NameChar) * Number (Digit) * Digit ('. ' Digit (Digit)*)*
S ::= (#x20 #x9 #xD #xA)+ Une clause de groupe est utilisée pour grouper les résultats en fonction d'un attribut spécifique.
Une clause de tri est utilisée pour trier les résultats en fonction d'un attribut spécifique. En outre, dans cette clause, les fonctions de comptage ( count() ) et d'inversion ( reverse() ) peuvent être utilisées. Pour trier les résultats dans l'ordre croissant ou décroissant, le suffixe ":asc" ou ":dese" respectivement peut être utilisé. Le résultat est trié dans l'ordre croissant si aucun préfixe n'est utilisé.
Le résultat d'une requête est mise dans une variable visible par les autres balises de modèle d'interface (par exemple la balise ).
La balise peut être utilisée comme une balise vide (dans ce cas l'attribut ITERATE doit être mis à faux ) ou comme une balise non-vide (dans ce cas l'attribut ITERATE doit être mis à vrai ). Dans le second cas, la balise itère son contenu autant de fois que le résultat comporte de lignes retournées en réponse à la requête. Pendant chaque itération, les variables X-VRML se voient donné des noms identiques à ceux des attributs retrouvés, et des valeurs égales aux valeurs des attributs de la ligne courante. La variable dont le nom est défini dans l'attribut COUNTER est également incrémentée.
Attributs : ATTRS - une liste d'attributs, séparés par des virgules, devant être retrouvés dans la base de données du moteur de recherche CONSTR - une contrainte de requête, GROUP - une clause de groupe, ORDER - une clause de tri, COUNTER - nom de la variable de compteur incrémentée à chaque itération RESULT - nom de la variable où le pointeur vers le résultat est stocké ITERATE - états, si la balise doit analyser (parse) son contenu ATTRS CDATA #REQUIRED CONSTR CDATA #REQUIRED GROUP CDATA #REQUIRED ORDER CDATA #REQUIRED COUNTER CDATA #REQUIRED RESULT CDATA #REQUIRED ITERATE CDATA #REQUIRED > <SM~QUERY ATTRS="'address'" CONSTR="{{'word' IN (@text)}AND {'demain' LEVEL 2 CASCADE}}"
GROUP="'host'" ORDER="'address:desc'" COUNTER="'cntr'" RESULT="'newRes'" ITERATE="FALSE"/> Nom de balise (tag) : SMJTERATE Classe Java : Vis3D~Query.SM~ITERATE Description : Cette balise permet d'utiliser un résultat donné collecté par la balise et d'itérer ce résultat un nombre déterminé de fois. Du fait que la balise possède le même jeu d'attributs que la balise , les mêmes variables sont utilisées pendant chaque itération.
Attributs : RESULT - nom de la variable où le résultat établi par la balise est stocké, COUNTER - nom de la variable incrémentée à chaque itération.
RESULT CDATA #REQUIRED COUNTER CDATA #REQUIRED > $maxdocsize"> 11) Balises de traitement de modèle d'interface Nom de balise (tag) : model~param~mapping Classe Java : Tags. EMPTY Description : Cette balise est utilisée pour implémenter un mappage entre les attributs du résultat d'une recherche et les paramètres d'un modèle de scène virtuelle 3D. Elle n'est pas analysée (parsed) par l'interpréteur X-VRML.
Attributs : aucun <!ATTRLIST parameter name CDATA #REQUIRED
values CDATA #REQUIRED default CDATA #REQUIRED desc CDATA #REQUIRED options CDATA #REQUIRED > Nom de balise (tag) : model~interface Classe Java : Tags. EMPTY Description : Cette balise est utilisée pour implémentée l'interface utilisateur 2D. Elle n'est pas analysée (parsed) par l'interpréteur X-VRML.
R13 représente un atome d'hydrogène,un atome d'halogène tel que le fluor, un radical alkyle en C,-C4, monohydroxyalkyle en C1-C4, alcoxy(C1- C4)alkyle(Cl-C4) ou aminoalkyle en C,-C4, ou hydroxyalkyl(C1- C4)aminoalkyle en C1-C4.
R14 représente un atome d'hydrogène ou un atome d'halogène tel que le fluor, un radical alkyle en C1-C4, monohydroxyalkyle en C1-C4, polyhydroxyalkyle en C2-C4, aminoalkyle en C1-C4, cyanoalkyle en C,-C4 ou alcoxy(C1-C4)alkyle(C1-C4).
Parmi les dérivés pyrimidiniques, on peut plus particulièrement citer les composés décrits par exemple dans les brevets allemand DE 2 359 399 ou japonais JP 88-169 571 et JP 91-10659 ou demandes de brevet WO 96/15765, comme la 2,4,5,6-tétra-aminopyrimidine, la 4-hydroxy-2,5,6-triaminopyrimidine, la 2-hydroxy-4,5,6triaminopyrimidine, la 2,4-dihydroxy-5,6-diaminopyrimidine, la 2,5,6-triaminopyrimidine, et les dérivés pyrazolo-pyrimidiniques tels ceux mentionnés dans la demande de brevet FR-A-2 750 048 et parmi lesquels on peut citer la pyrazolo-[l,5-a]-pyrimidine-3,7-diamine ; la 2,5-diméthyl- pyrazolo-[l,5-a]-pyrimidine-3,7-diamine ; la pyrazolo-[l,5-a]-pyrimidine- 3,5-diamine ; la 2,7 -diméthyl-pyrazolo- [ 1, 5- a] -pyrimi dine-3,5 -diamine ; le 3-amino-pyrazolo-[1,5-a]-pyrimidin-7-ol ; le 3-amino-pyrazolo-[l,5-a]- pyrimidin-5-ol ; le 2-(3-amino pyrazolo-[1,5-a]-pyrimidin-7-ylamino)- éthanol ; le 2-(7-amino-pyrazolo-[1,5-a]-pyrimidin-3-ylamino)-éthanol; le 2-[(3-amino-pyrazolo[l,5-a]pyrimidin-7-yl)-(2-hydroxy-éthyl)-amino]- éthanol ; le 2-[(7-amino-pyrazolo[l,5-a]pyrimidin-3-yl)-(2-hydroxy-éthyl)- amino]-éthanol; la 5,6-diméthyl-pyrazolo-[l,5-a]-pyrimidine-3,7-diamine; la 2,6-diméthyl-pyrazolo-[l,5-a]-pyrimidine-3,7-diamine; la 2, 5, N7, N7- tetraméthyl-pyrazolo-[l,5-a]-pyrimidine-3,7-diamine; la 3-amino-5-méthyl- 7-imidazolylpropylamino-pyrazolo-[l,5-a]-pyrimidine; et leurs sels d'addition et leurs formes tautomères, lorsqu'il existe un équilibre tautomérique et leurs sels d'addition avec un acide.
rCllll11 les uenves ylClGVlljuc, uu peut yius P(\lL1vU.UvlvillvlH citer les composés décrits dans les brevets DE 3 843 892, DE 4 133 957 et demandes de brevet WO 94/08969, WO 94/08970, FR-A-2 733 749 et DE 195 43 988 comme le 4,5-diamino-1-méthyl-pyrazole, le 3,4-diaminopyrazole, le 4,5-diamino-l-(4'-chlorobenzyl)-pyrazole, le 4,5-diamino 1,3diméthyl-pyrazole, le 4,5-diamino-3-méthyl-1-phényl-pyrazole, le 4,5diamino 1-méthyl-3-phényl-pyrazole, le 4-amino-1,3-diméthyl-5-hydrazinopyrazole, le 1-benzyl-4,5-diamino-3-méthyl-pyrazole, le 4,5-diamino-3- tert-butyl-1-méthyl-pyrazole, le 4,5-diamino-I-tert-butyl-3-méthyl- pyrazole, le 4,5-diamino-l-(P-hydroxyéthyl)-3-méthyl pyrazole, le 4,5- diamino-l-((3-hydroxyéthyl)-pyrazole, le 4,5-diamino-l-éthyl-3-méthyl- pyrazole, le 4,5-diamino-1-éthyl-3-(4'-méthoxyphényl)-pyrazole, le 4,5diamino-1-éthyl-3-hydroxyméthyl-pyrazole, le 4,5-diamino-3hydroxyméthyl-1-méthyl-pyrazole, le 4,5-diamino-3-hydroxyméthyl-1- isopropyl-pyrazole, le 4,5-diamino-3-méthyl-1-isopropyl-pyrazole, le 4- amino-5-(2'-aminoéthyl)amino-l,3-diméthyl-pyrazole, le 3,4,5-triaminopyrazole, le 1-méthyl-3,4,5-triamino-pyrazole, le 3,5-diamino-1-méthyl-4- méthylamino-pyrazole, le 3,5-diamino-4-(|3-hydroxyéthyl)arnino-l-méthyl- pyrazole, et leurs sels d'addition avec un acide.
Les coupleurs utilisables dans le procédé de teinture selon l'invention sont ceux classiquement utilisés dans les compositions de teinture d'oxydation, c'est-à-dire les méta-aminophénols, les métaphénylènediamines, les métadiphénols, les naphtols et les coupleurs hétérocycliques tels que par exemple les dérivés indoliques, les dérivés indoliniques, le sésamol et ses dérivés, les dérivés pyridiniques, les dérivés
pyrazolotriazoles, les pyrazolones, les indazoles, les benzimidazoles, les benzothiazoles, les benzoxazoles, les 1,3-benzodioxoles, les quinolines et leurs sels d'addition avec un acide.
Ces coupleurs sont plus particulièrement choisis parmi le 2,4diamino l-(-hydroxyéthyloxy)-benzène, le 2-méthyl-5-amino-phénol, le 5-N-((3-hydroxyéthyl)amino-2-méthyl-phénol, le 3-amino-phénol, le 1,3-dihydroxy-benzène, le 1,3-dihydroxy-2-méthyl-benzène, le 4-chloro- 1,3-dihydroxy-benzène, le . 2-amino 4-(ss-hydroxyéthylamino)-1-méthoxybenzène, le 1,3-diamino-benzène, le 1,3-bis-(2,4-diaminophénoxy)propane, le sésamol, le 1-amino-2-méthoxy-4,5-méthylènedioxy benzène, l'a-naphtol, le 6-hydroxy-indole, le 4-hydroxy-indole, le 4-hydroxy-Nméthyl indole, la 6-hydroxy-indoline, la 2,6-dihydroxy-4-méthyl-pyridine, le 1-H-3-méthyl-pyrazole-5-one, le 1-phényl-3-méthyl-pyrazole-5-one, la 2-amino-3-hydroxypyridine, le 3,6-diméthyl-pyrazolo-[3,2-c]-l,2,4- triazole, le 2,6-diméthyl-pyrazolo-[1,5-b]-1,2,4-triazole et leurs sels d'addition avec un acide.
Le bloc global Clock assure la distribution des signaux d'horloge et signaux système globalement pour l'ensemble des Composants Le système Configurateur s'appuie sur la description des Interfaces de type HDL des Composants. Des interfaces simples, écrites en langage VERILOG, sont proposées ci-dessous à titre d'illustration pour chacun des Composants. Le système Configurateur n'analyse que cette partie des fichiers source contenus dans la bibliothèque des fichiers sources de type HDL (BFSHDL). Ils s'inscrivent dans une méthodologie de prise en compte progressive de variantes de modèles au fur et à mesure de leur disponibilité.
La description de type HDL des Interfaces qui suit est réduite à ce qui est nécessaire à l'illustration des possibilités et du fonctionnement du configurateur. Dans une situation réelle sont inclues les descriptions des comportements comme dans le cas du modèle de l'horloge (module CLOCK).
La description est la suivante :
CPU : a) Le modèle DUT de composant CPU (figure 7a) présente un port FBUS de connexion avec le BRIDGE ainsi qu'un ensemble de signaux Système définis ci-après. module cpu ( XXadr~dat, XXreq, XXack, // clk, reset, powergood ); inout [63:0] XXadr~dat; inout [3: 0] XXreq; inout [3: 0] XXack; input clk; input reset; input powergood; endmodule b) Le modèle XACTOR (figure 7b) consiste en un modèle abstrait C++ dont l'instance de type HDL est constituée de celle du Port nommé fbus~p. Dans cet exemple, il est supposé que le Port FBUS présente une variante nommée FBUSA dans laquelle les signaux bidirectionnels adr~dat ont été éclatés en paires de signaux unidirectionnels in (inXXadr~dat) et out (outXXadr~dat). module fbus~p ( inXXadr~dat, outXXadr~dat, inXXreq, outXXreq, inXXack, outXXack, Il cl k, reset, powergood
); input [63:0] inXXadr~dat; output [63:0] outXXadr~dat; input [3: 0] inXXreq; output [3:0] outXXreq; input [3: 0] inXXack; output [3: 0] outXXack; input clk; input reset; input powergood; endmodule c) Le modèle MONITOR du composant CPU est un modèle composé permettant le Monitoring de l'interface FBUS. Dans le cas où il n'existe pas d'adaptateur de port fbus~p dans la configuration, une sonde contenant l'instance fbus~probe sera générée (figure 7c). module fbus~probe ( XXadr~dat, XXreq, XXack, // clk, reset, powergood ); input [63:0] XXadr~dat; input [3: 0] XXreq; input [3: 0] XXack; input clk; input reset; input powergood; endmodule - Bloc intermédiaires d'adaptation FBUS :
Ces blocs réalisent l'adaptation d'interface au niveau FBUS dans le cas où la correspondance point à point des signaux est impossible. Le port FBUSA est la variante de FBUS dans laquelle les signaux bidirectionnels ont été éclatés en paires de signaux unidirectionnels d'entrée (in) et de sortie (out).
Le modèle fbus~xchg (figure 7d) réalise l'adaptation entre l'interface FBUS du port fbus~p et celui d'un port FBUSA - la largeur de l'interface peut être paramétrée de façon à rendre compte d'évolutions technologiques possibles. module fbus~xchg ( XXadr~dat, XXreq, XXack, // inXXadr~dat, outXXadr~dat, inXXreq, outXXreq, inXXack, outXXack ); inout [63:0] XXadr~dat; inout [3: 0] XXreq; inout [3: 0] XXack; // input [63:0] inXXadr~dat; output [63:0] outXXadr~dat; input [3: 0] inXXreq; output [3: 0] outXXreq; input [3: 0] inXXack; output [3: 0] outXXack; // model body endmodule BRIDGE : a) Le modèle DUT du composant BRIDGE (figure 7e) présente les trois ports respectifs vers les modèles CPU, MEM et 10 ainsi que les
signaux Système délivrés par le bloc système dédié SYS~BRIDGE et par le bloc global CLOCK. module bridge ( XXadr~dat, XXreq, XXack, YYad r, YYdata, ZZdata, ZZreq, ZZack, YYctrl, clk~2xp, clk~2xn, clkp, clkn, reset, powergood inout [63:0] XXadr~dat; inout [3: 0] XXack; inout [3: 0] XXreq; output [31:0] YYadr; inout [63: 0] YYdata; output [2: 0] YYctrl; inout [15: 0] ZZdata; input [1:0] ZZack ; output [1:0] ZZreq ; input clk~2xp; input clk~2xn; input clkp; input clkn; input reset; input powergood; endmodule b) Le modèle BRIDGE~CORE (figure 7f) est la variante DUT~CORE du composant BRIDGE présentant une interface FBUSA. Ce modèle traduit la situation où le modèle du contrôleur d'interface FBUS n'est pas disponible.
module bridge~core ( inXXadr~dat, outXXadr~dat, inXXreq, outXXreq, inXXack, outXXack, // YYadr, YYdata, YYctrl, // ZZdata, ZZreq, ZZack, // clk~2xp, clk~2xn, clkp, clkn, reset, powergood ); input [63:0] inXXadr~dat; output [63:0] outXXadr~dat; input [3: 0] inXXreq; output [3: 0] outXXreq; input [3: 0] inXXack; output [3: 0] outXXack; output [31:0] YYadr; inout [63: 0] YYdata; output [2:0] YYctrl; inout [15: 0] ZZdata; input [1:0] ZZack; output [1:0] ZZreq ; input clk~2xp; input clk~2xn; input clkp; input clkn; input reset; input powergood;
endmodule c) Le modèle sys~bridge (figure 7g) est le block système dédié aux signaux Système du modèle Bridge - il est directement alimenté par le bloc CLOCK. module sys~bridge( clk~2xp, clk~2xn, clkp, clkn, reset, powergood, // sys~CLK~2X, sys~CLK, sys~RESET, sys~POWER~GOOD ); output clk~2xp; output clk~2xn; output clkp; output clkn; input sys~CLK~2X; input sys~CLK; input sys~RESET; input sys~POWER~GOOD; output reset; output powergood; clk~2xp = sys~CLK~2X; clk~2xn = -sys~CLK~2X; clkp = sys~CLK; clkn = -sys~CLK; reset = sys~RESET; powergood = sys~POWER~GOOD; endmodule d) Le modèle XACTOR (figure 7h) est un modèle abstrait C++ dont l'instance de type HDL est constituée de celle des différents ports respectivement fbus~p, cmem~p et cio~p vers CPU, MEM et 10.
module cmem~p ( YYadr, YYdata, YYctrl, clk, reset, powergood ); output [31:0] YYadr ; inout [63: 0] YYdata; output [2:0] YYctrl; input clk; input reset; input powergood; endmodule module cio~p ( ZZdata, ZZreq, ZZack, Il clk, reset, powergood ); inout [15: 0] ZZdata; input [1:0] ZZack ; output [1:0] ZZreq ; input clk; input reset; input powergood; endmodule MEMORY : Le modèle DUT du composant MEMORY (figure 7i) présente les ports respectifs vers les modèles BRIDGE et CLOCK. modèle DUT : module cmem ( YYadr, YYdata, YYctrl,
clk, reset, powergood ); input [31:0] YYadr; inout [63:0] YYdata; input [2:0] YYctrl; input clk; input reset; input powergood; endmodule I/O : Le modèle DUT du composant I/O (figure 7j) présente les ports respectifs vers les modèles BRIDGE et CLOCK. modèle DUT : module cio ( ZZdata, ZZreq, ZZack, clk, reset, powergood ); inout [15: 0] ZZdata; output [1:0] ZZack ; input [1:0] ZZreq ; input clk; input reset; input powergood; endmodule Block Système global : Ce modèle (figure 7k) assure la fourniture des signaux Système alimentant les blocs système dédiés à chaque composant. module Clock ( sys~POWER~GOOD,