I had overlooked a little detail in my initial system analysis.
Even though the input frequency can reach 40MHz (due to the internal 25ns cycle time), the maximum possible output frequency is 40/2=20MHz, which could be better.
It is not possible to go higher with this circuit. However, with 2 parallel circuit, there must be a way... One ALU is read during the input clock low phase, the other is read during the high phase.
Mathematically it's not a problem because the system is highly linear. Since one accumulator increases its value by N at each cycle, it should advance by 2N after 2 cycles. Now if there are 2 separate accumulators, both advance by 2N. The system could be extended to even more phases (powers of 2 work best) if needed.
How would it work ?
- Accumulator A is reset to 0
- Accumulator B is reset to the advance value N
- Both advance with the value 2N (N is shifted left by 1 position, MSB is ignored, LSB is 0)
I'm sure I'm reinventing the wheel but... it's fun and doesn't cost me much. The only critical thing is to keep the accumulators in synch so they must be loaded simultaneously. Manual changes will require the push of a button (to load the A and B registers), until I automate this.
Assuming the input clock's duty cycle is 50%, A's MSB is output on the low phase and B's MSB is output on the next high phase. The output jitter would be only 12ns now :-)
I'm sure the performance, speed, consumption etc. would be much better with a FPGA (Most FPGA even have a configurable PLL) but it would be cheating :-D
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
You can use a PLL to get to the higher frequency as well as removing the jitter from the DDS. This way, you get to have the frequency resolution even for high frequency output.
Are you sure? yes | no
Yes I know. But I want to keep it "easy" and I have no PLL in stock... Or else I would go full-FPGA and I could reach 200 or 300 MHz even with my old A3P250 (it has an internal programmable PLL and can add at around 100MHz). It would lose its charm and I have no clue how else I could use the IDT7381 !
Are you sure? yes | no
I got a pile of pulled CY2308 zero delay clock buffer which is just right for making a fixed ratio PLL with an external divider. It doesn't need to be programmed.
Are you sure? yes | no
This circuit looks nice, I just found the datasheet. There are several versions, including the 2x :-) But I have none in stock...
Are you sure? yes | no