Cross klok domein

E

EDA_hg81

Guest
In mijn ontwerp, is een lokale klok gegenereerd door een klok divider, die eruit ziet als volgt:

Quote:

proces (iARM7_CLK)

beginnen

if (rising_edge (iARM7_CLK)) dan

spiclkcon <= spiclkcon 1;

if (spiclkcon = spiclk_gen) dan

spiclkcon <= x "00";

spiclk <= niet spiclk;

elsif (spiclkcon = x "32" en spiclk = '0 ') then

..
Controleer de gegevens van ARM7 KLOK domein
 
whato je moet doen is blijven met je, laten we noemen het systeemklok, en uw verdeeld klok te gebruiken als klok te maken.

indien risinge_edge (sys_clk) dan

indien divide_clk = '1 'dan
(
Leg je logica hier;

)

uw uitgangen zijn nu afgestemd op de systeemklok.
betalen Attentio uw uitgangen aan uw domein zijn nu lijn te brengen met sys_clk, en niet divide_clk.dus je moet ze verschuiven.

 
het is niet echt CDC omdat je met slechts een klok te verdeeld klok te produceren, zowel van die klokken zullen worden in dezelfde Phace.

CDC betekent wanneer je domein kruising tussen twee klokken en er is geen enkele relatie tussen deze klokken

 
Code:

if (rising_edge (iARM7_CLK)) dan

spiclkcon <= spiclkcon 1;

if (spiclkcon = spiclk_gen) dan

spiclkcon <= x "00";

spiclk <= niet spiclk;

elsif (spiclkcon = x "05" en spiclk = '0 ') then

geval readstatus is

wanneer x "00" =>

if (iSD_BUF (7) = '1 ') then

commando <= command09;

readstatus <= readstatus 1;

elsif (iSD_BUF (6) = '1 ') then

commando <= command09;

readstatus <= readstatus 1;

end if;
 
ziet er over het recht, maar ik kreeg te horen dat je voor, moet u apart uw processen, maken meer readble code, en ook compilier baan eenvoudig.Ook wanneer u uw timing rapport te lezen, maakt het gemakkelijk om te analyseren wanneer u meer gestructureerde code

goede gebrek

 

Welcome to EDABoard.com

Sponsor

Back
Top