Hi, guys. I'm searching for a XMOS device which its IO speed can >= 100MHz. But I cannot find one,
the datasheet said its IO speed can up to 60MHz only.
Did I miss some series XMOS device?
Thanks for your response!
Best regards.
Is there a XMOS device can have > 100MHz IO speed? Topic is solved
-
- Active Member
- Posts: 51
- Joined: Wed Jun 22, 2016 8:08 am
-
- Respected Member
- Posts: 347
- Joined: Wed Jan 27, 2016 5:21 pm
Hi xchips,
The I/O speed is limited by three factors
1) The physical pin speed; you will notice that the RGMII interface is running at 125 MHz - and there is probably some slack there. This is very dependent on the capacitive load of the pins.
2) The skew between pins and the round-trip-time of IO pins. If you use source synchronous clocks (i.e., clock coming from the output when inputting data, and clock going out from the xcore when you are outputting data), then the skew is relatively small when using pins that are in the same bank; provided capacitive loads are small.
3) The logical timings, i.e., can your software keep up.
The 60 MHz is a simplification of the above three numbers into a single value.
If you have more specific info one the signal that you would like to drive and sample I may be able to help you further.
Cheers,
Henk
The I/O speed is limited by three factors
1) The physical pin speed; you will notice that the RGMII interface is running at 125 MHz - and there is probably some slack there. This is very dependent on the capacitive load of the pins.
2) The skew between pins and the round-trip-time of IO pins. If you use source synchronous clocks (i.e., clock coming from the output when inputting data, and clock going out from the xcore when you are outputting data), then the skew is relatively small when using pins that are in the same bank; provided capacitive loads are small.
3) The logical timings, i.e., can your software keep up.
The 60 MHz is a simplification of the above three numbers into a single value.
If you have more specific info one the signal that you would like to drive and sample I may be able to help you further.
Cheers,
Henk
-
- Active Member
- Posts: 51
- Joined: Wed Jun 22, 2016 8:08 am
Hi, Henk. Thank you very much for your answers.
I want to output a sample clock (about 120MHz) from XMOS device for an ADC. And it seems that all XMOS devices have a 60MHz limitation on IO speed. So I'm wondering if there is a series device can do this.
Best regards.
I want to output a sample clock (about 120MHz) from XMOS device for an ADC. And it seems that all XMOS devices have a 60MHz limitation on IO speed. So I'm wondering if there is a series device can do this.
Best regards.
-
- Respected Member
- Posts: 347
- Joined: Wed Jan 27, 2016 5:21 pm
Hi xchips,
Generating a 120 MHz clock is possible, but you will need to tweak your frequencies a bit.
To get to exactly 120 MHz, you will need to run the processor at 480 MHz (otherwise it can only generate 125 MHz). Either set the ref clock to 120 MHz (divide by 4), and output the ref clock, or clock a 1-bit port from the core clock and output 0xCCCCCCCC continuously on the one-bit port.
The electrical side will require some careful design in terms of termination, trace capacitance, etc. I am not qualified in that area, but for starters you could add a small series resistor (20-30 ohm) near the XCore, make sure the trace is short, and take care of the grounding.
Cheers,
Henk
Generating a 120 MHz clock is possible, but you will need to tweak your frequencies a bit.
To get to exactly 120 MHz, you will need to run the processor at 480 MHz (otherwise it can only generate 125 MHz). Either set the ref clock to 120 MHz (divide by 4), and output the ref clock, or clock a 1-bit port from the core clock and output 0xCCCCCCCC continuously on the one-bit port.
The electrical side will require some careful design in terms of termination, trace capacitance, etc. I am not qualified in that area, but for starters you could add a small series resistor (20-30 ohm) near the XCore, make sure the trace is short, and take care of the grounding.
Cheers,
Henk
-
- Active Member
- Posts: 51
- Joined: Wed Jun 22, 2016 8:08 am
Hi, Henk. Thank you very much for you help again.
Now I knew that XMOS device may have a chance to output such a high frequency clock. But unfortunately currently I can't verify the method which you mentioned.
Thanks again.
Best regards.
Now I knew that XMOS device may have a chance to output such a high frequency clock. But unfortunately currently I can't verify the method which you mentioned.
Thanks again.
Best regards.
-
- XCore Legend
- Posts: 1126
- Joined: Thu May 27, 2010 10:08 am
Perhaps try this:
It divides the core clock by 4 and outputs it. I can confirm I get a 125MHz clock output. Unfortunately my home scope is only 100MHz so it looks like a sine wave, but a better scope would tell a squarer story!
Code: Select all
#include <xs1.h>
out port p_clk = XS1_PORT_1G; //clock output
clock clk = XS1_CLKBLK_1;
int main(void){
configure_clock_xcore(clk, 2); //(500 / (2 * 2) = 125Mhz)
set_port_clock(p_clk, clk); //Attach clock to port
set_port_mode_clock(p_clk); //Set port to clock output drive
start_clock(clk); //Go!!
while(1);
return 0;
}
You do not have the required permissions to view the files attached to this post.
-
- Active Member
- Posts: 51
- Joined: Wed Jun 22, 2016 8:08 am
Hi, infiniteimprobability.
It is cool. Now I fully believe that XMOS device can do that. but uh... I don't have such a high frequency scope to verify it on my side.
Thank you very much for you help again!
Best regards.
It is cool. Now I fully believe that XMOS device can do that. but uh... I don't have such a high frequency scope to verify it on my side.
Thank you very much for you help again!
Best regards.