Realizarea unei Surse de Semnal Digital Programabila

Extras din proiect Cum descarc?

Cerinte minimale:
o Generatorul de semnal va produce un semnal digital la unul din porturile FPGA. Semnalul generat va putea fi vizualizat cu osciloscopul sau analizorul logic.
o Sistemul va permite controlarea prin butoane si switch-uri a frecventei si factorului de umplere ale semnalului generat. Domeniul frecventei este 1Hz-10KHz iar domeniul factorului de umplere este 5%-95%.
o Sistem sincron, frecventa 50MHz.
o Reset asincron.
Prezentarea modulelor:
module debounce(signalinput,signaldebounced,clk,reset);
parameter width=10;
input signalinput;
input clk;
input reset;
output signaldebounced;
reg[width-1: 0] register;
always @(posedge clk or posedge reset)
if (reset) register<= 'b0;
else register <= {signalinput ,register[width-1:1]};
wire zero,unu;
assign zero = &register[width-1:0];
assign unu = ~|register[width-1:0];
reg signaldebounced;
always @(posedge clk or posedge reset)
begin
if (reset) signaldebounced <= 1'b0;
else if (unu) signaldebounced <= 1'b1;
else if (zero) signaldebounced <= 1'b0;
end
endmodule
module edgeDetectorModule ( 
clk,
reset,
signalIn,
signalPosEdgeOut,
signalNegEdgeOut,
signalEdgesOut
);
input clk;
input reset;
input signalIn;
output signalPosEdgeOut;
output signalNegEdgeOut;
output signalEdgesOut;
wire signalPosEdgeOut;
wire signalNegEdgeOut;
wire signalEdgesOut;
reg q;
always @( posedge clk or posedge reset )
begin
if ( reset ) q <= 1'b0;
else q <= signalIn;
end
assign signalPosEdgeOut = signalIn & !q;
assign signalNegEdgeOut = !signalIn & q;
assign signalEdgesOut = signalPosEdgeOut | signalNegEdgeOut;
endmodule
module frequencyGeneratorModule ( 
clk,
reset,
fEnable,
inc,
dec,
fact,
frequencyOut,
frequencyChangedOut
);
parameter length = 14;
input clk;
input reset;
input fEnable;
input inc;
input dec;
input [1:0] fact;
output[length-1:0] frequencyOut;
output frequencyChangedOut;
reg[length-1:0] frequencyOut;
wire frequencyChanged;
reg frequencyChangedOut;
wire finc;
wire fdec;
always @( posedge clk or posedge reset )
begin
if ( reset ) frequencyOut <= 1;
else
if ( fEnable )
if ( finc ) 
case ( fact )
0: frequencyOut <= frequencyOut + 'd1 ;
1: frequencyOut <= frequencyOut + 'd10 ;
2: frequencyOut <= frequencyOut + 'd100;
3: frequencyOut <= frequencyOut + 'd1000;
default : frequencyOut <= frequencyOut;
endcase
else
if ( fdec )
case ( fact )
0: frequencyOut <= frequencyOut - 'd1 ;
1: frequencyOut <= frequencyOut - 'd10 ;
2: frequencyOut <= frequencyOut - 'd100;
3: frequencyOut <= frequencyOut - 'd1000;
default : frequencyOut <= frequencyOut;
endcase
end


Fisiere in arhiva (1):

  • Realizarea unei Surse de Semnal Digital Programabila.docx

Imagini din acest proiect Cum descarc?

Banii inapoi garantat!

Plateste in siguranta cu cardul bancar si beneficiezi de garantia 200% din partea Proiecte.ro.


Descarca aceast proiect cu doar 5 €

Simplu si rapid in doar 2 pasi: completezi adresa de email si platesti.

1. Numele, Prenumele si adresa de email:

Pe adresa de email specificata vei primi link-ul de descarcare, nr. comenzii si factura (la plata cu cardul). Daca nu gasesti email-ul, verifica si directoarele spam, junk sau toate mesajele.

2. Alege modalitatea de plata preferata:



* Pretul este fara TVA.


Hopa sus!