generickej muxovat s PRO

F

fran6

Guest
Dobrý deň,
Chcel by som vybudovať de multiplexer, ktorých počet vstupov môže byť stanovená s parametrami alebo definuje.Zaujímalo by ma, či tie 2 kusy Verilog kód produkuje rovnaké výsledky v mojom FPGA:
s:
Kód:

"Definovať NB_WB_DEVICES 3

drôt wb_ack_i;

drôt [`NB_WB_DEVICES-1: 0] wb_ack_i_mux;

 
Po prvé, kód 1 nie je MUX, ale multi-vstup OR gate.

MUX bude mať niekoľko vstupné a výstupné, plus voliča (ktorý vybrať, ktorý zo vstupného ide na výstup).Príkladom je 4-k-1 MUX, ktoré majú 4 vstupy, 1 výstup, a 2 Vyberte línií (ktoré môžu mať hodnotu 00, 01, 10 alebo 11 a zvoliť, aký prínos ide na výstup).

2. časť kódu nebude syntetizovať, pretože pre sláčiky nie je syntetizovatelné.Ako písal som v inom vlákne:

-----

Tam je chyba, že veľa ľudí robiť, keď začína program pre FPGA, najmä ak títo ľudia predtým naprogramovali štruktúrovaný jazyk ako 'C'.

Musíte myslieť, celej vašej design, že ste si implementáciu hardvérových funkcií, a nie sekvenčné program.Musíte si uvedomiť, že všetko, čo sa stalo v súbežne.Napríklad nie je možné syntetizovať pre slučku.Cyklus for je sekvenčná vec.To je dobré pre simuláciu (testbenching) len.Tak, aby design niečo, čo práce ako pre sláčiky, musíte syntetizovať čeliť, a robiť rôzne veci v závislosti na výstupe.Počítadlo stal jedným subjektom, a akcie (logika bloky) v závislosti na pult výstup je iný subjekt.

-----

Tu, ak chcete design multi-vstup OR gate, s šírkou nastavenie parametrov, tak na to by bolo

"Definovať NB_WB_DEVICES 3
drôt wb_ack_i;
drôt [`NB_WB_DEVICES-1: 0] wb_ack_i_mux;

priradiť wb_ack_i = | wb_ack_i_mux [`NB_WB_DEVICES-1: 0];

Poznámka potrubie charakter ('|', OR) pred wb_ack_i_mux vo vyššie uvedenom linku.

Unární potrubie znak '|' definovaný pred identifikátor je bit-na-bit alebo, čo znamená, že to bude trvať všetky bity v wb_ack_i_mux [`NB_WB_DEVICES-1: 0] a OR je togetter, pričom 1-bit výsledok.

 
Mám nesúhlas s FOR slučky nie je synthesisable.Aj to druhé dáva problém, pretože priradiť vyhlásenie s pre ....Pre výpis v Verilog možno použiť iba vnútri inital / vždy ...a priradiť nemožno použiť vo vnútri inital / vždy.priradiť je priebežné úlohu!
Druhý kus kódu dá chyba aj na simuláciu.Prosím opíšte kód ...Môžete si vytvoriť svoj kód práce, ale niektoré prepracovanie je požadovaná...

 
Dobrý deň,
Vďaka za vaše odpovede.
Toto riešenie:
Kód:

priradiť wb_ack_i = | wb_ack_i_mux [`NB_WB_DEVICES-1: 0];
 
U slučky to syntetizovať.
ale ako semiconductorman povedal ..Áno, je potrebné v rámci procesu alebo vždy vyhlásenie Verilog.
Coz som použil pre slučku design FIR filter a áno, funguje to veľmi jemné ........

 
Viem, že to syntetizovať v 'generovať' blok (Verilog 2001).Pre rámci procesných bloku, môže závisieť na syntezátor.

 
Big Boy Napísal:

Viem, že to syntetizovať v 'generovať' blok (Verilog 2001).
Pre rámci procesných bloku, môže závisieť na syntezátor.
 
Verilog 2001 pridať veľa nových funkcií.Ja som taky ešte začiatok v jazyku HDL, a zistil, že Verilog zdalo, že majú veľa obmedzení v súvislosti so VHDL, ale s Verilog 2001, Verilog je oveľa vyspelejšie, uzavretie veľké medzery, že chýbajúce z VHDL.

Pozrite sa na http://www.sutherland-hdl.com/papers/2000-HDLCon-paper_Verilog-2000.pdf tejto aa veľmi dobré zhrnutie toho, čo je nové v Verilog 2001.

 

Welcome to EDABoard.com

Sponsor

Back
Top