UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
1,049 Views
Registered: ‎02-09-2010

CPRI : signal vendor_rx_data is always zero

Jump to solution

Dear all,

we have established a CPRI link at 10.137 Gb/s between two boards. Using basic_frame_first_word as a trigger, and looking at iq_rx,

we can see four 32 bit control words that are as expected (we can send vendor specific data, depending on the subchannel). Despite that, the vendor_rx_data signal is always zero. Any idea?

 

Vivado 2017.4, CPRI v8.8, xc7z030ffg676-2

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
948 Views
Registered: ‎08-02-2007

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

tcachat@metraware.com

 

Please refer to our CPRI demo testbench on how to send the tx vendor data firstly. You won't see any data until stat_code is f. This is the first thing to check. Also vendor_rx_data contains a lot zero cycles. please ensure you use data value not equal to zero to trigger the vendor_rx_data, and see if trigger condition can be met. 

 

cpri_vendor.JPG

7 Replies
Xilinx Employee
Xilinx Employee
995 Views
Registered: ‎08-02-2007

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

tcachat@metraware.com

 

What data do you send from vendor_tx_data? the data value for Ns, Xs should match with the data sent from vendor_tx_data (for Ns, Xs subchannels)

0 Kudos
987 Views
Registered: ‎02-09-2010

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

To begin with,

  • I assigned a constant value to vendor_tx_data on the master side,
  • and on the slave side, I could see this value inside the flow of iq_rx (depending on Ns, this value was sometime replaced by other Control Words, that is all right), but the vendor_rx_data signal was always zero.

Now,

  • I decided to send some useful data to vendor_tx_data only when vendor_tx_ns = 16,
  • on the slave side I can recover this data from the basic_frame_first_word, the iq_rx flow, and the vendor_rx_ns, but the vendor_rx_data signal was still zero.

 

0 Kudos
Xilinx Employee
Xilinx Employee
949 Views
Registered: ‎08-02-2007

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

tcachat@metraware.com

 

Please refer to our CPRI demo testbench on how to send the tx vendor data firstly. You won't see any data until stat_code is f. This is the first thing to check. Also vendor_rx_data contains a lot zero cycles. please ensure you use data value not equal to zero to trigger the vendor_rx_data, and see if trigger condition can be met. 

 

cpri_vendor.JPG

931 Views
Registered: ‎02-09-2010

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

Thank you xud.

 

On the master side, if I assign 1 to vs_negotiation_complete (and so stat_code is f), then I can get the vendor_rx_data as expected
(not 100% tested, but seems ok).
On the slave side, whatever I do vendor_rx_data  is constant zero, even if I can catch the vendor data inside the flow of iq_rx, and even when stat_code is f.[Edit]

 

Does it mean that I completely misunderstood the meaning of vs_negotiation_complete? I thought master and slave do some negotiation using vendor specific data, and when they agree, they assign vs_negotiation_complete to 1. My experience (on the master side) is that clearing vs_negotiation_complete simply forbid vendor specific data to be received on vendor_rx_data. Does it have some other effect?

 

Do you have an idea for the slave side?[Edit]

 

Sorry for the last Edit, on the slave side I have to check again.

0 Kudos
Xilinx Employee
Xilinx Employee
915 Views
Registered: ‎08-02-2007

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

tcachat@metraware.com

 

vs_negotiation_complete should be held Low until vendor-specific negotiation is complete. This causes the start-up

state machine in the CPRI core to pause in state E, “Interface and vendor-specific negotiation” until vs_negotiation_complete is asserted High.

 

The negotiation and the corresponding C&M messages are not within the scope of the CPRI specification. So user needs to tell CPRI IP that vendor specific negotiation is completed by asserting vs_negotiation_complete, then CPRI core can move to the operation status F.

 

If vendor negotiation hasn't completed, I don't think you can transfer the vendor data.

 

0 Kudos
Xilinx Employee
Xilinx Employee
889 Views
Registered: ‎08-02-2007

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

tcachat@metraware.com

 

Have you resolved the issue? If you can get meaningful vendor_rx_data now, please accept one of the reply as solution to close this thread.

0 Kudos
882 Views
Registered: ‎02-09-2010

Re: CPRI : signal vendor_rx_data is always zero

Jump to solution

All right. After I assign 1 to vs_negotiation_complete (and stat_code is f), I can get the vendor_rx_data as expected
(still not 100% tested, but seems ok). It is true on the Master side as well as the slave side (each one independently).

 

But, how is it possible to achieve vendor specific negotiation when no vendor data is available? What is meant?

 

I would like to rephrase the documentation:

  • vs_negotiation_complete=0 means vendor_rx_data is blocked to all zero,
  • vs_negotiation_complete=1 means vendor_rx_data behaves normally.

Does it make sense? What is vs_negotiation_complete really used for? (except changing stat_code and blocking vendor_rx_data)

Thank you

0 Kudos