Ako vytvoriť trvalý výkon posunu REG cez VHDL?

D

dudleyzty

Guest
Niektoré príklady ukazujú, že dáta načítať potrebuje čas cyklu, ale potrebujem jeden, ktorý má trvalý výkon.Pls pomôžte mi!thx

 
Nie ste si istí, jestli jsem presne rozumiem vašej otázke.

Prajete si neustále krmivo výstup na niečo?Ak áno, môžete poslať na výstupe, kedykoľvek budete chcieť, po hodinovej hrany sa presunul dáta je prítomný po celú dobu v registri ouput.Môžete odoslať ju do iného flip-flop, alebo si môžete urobiť kontinuálnej úlohy tak, aby výstup vstúpiť v niektorých logických výrazu (ex: or'd alebo xor'd alebo poslaní do LUT alebo ...).

Ak meen, že vaša registra zaťaženia vstupnou bránou je potrebné namiesto stopovania tak, že keď 'enable' zaťaženie výstupu monitorovať výskyt, a potom, keď 'enable' je de-tvrdil, register presun dát na každej hodiny hrana, našiel som tento príklad (VHDL a Verilog):

Kód:VHDL kódToto je VHDL kódu na 8-bit-posun doľava registri s pozitívny-hrana hodín, asynchrónne paralelné zaťaženia, sériové, a sériové von.Knižnica IEEE;

použitie ieee.std_logic_1164.all;jednotka smeny je

port (C, SI, ALOAD: in std_logic;

D: v std_logic_vector (7 downto 0);

SO: mimo std_logic);

koniec smeny;

architektúra archi posunu je

signál tmp: std_logic_vector (7 downto 0);

začať

Proces (C, ALOAD, D)

začať

if (ALOAD ='1 '), potom

tmp = D;

elsif (C'event a C ='1 '), potom

tmp = tmp (6 downto 0) & SI;

end if;

konci procesu;

SO = tmp (7);

koniec archi;Verilog KódToto je Verilog kódu na 8-bit-posun doľava registra s pozitívny-hrana hodín, asynchrónne paralelné zaťaženia, sériové, a sériové von.Modul posun (C, ALOAD, SI, D, SO);

vchod C, SI, ALOAD;

Vstupné [7:0] D;

výstup SO;

reg [7:0], tmp;Vždy @ (posedge C alebo posedge ALOAD)

začať

if (ALOAD)

tmp = D;

iné

začať

tmp = tmp ([6:0], SI);

koniec

koniec

priradi SO = tmp [7];

endmodule

 
Nazdar,

Asi máte na mysli asynchronní logiky.

Ak váš proces listenning do hodiny okraj je to nazýva
synchrounous procesu.všetky úlohy, bude iba
vykonáva-li skontrolovať podmienky sú pravdivé a
Hodiny má správne okraja.

V prípade, že proces je bez hodinové signálu úloh
a <= b; bude vykonaná okamžite.Stačí a alebo, xor kombinácií.
Ale byť opatrný!

Niekedy je potrebné vykonávať asynchronní logiky
latencia pre kritické reakcie.Ale to nie je dobrý dizajn praxi.
Signál by mohol byť rýchlejší, ale vaša signály môžu mať nezamýšľané
uvádza na krátky čas.Každý prvok, ako je alebo nie je ..má
množenie rôznych meškanie.Vždy existuje cesta cez
logické, že je rýchlejšie ako druhá.Takže o prechode z jedného
definovaný stav k inému váš signál môže prechádzať zakázané
stavov.

To
je dôvod, prečo by ste mali používať vždy stopovanie procesu.dúfam, že pomôže,

aOxOmOx.

 
Vyššie uvedený príklad je vzal zo Xilinx príklady (já nevím presne, aké URL).

Toto zhodnotenie 2 synchrónnu vyhlásenie, ale syntetizovať ako synchrónna hodiny, s asynchronním zaťaženia.To je naozaj syntezátorový vec ...

Je
to ako písať rovnaké vyhlásenie s' hodiny 'a' reset '.Napríklad (v Verilog,
nevím o VHDL ...), pre synchronizáciu registra s async reset, čo píšete
Vždy @ (posedge hodiny alebo posedge reset) ...

To nakoniec syntetizovať ako asynchrónna reset to i napriek tomu, že vyhlásenie je písomné práce synchrónne s hranami.Je
to rovnaká vec sa napríklad ...

 

Welcome to EDABoard.com

Sponsor

Back
Top