06-25-2012 10:50 AM
I am attempting to use the ROCKET I/O input for a slow speed communication. The communication is a Manchester encoded signal with a clock speed of 2.5 MHz and each bit requires two clock ticks. Originally this was done on a customized board with a Spartan II, but the microprocessor is obsolete and I can't get the board any longer. I am attempting to use a COTS type board with the fiber optic interface I need, but I am having problems with the GTP Rocket I/O. Unfortunately all my experience is with the Spartan 3 family, so I did not know the details of the Rocket I/O tiles. The Manchester signal is 24 bits long and does not fit well in the pre-defined data width of the wizard. The message ends with 3 bits of zeros and begins with 4 bits of ones. I tried to use this as my comma defination, but I had no luck.
Presently I am just using the wizard example code and connecting it to the hardware I/O and using chipscope to see the output.
The chip is a xc5vlx110t-2ff1136.
I have also tried to over clock the GTP tile by a factor of 8 (the data width is set for 8 bits) and attempted to re-create the original signal on bit 0 of the RX data out. Actually I am over clocking by a factor of 40 and the output is very close to the actual signal, but at the end of the message where there should be 3 bits of zeros the GTP adds a 'one'.
So my questions are:
1) Is it possible to run the GTP slow enough to use it correctly?
2) Does the GTP have some type of error correction function that would be adding the extra 'one' to the message as I see when I over clock the GTP?
3) Has anyone ever tried overclocking the GTP to recreate the original signal on one bit of the Rx output byte? If so, please provide some pointers.
Solved! Go to Solution.
06-25-2012 11:22 AM
Sorry - I misspoke on the Manchester end of message.
In the Manchester encoded message the signal must toggle at least every two clock ticks. If the signal is carrying a logical one then it toggles after one clock tick, if it is carrying a logical zero then it toggles after 2 clock ticks. The end of message has no toggles for a length of 6 clock ticks.
06-25-2012 06:04 PM
Attempting to use the GTP at this extremely slow data rate (2.5Mbps) will require significant work with 250-400x oversampling done in the fabric and the receiver in a lock to reference mode and then it may not even work correctly depending on the AC coupling capacitors in the optical module. The higher functionality features (comma detection is one) of the GTP cannot be used and will need to be implemented in the fabric.
You should just port the Spartan-3 code that uses a Select IO to Virtex-5.
Have you tried typing your question into Google? If not you should before posting.
Too many results? Try adding site:www.xilinx.com
09-04-2012 02:09 PM
I was able to re-create the original signal output of the GTP by basically turning off all the error checking and set the clock speed to 800Mhz so I could turn off the internal oversampling. I had to play with the termination setting to get the least amount of noise(this turned out to be the full voltage termination selection, not the 2/3 selection) from the transceivers and used AC coupling. I placed a voting system on the output byte of the GTP, so if 3 or more bits are a '1' then the signal is high, else the signal is low. The dead time on the Manchester signal caused the GTP to add an extra '1', but the timing is known so it can be masked away.