Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20881 Discussions

Simulation with Cyclone V Transceiver Native PHY

ochiang
Beginner
374 Views

Hi,

I am simulating my Cyclone V Transceiver Native PHY. In the PHY settings, I have enabled 8b/10b encoding and also enabled the simplified data interface. I have observed some phenomena and encountered some issues:

Observations:

  1. After deasserting tx_analogreset, tx_serial_data continuously outputs K28.5-.
  2. Then, after deasserting tx_digitalreset, tx_serial_data outputs K28.5- / D0.0- / K28.5- / K28.5+ / K28.5- / K28.5+ / ...
    • Are these behaviors normal? Is there anything I need to do during this process?

Issues:

I tried inputting some data from tx_parallel_data (as shown in Figure 1), but tx_serial_data failed to correctly output these data. From the figure(as shown in Figure 2), you can see:

Figure1Figure1

Figure 2Figure 2

 

  1. 0x55 & datak=0 -> (D21.2) ok
  2. 0xBC & datak=1 -> (K28.5) tx_serial_data unknown
  3. 0xBC & datak=0 -> (D28.5) ok
  4. 0x11 & datak=0 -> (D17.0) tx_serial_data partial unknown
  5. 0x22 & datak=0 -> (D2.1) tx_serial_data partial unknown
  6. 0x33 & datak=0 -> (D19.1) ok
  7. 0x44 & datak=0 -> (D4.2) tx_serial_data partial unknown
  8. 0x55 & datak=0 -> (D21.1) ok
  9. 0x66 & datak=0 -> (D6.3) tx_serial_data partial unknown

Why does tx_serial_data show as unknown?

Labels (1)
0 Kudos
4 Replies
AR_A_Intel
Employee
204 Views

Hello

 

Welcome to INTEL forum. Could you try do reset sequence. Resetting the transceiver in an Intel Cyclone V FPGA involves a specific sequence to ensure proper initialization and operation.

Here are the steps to perform a reset sequence for the Cyclone V transceiver: 

 

1. Assert the Reset Signals 

 

- **Transceiver PLL Reset (pll_powerdown)** 

 - Assert the `pll_powerdown` signal to reset the Phase-Locked Loop (PLL). 

   

- **Transceiver Digital Reset (rx_digitalreset and tx_digitalreset)** 

 - Assert the `rx_digitalreset` signal to reset the receiver digital logic. 

 - Assert the `tx_digitalreset` signal to reset the transmitter digital logic. 

 

2. Wait for the Reset to Take Effect 

 

- Hold the reset signals asserted for a sufficient amount of time to ensure that the internal logic and PLL have been properly reset. This typically involves waiting for a few clock cycles. 

 

3. Deassert the Reset Signals in Sequence 

 

- **Deassert PLL Reset** 

 - Deassert the `pll_powerdown` signal to release the PLL from reset. 

 - Wait for the PLL to lock. This can be checked using the `pll_locked` signal. Ensure that the PLL has achieved a stable lock before proceeding. 

 

- **Deassert Digital Resets** 

 - Deassert the `rx_digitalreset` signal to release the receiver digital logic from reset. 

 - Deassert the `tx_digitalreset` signal to release the transmitter digital logic from reset. 

   

 Ensure that these signals are deasserted after the PLL has locked. 

 

4. Verify Status Signals 

 

- Check the status signals to ensure that the transceiver has properly initialized: 

 - `rx_freqlocked`: Indicates that the receiver PLL has locked to the incoming data frequency. 

 - `tx_freqlocked`: Indicates that the transmitter PLL has locked. 

 

### Example Reset Sequence Timing 

 

1. **Assert Reset Signals:** 

  - Assert `pll_powerdown`. 

  - Assert `rx_digitalreset`. 

  - Assert `tx_digitalreset`. 

    

  Wait for at least 10 clock cycles (the exact number may vary depending on your design requirements). 

 

2. **Deassert PLL Reset:** 

  - Deassert `pll_powerdown`. 

    

  Wait for the `pll_locked` signal to go high, indicating that the PLL has locked. This can take several microseconds depending on the PLL configuration. 

 

3. **Deassert Digital Resets:** 

  - Deassert `rx_digitalreset`. 

  - Deassert `tx_digitalreset`. 

    

  Check the `rx_freqlocked` and `tx_freqlocked` signals to ensure the receiver and transmitter have locked to their respective frequencies. 

 

Refer to the Intel Cyclone V Transceiver User Guide and the specific design documentation for detailed information tailored to your application's requirements. 


0 Kudos
ochiang
Beginner
176 Views

Hi,

Thank you for your response. I later found out that I need to transmit information from tx_parallel_data before the tx_serial_data automatically stops sending data to avoid unknown events.

 

For example, after deasserting tx_digitalreset, I need to continuously send synchronization signals /K28.5/ for a period before starting to send my data, instead of waiting for a while after deasserting tx_digitalreset before sending my data. Is this process correct?

0 Kudos
AR_A_Intel
Employee
145 Views

Hi

 

Yes, the process you described is correct and aligns with best practices for using the Cyclone V Transceiver Native PHY IP.

After deasserting tx_digitalreset, it is important to continuously send synchronization signals, such as the /K28.5/ comma character, for a period before starting to transmit actual data. This ensures that the receiver can properly synchronize and align with the transmitted data stream.


0 Kudos
AR_A_Intel
Employee
50 Views

As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to https://supporttickets.intel.com/s/?language=en_US , view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


0 Kudos
Reply