multiplexeur générique avec vecteur d'entrée

M

manfer

Guest
Je veux concevoir le multiplexeur prochaine.A génèrent véritablement mux où n représente le nombre de bits de l'entrée de sélection (SEL), tandis que n indique le nombre de bits par entrée.Le circuit a 2 ^ n entrées.

Comment puis-je résoudre ce problème en utilisant une fonction générique

merci pour vos réponses

 
Nieoficjalne żródła sugerowały, że Titan-Z, nowa dwuprocesorowa karta graficzna Nvidii zadebiutuje 29 kwietnia bieżącego roku, a więc w dniu wczorajszym. Tak się jednak nie stało, co natychmiast wywołało falę spekulacji i kolejnych, nieoficjalnych doniesień. Jak wieść niesie, inżynierowie Nvidii po sprawdzeniu wydajności Radeona R9 295X2 doszli do ...

Read more...
 
vérifier la manière dont je l'ai fait:
J'ai également fait une demux de manière similaire et travaillaient tous les deux fins:

-------------------------------------------------- ------------------------
- A.J'ai d'abord générera le Muxess - M = SIZE_OF_MUX_INPUTS-1
- B.i se connecte aux entrées muxes premier - M = SIZE_OF_MUX_INPUTS / 2
- C.i se connecte tous les intrants muxes A, B à ses travaux précédents
- D.de sortie est le produit mux dernier.
-------------------------------------------------- ------------------------
- A.générer le muxes
-------------------------------------------------- ------------------------
L_idx: for i in 0 à SIZE_OF_MUX_INPUTS - 2 génèrent
Mux (i) <= MUX_a (i) A quel autre moment MUX_SELECTOR_en (i) = '1 'Mux_b (i);
fin générer L_idx;
-------------------------------------------------- ------------------------
- B.générer les connexions d'entrée à muxes étage d'entrée
-------------------------------------------------- ------------------------
Li_idx: for i in 0 à SIZE_OF_MUX_INPUTS / 2 - 1 Générer
MUX_SELECTOR_en (i) <= mux_selector (0);
- Mux_a (i) <= mux_input_array (2 * i);
- Mux_b (i) <= mux_input_array (2 * i 1);
Mux_a (SIZE_OF_MUX_INPUTS / 2 - 1-i) <= mux_input_array (2 * i 1);
Mux_b (SIZE_OF_MUX_INPUTS / 2 - 1-i) <= mux_input_array (2 * i);
fin générer Li_idx;
-------------------------------------------------- ------------------------
- C.générer tout le reste de muxes.
-------------------------------------------------- ------------------------
Lo_idx: for i in log2roundup (SIZE_OF_MUX_INPUTS) - 2 downto 0 générer
lj_idx: pour j dans 0 à 2 ** i-1 de générer
MUX_SELECTOR_en (SIZE_OF_MUX_INPUTS - 2 ** (i 1) j) <= mux_selector (log2roundup (SIZE_OF_MUX_INPUTS) - 2-i 1);
Mux_a (SIZE_OF_MUX_INPUTS - 2 ** (i 1) j) <= Mux (2 * j SIZE_OF_MUX_INPUTS - 2 ** (i 2));
Mux_b (SIZE_OF_MUX_INPUTS - 2 ** (i 1) j) <= Mux (2 * j 1 SIZE_OF_MUX_INPUTS - 2 ** (i 2));
fin générer lj_idx;
fin générer Lo_idx;
-------------------------------------------------- ------------------------
- D.produit envoyer à la production
-------------------------------------------------- ------------------------
mux_output <= Mux (SIZE_OF_MUX_INPUTS - 2);

 
HY shawndaking merci pour votre réponse, mais je pense que vous n'avez pas compris ma question.

but not with the function generated
.

Je veux faire un MISE EN ŒUVRE de mux avec un nombre variable d'intrants, mais en utilisant la fonction générique,
mais pas avec la fonction
engendrée.

Si vous avez somethink comme ça, je vais vous remercions de votre réponse

merci

 
le mux est générique en taille et en largeur (c'est à dire qu'il peut multiplexer les autobus):

Il s'agit de la instansiation du code:

composante mux_n_to_1
génériques (
SIZE_OF_MUX_INPUTS: integer: = 16;
SIZE_OF_BUS: integer: = 32
);
port (
mux_input: in std_logic_vector (SIZE_OF_MUX_INPUTS * SIZE_OF_BUS -1 downto 0);
mux_selector: in std_logic_vector (log2roundup (SIZE_OF_MUX_INPUTS) - 1 downto 0);
mux_output: out std_logic_vector (SIZE_OF_BUS -1 downto 0)
);
end component;

m0: mux_n_to_1
generic map (
SIZE_OF_MUX_INPUTS => SIZE_OF_REG_ARRAY,
SIZE_OF_BUS => SIZE_OF_DATA
)
Plan du port (
mux_input => reg_array, -: in std_logic_vector (SIZE_OF_MUX_INPUTS * SIZE_OF_BUS -1 downto 0);
mux_selector => addr, -: in std_logic_vector (log2roundup (SIZE_OF_MUX_INPUTS) - 1 downto 0);
mux_output => DOUT -: out std_logic_vector (SIZE_OF_BUS -1 downto 0)
);

 

Welcome to EDABoard.com

Sponsor

Back
Top