generic mux su DĖL

F

fran6

Guest
Labas,
Norėčiau pastatyti de Multiplexer kurių skaičius ūkyje gali būti nustatoma pagal parametrus arba apibrėžia.Man įdomu, jei tuos 2 gabalus verilog kodas gamina pačius rezultatus, mano FPGA:
su:
Kodas

"apibrėžti NB_WB_DEVICES 3

viela wb_ack_i;

Viela [ `NB_WB_DEVICES-1: 0] wb_ack_i_mux;

 
Visų pirma, kodas 1 nėra MUX, o kelių įėjimo ir vartų.

MUX turės įvesties ir išvesties skaičių, plius selektoriaus (kuri pasirinkti, kurį iš įvesties važiuoja į produkciją).Pavyzdžiui, yra 4-į-1, mux, kurie 4 įėjimai, 1 išėjimas, 2 ir pasirinkite eilutes (tai gali trukti nuo 00, 01, 10 ar 11 ir pasirinkti, kuris važiuoja į pirkimo produkcijos vertė).

2. kodo fragmentą negali sintetinti nes už linijos nėra synthesizable.Kaip jau parašyta kitoje temoje:

-----

Yra klaida, kad daugelis žmonių, kai pradeda programą FPGA, ypač jei tie žmonės, anksčiau užprogramuotas struktūrizuoti kalbos kaip "C".

Turite galvoti, visoje savo dizainą, kad jūs įgyvendinimo aparatūros funkcijas, o ne nuoseklusis programa.Turite nepamiršti, kad viskas vyksta lygiagrečiai.Pavyzdžiui, jūs negalite sintetina už linijos.Ciklas yra nuoseklus dalykas.Tai gerai modeliuoti (testbenching) tik.Taigi, kurti kažką panašaus, kad darbo už kilpos, turite sintetina skaitiklis, ir daryti skirtingus dalykus, priklausomai nuo produkcijos.Counter tapo vienu subjektu, ir veiksmai (loginiai blokai), priklausomai nuo skaitiklio išėjimo iš kito subjekto.

-----

Čia, jei norite sukurti kelių įėjimo ir vartų, kurių plotis parameterizable, kaip tai padaryti būtų

"apibrėžti NB_WB_DEVICES 3
viela wb_ack_i;
Viela [ `NB_WB_DEVICES-1: 0] wb_ack_i_mux;

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

Pastaba vamzdis pobūdis ('|', ARBA) prieš pirmiau linija wb_ack_i_mux.

Viengubas vamzdis simbolis '|' nustatytas iki identifikatorius bit-to-bit ar tai reiškia, kad ji imsis visų wb_ack_i_mux [ `NB_WB_DEVICES-1 bitai: 0] ir ar ji togetter, kurioje 1-bit rezultatas.

 
Turiu nesutikti su Ciklas nėra synthesisable.Aš ką antrasis suteikia, nes suteikia pareiškimą su .... problemaDėl pareiškimo verilog gali būti naudojama tik viduje inital / visada ...ir paskirti negali būti naudojamas vidinis inital / visada.priskirti nuolatinis paskyrimas!
Antrasis kodo fragmentą duos klaida net modeliavimas.Prašome perrašyti savo kodą ...Jūs galite padaryti Jūsų kodas dirbti, bet kai remontuoti yra requried...

 
labas,
Ačiū už jūsų atsakymus.
Šis sprendimai:
Kodas

priskirti wb_ack_i = | wb_ack_i_mux [ `NB_WB_DEVICES-1: 0];
 
Ciklas nėra sintetinti.
bet semiconductorman papasakojo ..Taip jis turi būti viduje procesas ar visada pareiškimą verilog.
Coz aš naudoju Ciklas projektavimo FIR filtrą, ir taip jis dirba labai gerai ........

 
Žinau, kad sintetina per "kurti" blokas (Verilog 2001).Norėdami pašalinti procedūrines blokas, ji gali priklausyti nuo sintezatoriaus.

 
Big boy wrote:

Žinau, kad sintetina per "kurti" blokas (Verilog 2001).
Norėdami pašalinti procedūrines blokas, ji gali priklausyti nuo sintezatoriaus.
 
Verilog 2.001 pridėti naujų funkcijų aikštelė.Aš irgi dar pradžioje DTL kalba, ir nustatė, kad Verilog atrodė, kad dėl apribojimų, daug dėl to VHDL, bet Verilog 2001, Verilog yra daug subrendusių, uždarymo daug spragų, kurias jis dingo nuo VHDL.

Pažvelkite http://www.sutherland-hdl.com/papers/2000-HDLCon-paper_Verilog-2000.pdf AA labai gera santrauka Kas naujo Verilog 2001.

 

Welcome to EDABoard.com

Sponsor

Back
Top