Contact an Expert

Thread: Serial 8b/10b decoding and PLL with burst streams


Permlink Replies: 7 - Pages: 1 - Last Post: Jul 17, 2012 5:39 AM Last Post By: algoss
syoma

Posts: 4
Registered: 07/13/12
Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 13, 2012 6:47 AM
Click to report abuse...   Click to reply to this thread Reply
Hello everybody,
We are now going in purchase of one of 9000 or 90000 Oscilloscopes, and I wolud like to ask communicaty about High speed serial decoding feature in this oscilloscopes N5384A or E2688.
Our problem is that we would like to use this feature to investigate our burst mode transfer over fiber optic.
Our link has the speed is 640mbit, and the problem is that frames are coming in bursts. E.g. there are long idle times on line, without any edge transition. To recover the clock, the burst has 140 0-1 transitions and then specific align character. Afterwards all data is 8b/10b coded. the frame is up to 20bytes in size
So my question is - is it possible to trigger on such stream and decode it with High speed software? I read in datasheet, that " When you choose PLL clock recovery, the clock recovery algorithm requires some time at the start of each record to lock to the data. This interval cannot be viewed or analyzed". I actually would like to see my 140 transitions in front of the stream on the screen. Is that possible?
Another question - if I know my frequency and choose constant-frequency CDR, will Oscilloscope be able to synchronize from first several edges and search for alignment character?
I know that my description is a little bit confusing, so I'm ready for specific questions.

Thank you.
algoss


Posts: 615
Registered: 11/03/06
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 13, 2012 7:41 AM   in response to: syoma in response to: syoma
Click to report abuse...   Click to reply to this thread Reply
The short answer is, "Maybe"... The SW and/or HW behind this was designed around a standard 8B/10B system, with continuous transmission.

Our link has the speed is 640mbit, and the problem is that frames are coming in bursts. E.g. there are long idle times on line, without any edge transition. To recover the clock, the burst has 140 0-1 transitions and then specific align character. Afterwards all data is 8b/10b coded. the frame is up to 20bytes in size

The SW uses the standard 8B/10B Sync characters to get synchronized, I think it's the K28.5. If you are not using a standard sync character, the SW won't be able to sync, and the 8B/10B decode won't work.

So my question is - is it possible to trigger on such stream and decode it with High speed software?

You will probably be able to use the standard edge trigger, combined with a holdoff. It depends on what the signal does between bursts. You don't say if this is differential or single-ended, so it's not possible to tell. You won't be able to use the serial trigger capability, because that depends on getting the clock recovery right.

I read in datasheet, that " When you choose PLL clock recovery, the clock recovery algorithm requires some time at the start of each record to lock to the data. This interval cannot be viewed or analyzed". I actually would like to see my 140 transitions in front of the stream on the screen. Is that possible?

Whether you can see it on screen is dependent on getting the trigger right. It might take some "messing around". It's a short enough packet that you might be able to use segmented mode and capture a bunch of these packets in a single run. From what you've said, there appear to be about 350 bits in the complete packet (140 statup, 10 sync, up to 200 data). Sampling at 20G, that's just over 10K samples per packet, so with 20M depth, you could capture ~1000 packets at once, the page through them.

Another question - if I know my frequency and choose constant-frequency CDR, will Oscilloscope be able to synchronize from first several edges and search for alignment character?

Possibly. Constant Frequency clock recovery depends on finding a starting and ending edge. It looks at the time between them, and tries to figure out how many integer bit periods that represents. Then it builds a perfect clock between those 2 points. Since you are running at "only" 640Mb/sec, you should be OK.
I know that my description is a little bit confusing, so I'm ready for specific questions.

No more or less confusing than other questions I've seen on this forum :-)

Let me know if this helps, or if you need more clarification.

Al
syoma

Posts: 4
Registered: 07/13/12
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 16, 2012 1:52 AM   in response to: algoss in response to: algoss
Click to report abuse...   Click to reply to this thread Reply
Thanks
Triggerin on edge and probably with Infiniscan should be no problem.
algoss wrote:
The SW uses the standard 8B/10B Sync characters to get synchronized, I think it's the K28.5. If you are not using a standard sync character, the SW won't be able to sync, and the 8B/10B decode won't work.

This is alittle bit confusing, because during live presentation of 90000 series I've got the feeling, that synchronizing character is freely selective. In my application it is a 0x333 or 1100110011b. So it won't work?
Otherwise can I manually adjust the bit, where 8b/10b decoding should begin?

Or totally different Idea - Can I take data and Clock and use embedded MATLAB function, or MATLAB on PC to decode the stream?

Edited by: syoma on Jul 16, 2012 1:53 AM

Edited by: syoma on Jul 16, 2012 2:23 AM
algoss


Posts: 615
Registered: 11/03/06
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 16, 2012 5:09 AM   in response to: syoma in response to: syoma
Click to report abuse...   Click to reply to this thread Reply
During live presentation of 90000 series I've got the feeling, that synchronizing character is freely selective.
I don't know which live presentation you are talking about. There may be other serial decode situations where the 'sync' character is freely selectable, but 8B/10B is not one of them. The K28.5 character is used because it is the only character with 5 consecutive 0's or 1's, of all of the valid 8B/10B characters.

In my application it is a 0x333 or 1100110011b. So it won't work?
I doubt that it will work

Otherwise can I manually adjust the bit, where 8b/10b decoding should begin?
No

Or totally different Idea - Can I take data and Clock and use embedded MATLAB function, or MATLAB on PC to decode the stream?
You can do anything that you want with MATLAB, if you have the correct license.

I think that this is the first time that you mentioned a clock. Is that a separate signal? It will make the decode job a little easier. Otherwise you have to use crossing points to find the bit transitions and interpolate.

This could be done pretty easily in MATLAB, probably better using it to control the scope, rather than using UDF.

Al
syoma

Posts: 4
Registered: 07/13/12
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 16, 2012 8:35 AM   in response to: algoss in response to: algoss
Click to report abuse...   Click to reply to this thread Reply
algoss wrote:
I think that this is the first time that you mentioned a clock. Is that a separate signal? It will make the decode job a little easier. >Otherwise you have to use crossing points to find the bit transitions and interpolate.
No, I meant recovered clock signal. In N5384A was mentioned, that it is possible to observe recovered clock together with signal. So I thought - I can use this clock in my UDF for decoding.

Edited by: syoma on Jul 16, 2012 8:35 AM
algoss


Posts: 615
Registered: 11/03/06
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 16, 2012 10:17 AM   in response to: syoma in response to: syoma
Click to report abuse...   Click to reply to this thread Reply
So I thought - I can use this clock in my UDF for decoding.
I've been thinking about this some more. UDF is designed to pass a numeric array from the scope to MATLAB, and get a numeric array back. It is designed for filters and things like that. You can open a separate window and display data in that window, so it might work.

This solution depends on the Serial Data Analysis doing the clock recovery correctly, so I would test that before you start writing any MATLAB code.

Al
syoma

Posts: 4
Registered: 07/13/12
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 17, 2012 2:35 AM   in response to: algoss in response to: algoss
Click to report abuse...   Click to reply to this thread Reply
Just another question. You wrote:
algoss wrote:
This could be done pretty easily in MATLAB, probably better using it to control the scope, rather than using UDF

What function you meant? Is it really possible to control the scope from PC with MATLAB?

This solution depends on the Serial Data Analysis doing the clock recovery correctly, so I would test that before you start writing any MATLAB code.

The problem is to test. We are going to buy this oscilloscope exactly for this application. If I buy and test and find, that it is unsuitable - We lost the money. That's why I would like to be sure that it can do the job. And if clock recovery will not work, the Serial Data Anlysis is useless also, so I will need to do everything in MATLAB

Edited by: syoma on Jul 17, 2012 2:36 AM
algoss


Posts: 615
Registered: 11/03/06
Re: Serial 8b/10b decoding and PLL with burst streams
Posted: Jul 17, 2012 5:39 AM   in response to: syoma in response to: syoma
Click to report abuse...   Click to reply to this thread Reply
What function you meant?
UDF is an optional capability of the oscilloscope. It takes the captured scope data, and passes it to a MATLAB function that you write. The MATLAB function passes data back to the scope for display. It is almost exactly the same as the built-in Math functions that the scope has.

Is it really possible to control the scope from PC with MATLAB?

Yes.

Go to the Mathworks website (our technical partner), and look in the file exchange. Search for 'Agilent Scope', there are several examples, written by Agilent and/or Mathworks people.

You can also look in the "Oscilloscopes - Scripts and Programs to Enhance Your Scope Experience" section of these forums. There examples there, including some that I have written.

Al

Point your RSS reader here for a feed of the latest messages in all forums