Forum Discussion
Scaling core clock of 100MHz to 23MHz & 20MHz
Hello All,
I am using Altera Stratix II for my project. I have generated a PLL in LVDs mode(for a deserialization factor of 10 and date rates is 1000Mbps). The two available clock sources on the board are 100MHz and 62.5MHz. I need to generate 23MHz and 20MHz MHz clocks for a module in my project. When I try to generate a PLL in LVDs mode in Mega Core Wizard, by default it selects a FAST PLL and the minimum output frequency is 33.3333MHz. Can I use any other logic and generate a 23MHz and 20MHz clock from 100MHz core clock. Can any one of you suggest a solution to this problem. Many thanks in advance,34 Replies
- Altera_Forum
Honored Contributor
Ohh is it. I am not using any statemachine, is this state machine also a part of Megacore or ?
I dint enable rx_outclock port, should i enable it in Megacore. If possible could u please send that state machine program to me? Can i check this in ModelSim too. I mean the behaviour of DPA block. Reg sa - Altera_Forum
Honored Contributor
Yes, the "rollover point" or rx_cda_max constant apparently doesn't affect the initial cda position. The position is advanced by pulsing rx_channel_data_align. I'm using a state machine clocked with DESER slow clock (rx_outclock) to operate the cda logic, so i get pulses one rx_outclock in width. After a applying a pulse, you have to wait for the delay change to propagate through DESER until the new phase is visible at the output.
- Altera_Forum
Honored Contributor
Hi,
The document is not clearly explaining how to use Data Realignment Circutry inorder to align the word boandry. There is no change if in the word boundary when i change the programmable bit rollover point(1 to 11 bit-times). Do u know how to introduce a pulse to the "rx_channel_data_align" input port reg sa - Altera_Forum
Honored Contributor
Hi,
The document is not clearly explaining how to use Data Realignment Circutry inorder to align the word boandry. There is no change if in the word boundary when i change the programmable bit rollover point(1 to 11 bit-times). Do u know how to introduce a pulse to the "rx_channel_data_align" input port reg sa - Altera_Forum
Honored Contributor
hi after a long time sry was busy with some other work :(
I have gone through that document. It is given that using "rx_channel_data_align" one can insert bit latency into the serial data. I have tried for different bit insertions in Megacore but there is no change in the word alignment. Do u have any idea how to use this "rx_channel_data_align" input port such that the word alignment is effected? - Altera_Forum
Honored Contributor
If I rember right, I found all necessary information in the alt_lvds Megafunction user manual. Some reference designs are also available from Altera website, but I'm not sure if they include the DPA/CDA train logic.
- Altera_Forum
Honored Contributor
Thanku. Ya! I think i need some kind of training pattern. Do u have any documents (pdf or so) related to this issue i mean how to train a DPA.
- Altera_Forum
Honored Contributor
Using the DPA block without a train pattern may cause problems in some cases, I think.
- During DPA calibration time (when rx_dpll_hold[] is deasserted), the input stream must be assured to have edges for bit phase alignment. - Depending on the initial phase, DPA calibration may shift the word alignment by one bit, possibly different for multiple channels. So I think, the receiver should be operated either with DPA enabled and word realignment (CDA) utilizing a train pattern or with fixed phase. If other users see a meaningful application for DPA without CDA and a train pattern, I'm interested to learn about. An application with fixed clock to data skew (e.g. onboard wiring) should be basically able to work without DPA and CDA. If you are already using an external PLL, you should be able to adjust slow and fast clock phases empirically to achieve correct alignment. Shifting both clocks by the same amount is identical to modifying INCLOCK_DATA_ALIGNMENT of an LVDS internal PLL. The available increment is 1/8 of bit duration. You can evaluate at which phase the alignment is advancing one bit and then shift the clocks 180° to center alignment. Then the slow clock can be shifted by full bit clock intervalls to achieve the correct word alignment. A negative shift is also possible. A special point is, that CDA must not allowed to shift across a word boundary in multiple channel transmission. This may happen, if the initial phase (after CDA reset) is near to correct alignment and a negative shift would be needed for some channels. - Altera_Forum
Honored Contributor
Thanku. Ya I am using a DPA block and an external PLL(in LVDS mode). The slow clock is phaseshifter with the input clock by 4.5deg and Serial clock at data rate by 45deg respectively. I am completly new to this DPA. Can i know, whether the data alignment is possible without using a training patern or the otherway arroung could u please tell me what acctually u ment by
"If your application has stable LVDS data phase and executing a train phase is unsuitable, then you can adjust the phase manually. An adjustment beyond a bit time duration can be achieved with an external PLL. Alternatively, the channel alignment input could be used to shift the data by a fixed number of bits and the 360° inclk adjustment can center the bit sampling to input data." reg sa - Altera_Forum
Honored Contributor
I haven't been using Stratix II respectively Arria GX LVDS receiver without DPA and word alignment, so I'm not sure about the initial inclk to data alignment. But it seems, as it has a built-in slowclock phase shift. The results are not as expected with the word boundary aligned to inclk rising edge.
The disadvantage with DPA and data realignment is the need to coordinate train pattern send time (and some additional design complexity). Your test data would be e. g. suited as train pattern. After DPA reset, first step is adjustment of bit phase by DPA. With usual binary data, the DPA circuitry must be disabled in normal operation, cause no edges are present in case of all zero or all one data. During word alignment step, the channel alignment input is pulsed until the train pattern matches. If your application has stable LVDS data phase and executing a train phase is unsuitable, then you can adjust the phase manually. An adjustment beyond a bit time duration can be achieved with an external PLL. Alternatively, the channel alignment input could be used to shift the data by a fixed number of bits and the 360° inclk adjustment can center the bit sampling to input data.