Pour une application que je crée je voudrais utiliser un décodeur qui aide à écrire dans l'un des 42 registres. Afin de prendre en compte tous les registres possibles, j'ai besoin d'une entrée de 6 bits puisque le plafond de lg (42) est 6.Comment concevoir un décodeur qui aura des sorties supplémentaires?
Cependant, cela va créer un décodeur de 6 à 64, me laissant avec 12 sorties supplémentaires que je Je ne sais pas comment gérer. Je sais que dans VHDL Je peux écrire une déclaration de cas pour elle:
case input is
when "000000" => output <= reg0;
when "000001" => output <= reg1;
.
.
.
when others => output <= ???;
end case;
tout Espérons que le reste sera conçu de telle sorte qu'une entrée> 41 ne se produit pas, mais comment le code doit être écrit pour gérer ce cas? Y at-il un moyen de le gérer sans arrêter l'application d'une certaine manière? Ou, en alternative, existe-t-il un moyen d'écrire un décodeur qui n'a que 42 sorties?
J'aime cette idée. A l'origine, la structure était conçue de telle sorte que le décodeur et le registre étaient des composants séparés, et la sortie du décodeur déterminait le registre à lire, mais cela semble un peu plus propre. En ce qui concerne votre commentaire de sortie: le décodeur a été configuré pour avoir une activation où il sortirait tous les 0 si l'activation était faible. Je suppose que je pourrais aussi juste sortir tous les 0 si la valeur est> 41? – AdamMc331
Si je vous comprends bien, je pense que vous pourriez le faire plus facilement en définissant la taille du tableau 'regs' à 64 dans le premier exemple, ou avec' (others => '0') 'dans la seconde. Pour implémenter un 'enable', je pense que les deux méthodes auraient besoin et' if/then/else' pour définir 'output' à tous les zéros. –