Top Module / Module DPLL (SignalIn, SignalOut
Top Module / Module DPLL (SignalIn, SignalOut
/* Top module */
);
// phase comparator
);
/*
.Positive(Positive), .Negative(Negative)
);
*/
.Positive(Positive), .Negative(Negative)
);
.Positive(Positive), .Negative(Negative)
);
Endmodule
FREQDIVIDER.V
input Positive, Negative; // signals Positive, Negative are synchronous with MainClock
parameter DividerLength = 7;
/* frequency 18432kHz */
/* additional divider by 2 used for getting output signal with duty factor of 2 */
begin
DividerCounter <= 0;
if(DividerCounter == 0) FrequencyOut <= ~FrequencyOut; // additional divider by 2 - for producing 50% duty factor of the output signal
end
endmodule
PHASECOMPARATOR.V
/* phase comparator */
begin
end
/* "Lead" signal will be generate in case of output==1 during input rising edge*/
begin
end
endmodule
RANDOMWALKFILTER.V
input MainClock, Lead, Lag; // System Clock and Phase Comparator signals
parameter FilterLength = 8;
parameter FilterResetValue = 4;
/* reversive counter */
begin
FilterCounter <= 0;
else
begin
end
end
begin
end
endmodule
VARIABLERESETRANDOMWALKFILTER.V
input MainClock, Lead, Lag; // System Clock and Phase Comparator signals
parameter N_FilterLength = 8;
parameter N_FilterResetValue = 8;
parameter ResetterCounterLength = 4;
parameter ResetterCounterMaxValue = 3;
/* 16=2_PWR_4 */
parameter ResetterCounterMinValue = 16 - 3;
.Positive(Up), .Negative(Down));
begin
if(Up)
begin
end
else if(Down)
begin
end
ResetterCounter <= 0;
end
always @(1)
begin
case(ResetterCounter)
16 - 3: ResetterValue = 256 - 7;
16 - 2: ResetterValue = 256 - 6;
16 - 1: ResetterValue = 256 - 4;
0: ResetterValue = 0;
1: ResetterValue = 4;
2: ResetterValue = 6;
3: ResetterValue = 7;
default: ResetterValue = 0;
endcase
end
/* "N-RWF" Filter has different reset states */
begin
else
begin
end
end
begin
end
endmodule