Cum pot genera un impuls cu un timp de = 35 ns

Y

yasser_shoukry

Guest
Am nevoie de un cod de RTL în Verilog sau VHDL pentru a genera un impuls cu un timp de mare = 10 noi?
Cum pot să îndeplinească această constrângere de sincronizare?

Multumesc anticipat
Last edited by yasser_shoukry pe 08 decembrie 2006 15:22, modificat de 1 dată în total

 
Ce frecvenţă este ceasul?
Ce declanşează impulsuri?Este de declanşare sincrone la ceas?
Ce tip de FPGA / CPLD sunt folositi?

O soluţie simplă ar putea fi utilizarea unui ceas 200 MHz, şi numărul de şapte cicluri.

 
I sînt folosire Starter Kit Spartan3, are o construit în 50 de cristal MHz.Acest modul ar trebui să fie declanşată când 1 este scris pentru a controla propriul registruAdăugat după 2 minute:Imi pare rau ca am scris de mare de timp, în primul meu post 35 nsec, în timp ce este corect usec 10

 
Puteţi genera 10us prin numărarea 500 ceasuri de la 50MHz.
Nu înţeleg destul de registru de control, dar poate că puteţi utiliza acest modul.
Dintr-un comentariu din cele două "contează" sarcinile în funcţie de tipul dorit declanşator.
Cod:

modul de top (CLK, in, out); / / EDGE detecta în creştere, de a genera impulsuri de 500 ceas

CLK de intrare, în;

reg [2:0 întârziere] = 0; / / anti-metastability registrul de deplasare

declanşa sârmă întârziere = ~ [2] & întârziere [1]; / / EDGE detecta în creştere

reg [9:0 conta] = 0;

ieşire afară;

atribui out = [numărul 9];mereu @ (posedge CLK) începe

<Întârziere = (întârziere, în);

<Count = declanşa?
-500: Conta?
conta 1: numărul; / / retriggerable

/ / <Count = conta?
conta 1: declanşa?
-500: Conta; / / non-retriggerable

capăt

endmodule
 
Cea mai uşoară metodă este de a utiliza un contor.conta doar pentru a obţine 500clocks declanşa ...Decodeze pentru a scrie 1.

 

Welcome to EDABoard.com

Sponsor

Back
Top