Forum Discussion
hi,
The first question you need to ask yourself is do you care and plan to use the un-used Tx channel in future.
- The preserve command is used to preserve the un-used transceiver channel to prevent the performance degradation over time
So, if you don't care about un-used Tx channel for future use plan
- Just remove the qsf preserve command and you can use back either Quartus v16.0 or v18.0
Else if you care about un-used Tx channel for future use plan
- You CANNOT use v16.0 as there is bug in v16.0 where the preserve command for Tx channel is not working.
- You MUST USE v18.0 together with the preserve command + workaround plan as mentioned in the KDB article
- set_instance_assignment –name PRESERVE_UNUSED_XCVR_CHANNEL ON –to <pin name>
- In cases where the unused transmitter may be used in the future and preservation is required, you can instantiate a minimum datarate, dummy simplex transmitter corresponding to the used simplex receiver. You can set a static 0x00 pattern on the Tx parallel port, and select minimum VOD.
Anyway, my personal opinion will be to upgrade to latest Quartus version if possible to avoid all these troublesome known issue in older Quartus version.
Thanks.
Regards,
dlim
Hi dlim,
If I use 18.0.0,
1) for the unused tx and Rx channel, I use the preserve command
set_global_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON, but this command will lead to the risk presented in the link2.
so the best method is that I use the set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON -to <pin_name>
Q1 : If so, I want to know the way to use this command:
for example : for differential pins, rx0p(k20), rx0n(k21)
so for these two pins, I need to write the assignments which has two methods:
case one:
1) set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON -to k20
2) set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON -to k21
case two:
I only need to write one as 1).
I want to know which one is right?
Q2 : I want to know which pins I need to assignment ? All unused pins? If so, when I do this, I face the fitter error. If not, which unused pins I need to assign, could you provide some advice?
Error :
Error (175019) : Illegal constraint of HSSI_PMA_TX_BUF to the location HSSIPMATXBUF_1C5
Info (175028) : The HSSI_PMA_TX_BUF name(s) : UNUSED_RXTX_CLOCK_WORKAROUND_FITTER_INSERTED_PMA_TX_BUF1
Error (16234) : No legal location could be found out 1 considered location(s). Reasons why each location could not be used are summarized below :
Error (175003) : The HSSI_PMA_TX_BUF location is occupied (1 location affected)
Info (175029) : HSSIPMATXBUF_1C5, Already placed at this location : HSSI_PMA_TX_BUF UNUSED_RXTX_CLOCK_WORKAROUND_FITTER_INSERTED_PMA_TX_BUF0
Brs,
Lambert