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

Cyclone V Transceiver Signal Detect (rx_std_signaldetect) Simulation

Altera_Forum
Honored Contributor II
1,367 Views

I have a Cyclone V native phy transceiver running in ModelSim DE 10.1d and so far it seems to do what I expect with the exception of the Rx signal detect status output i.e. it is always asserted regardless of the Rx serial input state ('1', 'H', '0', 'L', 'W', 'Z', 'X', 'U'). 

 

If I connect the transceiver in my simulation in a loopback fashion by routing the Tx serial output straight back to the Rx serial input and assert the Tx electric idle to put the Tx serial output in to a quiescent state I would expect the Rx signal detect to negate, but it doesn't :mad:. 

 

Has anyone else managed to simulate the Rx signal detect signal successfully?
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
635 Views

I have managed to resolve this and thought I would post an update if anyone else gets stuck with the same issue. 

 

The reason the Rx signal detect is constantly driven high is that QuartusII steers the signal detect circuit in the phy i.e. signal detect on/off transition period, therefore an RTL simulation does not have knowledge of this and defaults to essentially off (driven high). However you can switch it on albeit not fully representative of a post fit behavior (I may be wrong). To do this you need to modify the simulation models generated by the QuartusII Megawizard for the Cyclone V native phy transceiver:- 

 

1. In [path to simulation model]/altera_xcvr_native_cv/altera_xcvr_native_av.sv the value for rx_signaldetect_threshold needs to be changed from 16 to 1; this will stop signal detect from being forced on, and will allow it to reflect rx_serial.  

 

2. In [path to simulation model]/altera_xcvr_native_cv/av_xcvr_native.sv, the value for pdb_sd needs to be changed from "True" to "False"; this will allow the signal detect block to function in simulation. 

 

It should be noted that you must only compile and use the unencrypted source for the simulation models i.e. the ones you have just modified - this may be an issue if your simulator does not support multi-language. I opted to remove all the encrypted simulation models from my simulation and just use the source and it worked.
0 Kudos
Reply