Kako uspostaviti kontinuirani izlaz pomak REG preko VHDL?

D

dudleyzty

Guest
Neki primjeri pokazuju da su podaci opterećenja treba clock ciklusu, ali mi treba jedan koji ima kontinuirani izlaz.Pls pomoć mene!thx

 
Niste sigurni da li je točno razumjeli Vaše pitanje.

Želite li stalno feed izlaz na nešto?Ako je tako, možete poslati na izlaz gdje god želite, nakon sat rubu je pomaknuo podataka je prisutan cijelo vrijeme na registraciju ouput.Možete poslati ga na neku drugu flip-neuspjeh, ili možete napraviti continuous zadatku, tako da je izlaz ući u neke logike izražavanja (ex: or'd ili xor'd ili poslati na LUT ili ...).

Ako meen da vaš registrirati opterećenje ulaznih treba Gated umjesto clocked, tako da kada se "Omogući" opterećenje, izlazni pratiti ulaz, i onda kada je "Omogući 'je de-konstatirano je registrirati se na svaki pomak podataka sat EDGE, Otkrio sam ovaj primjer (VHDL Verilog i):

Code:VHDL ŠifraSlijedeći je VHDL kôd za 8-bitni pomak lijevo registrirati s pozitivnim naprednoj sat, nesinkroni paralelno opterećenje, serijski, serijski i van.library IEEE;

koristiti ieee.std_logic_1164.all;entitet je pomak

port (C, SI, ALOAD: in std_logic;

D: u std_logic_vector (7 downto 0);

SO: out std_logic);

kraju smjene;

architecture of archi pomak je

signal tmp: std_logic_vector (7 downto 0);

započeti

proces (C, ALOAD, D)

započeti

if (ALOAD ='1 ') onda

tmp = D;

elsif (C'event i C ='1 ') onda

tmp = tmp (6 downto 0) & SI;

kraj ako;

kraju procesa;

SO = tmp (7);

kraj archi;Verilog ŠifraSlijedeći je Verilog kôd za 8-bitni pomak lijevo registrirati s pozitivnim naprednoj sat, nesinkroni paralelno opterećenje, serijski, serijski i van.modul pomak (C, ALOAD, SI, D, PA);

ulaz C, SI, ALOAD;

input [7:0] D;

output SO;

reg [7:0] tmp;Uvijek @ (posedge C ili posedge ALOAD)

započeti

if (ALOAD)

tmp = D;

drugi

započeti

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

kraj

kraj

dodijeliti SO = tmp [7];

endmodule

 
Bok,

Valjda ste mislili nesinkroni logici.

Ako je Vaš postupak je listenning na sat rubu je pozvao
synchrounous proces.sve će biti samo zadaci
ako se izvode provjereni situacijama i
sat je ispravan ruba.

U slučaju da se proces je bez takta signala i zadaci
a <= b; će se obaviti odmah.Dovoljno je i, ili, xor kombinacija.
Ali se carefull!

Ponekad je potrebno provesti nesinkroni logika
za kašnjenje u kritične reakcije.Ali, to nije dobar dizajn praksi.
Signal može biti brže, ali vaš signali mogu imati nenaumljen
države za kratko vrijeme.Svaki element kao i, ili, ne ..ima
različitih kašnjenje.Uvijek postoji put kroz
logika koja je brže od druge.Tako se na prijelaz iz jednog
definirane države u drugu vaš signal može proći zabranjen
država.

Zato se uvijek trebali koristiti clocked proces.nada pomaže,

aOxOmOx.

 
Gore navedeni primjer je uzeo Xilinx primjera (ne sjećam točno koja URL).

Ovaj koristiti 2 sinkrona izjavu, ali sintetizirati kao sinkroni generator takta, s nesinkroni opterećenja.To je zapravo sintesajzer stvar ...

To je isto kao i pisanja izvještaja sa 'sat' i 'vratiti'.Na primjer (u Verilog, ne znam o VHDL ...), za sync registar, sa async reset, pisanja
Uvijek @ (posedge sat ili posedge reset) ...

To konačno sintetizirao kao nesinkroni reset iako je pisano izjavi da rade synchronously sa rubova.To je ista stvar sa primjer ...

 

Welcome to EDABoard.com

Sponsor

Back
Top