[VHDL] tako rising_edge (c) & falling_edge (c) v enem proc

V

vvsvv

Guest
lahko uporabim oba rising_edge (CLK) in falling_edge (CLK) v samo enem procesu?
ali v eni arhitekturi?

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

thx;

izvorno kodo, lahko prav tako:

uporaba ieee.std_logic_1164.all;
......
CLK: std_logic;
......
če rising_edge (CLK) potem
out_a <= '1 ';
elsif falling_edge (CLK) potem
out_b <= '1 ';
end if;
.......
Smem to narediti?
Če bi lahko, lahko te oznake sinteza?
hvala še enkrat!

<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" border="0" />
 
To lahko storite, vendar sinteza bo odvisno od vaše arhitekture.Če je vaš PLD arhitektura ne podpira koklja na obeh robovih, boste našli različne izvedbe (z verjetno ni želenega rezultata)

chears

 
Nekateri sintezi orodja more obravnavati

Code:proces (CLK)

začeti

če rising_edge (CLK) potem

signal1 <=...

end if;če falling_edge (CLK) potem

signal2 <=...

end if;

koncu postopka;

 
bruhanje wrote:Če želite, da imajo podoben učinek, uporabite kodo zgoraj in dodate multipleksor na uro:Code:sig <= signal1 ko CLK = '1 'else signal2;

 
XILINX rekli, da vam FF naprav Virtex so Double Rate, to verjetno pomeni, da jih je mogoče uporabljati na obeh rob.
Ne morem razumeti, kako za delo MUX rob.
G.

 
če želite, da ga uporabljate v enem postopku je problem in ste izgubili enega cikla
zato je bolje jih uporabiti pri dveh sepeared procesu.

 
tlp71 (at) hotmail.com wrote:

XILINX rekli, da vam FF naprav Virtex so Double Rate, to verjetno pomeni, da jih je mogoče uporabljati na obeh rob.

Ne morem razumeti, kako za delo MUX rob.

G.
 
Oprostite, ampak y delati u da je to potrebno?u pogon 2 različni signali ...u lahko postavite jih v ločene postopke kot običajno.Izpustili reset:

process1 (CLK)
začeti
če rising_edge (CLK) potem
signal1 <=...
end if;
koncu postopka;

process2 (CLK)
začeti
če falling_edge (CLK) potem
signal2 <=...
end if;
koncu postopka;

Ni problema s sintezo.

 
Kot splošno pravilo, prekla s SINGLE uro robu v celotni design.To bo yor življenje helluva enostavna.

Delay (odloženo zaradi tehnologija)

 
Je odvisna zgolj orodje Sinteza, vendar imam raje, če vi dont CLK in ne CLK signal "ta signal razpusti, če arhitektura FPGA FF podporo navzdol CLK input«, v coolrunner Xilinx II CPLD lahko uporabite rising_edge falling_edge elsif, lahko celo uporabo.
- Coolrunner II
če clk'event nato
<= b;
end if;
- Dela z XST
koda zgoraj bo do coolrunner II makro, če ste uporabili XST, bo ta koda posodobitve "" vsak narašča in sodi roba "prave dvojno hitrostjo prenosa podatkov".
Tega ni mogoče preprosto izvajati na FPGA, to lahko uporabite MUX, ki VoMiT obveščeni o vas.vendar pa bo vaša zamuda charactersitic zelo slabo tudi, če si to ti ne more zaupati rezultatov analize časa, glavni razlog, tukaj je, ker ste se uporablja za ure do MUX "note ura je povezana z nizko-skew poti in boš imel da je spin off na CLB ", vendar to ni edini način, da lahko izboljšate z nekaterimi drugimi tehnikami.

Če imate ločeno signalov "one rising_edge posodobitev, medtem ko drugi falling_edge posodobljen" poskušali prijaviti clkb znak, da je "ne CLK ', tj
clkb <= ni CLK;
v vašem arhitektura "večkombinacijske del" in potem lahko razglasi clkb v senstivity seznam in delati karkoli hočeš, če je vaš cilj je FPGA "note DO NOT TRY če rising_edge (CLK), sledi elsif (risng_edge (clkb), to je stiski ".

pisanje kode na ta način boste prihranili trud prehoda med "rising_edge in falling_edge", ki vodi do boljše tehnike kodiranja in lahko sledi svojo kodo precej lažje na ta način ", je vedno vaši izbiri."
Imam preizkušen to tehniko v LS in synplfy ter to obdelan ", tj inverter razpusti, da negativni rob naraščajoče FF"
Lahko poskusite DLL / diklorometan CLK180 za zamenjavo, ne CLK, ampak verjemi mi boste lahko dobili boljši rezultat, če ste se iz FF rob "usmerjevalne zamude, tudi z globalnimi blažilniki, vendar ne vedno."

Samo res, dvojno hitrostjo prenosa podatkov FF v Xilinx FPGA so FDDRSE v Virtex-II "in višji" ne obstaja v CLBs obstaja samo na IOB Seveda in to omejuje njeno uporabo tako, da ne more biti infered, tako mora biti ustvarjanje primera.Menim, da je bil razvit poenostaviti vmesnik RAM DDR in časovni okvir za izpolnjevanje zahtev za 400 Mb / s kontrolorju na 200 MHz ure ", oziroma tako, da sem se za", menim, da altra ima nekaj enakovrednih FFS, vendar sem storil ne raba to.

Thats vsi ljudje

 
Hi u lahko uporabite dve robu občutljive izjav v enoten proces theoratically ...ampak kolikor vem, svoj ne synthesizabkle sploh ...
Tudi če bo u uporabo dveh postopkov za dva roba občutljive izjave ..Nato poskusite wtrite polno kodo, v vsakem izkazu ...uporaba surecore ...sicer tudi po zbiranju in synthesiz ..ur programa Navada dela pravilno v realnem času ....

jay

 

Welcome to EDABoard.com

Sponsor

Back
Top