En passant d'une valeur hexadécimale dans un module de Verilog
J'ai créé un module qui accepte un fil [ 4 : 0 ] comme entrée, et je suis en utilisant plusieurs instances de ce module, mais j'obtiens "erreur de Syntaxe dans le port d'instance de l'expression(s)" chaque fois que je passe une valeur qui contient Un-F.
E. g.
key_schedule i1(09); //works
key_schedule i1(0A); //doesn't work
key_schedule i1(15); //works
key_schedule i1(1D); //doesn't work
Si quelqu'un sait quel est le problème, je vous en serais reconnaissant de leur aide.
Aussi, qu'advient-il si je suis de passage, par exemple, une valeur de "C", mais j'ai aussi un fils appelé C?
Merci.
OriginalL'auteur Hardell | 2013-01-07
Vous devez vous connecter pour publier un commentaire.
Verilog traite toutes nues littéraux numériques comme séparateur décimal.
A
etD
ne sont pas des valeurs décimales.Pour hexadécimal littéraux, vous devez spécifier le type de littéral à l'aide de
'h
:Reportez-vous à la norme IEEE Std (1800-2009, par exemple), dans la section "Numéros".
Mise à JOUR: Le code suivant compile pour moi sans erreurs sur 2 différents simulateurs (Incisive et VCS):
Si vous rencontrez toujours un problème, montrer votre nouveau code.
Il y a le " là, c'est juste difficile à voir juste après "
iverilog
semble cassé. Comme une solution de rechange, utiliser la virgule26
au lieu de hex'h1A
. Ou créer un nouveauwire
danstb
, puis connecter le câble à lakey_schedule
instance.Je vous remercie. Ça fonctionne très bien maintenant.
OriginalL'auteur toolic
De http://www.asic-world.com/verilog/syntax1.html#Integer_Numbers
Verilog HDL permet à un nombre entier d'être spécifié dans le
Syntaxe:
Exemple:
OriginalL'auteur dwikle