převod pole na vektor v VHDL

S

shaiko

Guest
Ahoj, Předpokládejme, že máme řadu VHDL prvků "n" a šířky jednotlivých prvků je "k". Jak můžeme převést pole na vektor? Pokud víme, šířku a počet prvků - můžeme použít operátor zřetězení: --------------------------------- -------------------------------------- typ matice je pole (0 až 2) z std_logic_vector ( 7 downto 0), signál concatenated_matrix: std_logic_vector (23 downto 0); concatenated_matrix
 
Lze napsat funkci pro smyčce. Něco takového. for i in 0 až n concatenated_matrix smyčky (k * i + k-1)
 
budete potřebovat funkci. (Nebo počkejte, až dostane VHDL unie typů). Připomínám, že my_array'range vrátí 0,1,2 ,..., N-1 připomenout, že my_array (my_array'low) "Rozsah vrátí K-1 ,..., 2,1,0 a výstup je Velikost (my_array'length * my_array (my_array'low) "Délka-1 downto 0). Nicméně, VHDL vyžaduje funkci vstupní druhů být známý. V důsledku toho může jednu funkci nelze použít pro jakýkoli š / h Combo - pokud máte 8b a 9b pole, byste verzi funkce pro každou z nich, a to i pomocí kódu by jinak mohly být stejné ...
 
Takže ... tento typ kódu nemůže být písemná genericly ve VHDL?

<span style="color: grey;"><span style="font-size: 10px">---------- Příspěvek přidán v 13:42 ------- --- Předchozí příspěvek byl v 12:43 ----------</span></span>
Co následující kód (není ve funkci). za předpokladu, že "hloubku" a "width", jsou osoby generika: zřetězení: for i in 0 do hloubky vytvářet concatenated_matrix ((šířka - 1 + (i * šířka)) downto (i * šířka))
 
Pokud se mi to špatně problém, měl by fungovat podobně jako návrh na vinipal.
Code:
 for i in 0 až n concatenated_matrix smyčky (k * i + k-1 downto k * i)
 
MKO, díky za zmínku, moje chyba. Zapomněl jsem "downto" Část ..
 
Bude nad syntetizovat na kaskádní vektor všech prvků pole?
Ano, to bude v pořádku, ale může to být jednodušší a čistější zabalit jej do funkce spíše než tvořit. výkon
 

Welcome to EDABoard.com

Sponsor

Back
Top