Orologio contatore.

S

suddy72

Guest
Hi guys,

Io sono la progettazione di un MUX, voglio che la linea di scegliere di essere impostata a 1 su ogni fronte di salita e 0 su ogni fronte di discesa, in questo modo il mux sta cambiando due volte ogni ciclo di clock.Mi sembra di aver problemi a far presente al lavoro, uno qualsiasi semplice codice che farà quello che ho bisogno.

grazie

stuart

 
Ciao.

Che ne dite qualcosa di simile

timer entità è
porto (clk0, clk2x, a, b in std_logic; sel, f out std_logic);
fine del timer;

primaria architettura del timer è
std_logic segnale di bias;
iniziare
if (clk2x'event e clk2x = '1 ') then
sel <= not (SEL) o pregiudizi;
end if;
if (clk0'event e clk0 = '1 'then
bias <= sel;
end if;
if (sel = '0 ') then
f <= a;
elsif
f <= b;
end if
fine primarioAggiunto dopo 4 ore e 10 minuti:eek:, ancora meglio,

timer entità è
port (clk, a, b: in std_logic; SEL, f: out std_logic);
fine del timer;

primaria architettura del timer è
Q1 segnale, Q2: std_logic;
iniziare
processo
iniziare
attendere CLK'event
se clk = '1 'then
Q1 <= non Q1
altro
Q2 <= Q1
end if
sel <= Q2 xor Q1;
if (sel = '0 ') then
f <= a;
elsif
f <= b;
end if
fine processo
fine primario

 
Salve,

Basta controllare questa logica ..Modulo contatore (reset,orologio,
mux0_in,mux1_in,
mux_out)

ingresso di reset;ingresso di clock;
Ingresso mux0_in;Ingresso mux1_in;
uscita mux_out;
filo mux_en;filo mux_out;
reg pos_flop;reg neg_flop;
assegnare mux_en = pos_flop ^ neg_flop;assegnare mux_out = (~ mex_en)?
mux0_in: mux1_in;
/ / reset dovrebbe essere rilasciato nel periodo di bassa del clocksempre @ (posedge clock o reset negedge)if (! reset)pos_flop <= 1'b0;altro<pos_flop = ~ pos_flop;

sempre @ (negedge clock o reset negedge)if (! reset)neg_flop <= 1'0;altro<neg_flop = ~ neg_flop;
endmodule
 
Salire e scendere bordo di che cosa?L'orologio?

Come su come utilizzare una normale 2-to-1 MUX, con la linea selezionare collegato l'orologio?

Che cosa significa "orologio banco" in linea argomento?

 
echo47 ha scritto:Come su come utilizzare una normale 2-to-1 MUX, con la linea selezionare collegato l'orologio?

 
Salve,

Non è raccomandato l'uso di orologio / reset in logiche combinatorie

 
kanagavel_docs ha scritto:

Non è raccomandato l'uso di orologio / reset in logiche combinatorie
 
Hi MGT78000
La ragione è che in circuiti combinatori, orologio Thje può ottenere GATED, quindi potrebbe portare a skew e problemi correlati

 
Sì, è possibile collegare un orologio a un ingresso MUX selezionare, ma ISE probabilmente vi darà un avvertimento che l'orologio è l'alimentazione nella logica asincrona.Che di solito è prassi cattiva progettazione in un FPGA, a causa della maggiore difficoltà nel raggiungimento tempi affidabile, ma io non conosco il tuo disegno o lo scopo della vostra mux.

 
può farlo in questo modo?

Ingresso di abilitazione; <- optional
uscita MUX_SEL;
reg mux_sel_1, mux_sel_2;

assegnare MUX_SEL = (mux_sel_1 &! mux_sel_2) | (! mux_sel_1 & mux_sel_2);

sempre @ (CLK posedge o RESET_N negedge) begin
if (! RESET_N)
mux_sel_1 <= 1'b0;
else (ENABLE)
mux_sel_1 <=! mux_sel_1;
fine

sempre @ (CLK negedge o RESET_N negedge) begin
if (! RESET_N)
mux_sel_2 <= 1'b0;
else (ENABLE)
mux_sel_2 <=! mux_sel_2;
fine

se del caso, u avrà un MUX_SEL toggling alla stessa velocità, come l'orologio.
questo sarà un disegno di synchornous il controllo dei registri di uscita, piuttosto che l'orologio.
il segnale ENABLE è opzionale ..solo per indicare quando iniziare a commutare l'ingresso MUX selezionare.

Credo che questo non avrà alcun problema né ASIC FPGA.se ogni questione fatemelo sapere che sono un principiante come bene.

 
Salve

E le cuciture che si sta facendo DDR Thing.
La biblioteca FPGA dovrebbe includere alcuni già pronti IP che facilita il lavoro.
In Vertix4 ci sono un sacco di tali strutture.
Si dovrebbe verificare l'utente FPGA manuale o guida libreria per vedere se supporta tale IP

Salam
Hossam Alzomor
www (.) IG (.) org

 

Welcome to EDABoard.com

Sponsor

Back
Top