Forum Discussion
Altera_Forum
Honored Contributor
10 years agoPRESERVE_UNUSED_XCVR_CHANNEL persisting critical warning
Hello,
I'm using Quartus 16.0.1 Prime and I'm using the Arria10 FPGA. (DEVICE=10AX115U4F45E3SGE3). When compiling a design without RX/TX channels I always get this critical warning: Critical Warning (17951): There are 96 unused RX channels in the device. If you intend to use any of these channels in the future, you must add the assignment 'set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON -to <pin_name>' in your QSF file. This assignment will preserve the performance of specified channels over time. I tried to add the suggested assignment in the QSF file. for example: set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL OFF -to PIN_AC38 However this seems undetected/not recognized. Any idea how to set the assignment correctly? Thanks, Leon6 Replies
- Altera_Forum
Honored Contributor
Hi Leon -
I don't think that OFF is a legitimate setting for this. It's off by default, so "set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL OFF -to PIN_AC38" would have no effect. I think the best way to handle this is to do a global enable: set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON This will preserve all unused transceiver channels at the cost (supposedly) of only 1mW extra power dissipated per channel. See this as well: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd06092016_720.html So to get the full effect you need to install update 1 to QP 16.0. This was news to me as well. Altera has done a terrible job of explaining this whole unused transceiver BTI degradation issue. It's not mentioned anywhere in the Arria 10 documentation. I discovered it when I saw lines like this in the .qsf files for Arria 10 reference designs from rocketboards: set_instance_assignment -name ENABLE_UNUSED_RX_CLOCK_WORKAROUND ON -to AE33 I asked our local Altera account manager about it and she forwarded me some info on it from a super-secret Altera internal presentation. Really stupefying to me the way they handle issues sometimes. Now when I build with 16.0 I get the following fitter messages: Warning (18687): The QSF assignment ENABLE_UNUSED_RX_CLOCK_WORKAROUND has been deprecated. It has been superseded by the QSF assignment PRESERVE_UNUSED_XCVR_CHANNEL. Info (17952): Channel-specific preservation of unused RX channels is enabled. Preserving 10 unused RX channel location(s). Info (17953): Preserved 10 unused RX channel(s). So the ENABLE_UNUSED_RX_CLOCK_WORKAROUND setting has been replaced by PRESERVE_UNUSED_XCVR_CHANNEL in 16.0, but they forgot to preserve the unused Tx channels. To get that you need to update to 16.0.1. Hard to keep up with all the secret half-information with Arria 10. Good luck. I hope this helps. Bob - Altera_Forum
Honored Contributor
I just installed 16.0.1 and included the following in the .qsf file:
set_instance_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON I now get the following messages from the fitter: Info (17952): Global preservation of unused RX channels is enabled. Preserving 48 unused RX channel location(s). Info (18653): Global preservation of unused TX channels is enabled. Preserving 48 unused TX channel location(s). Info (17953): Preserved 48 unused RX channel(s). Info (18654): Preserved 48 unused TX channel(s). This is targeting ES2 silicon on the Arria 10 SoC dev kit. Bob - Altera_Forum
Honored Contributor
Hi Bob,
Great thanks for your help. Do you use the Pro version of Quartus 16.0.1 ? I tried the Standard version (16.0.1) and this PRESERVE_UNUSED_XCVR_CHANNEL seems to be ignored. I'm installing the Pro version now and hopefully I will get the same Fitter Info messages as you saw Leon - Altera_Forum
Honored Contributor
Hi Leon -
I'm using the standard version. Minor correction to my post above. I'm actually using this syntax: set_global_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON Not sure if that will make a difference for you or not but maybe worth a try. Bob - Altera_Forum
Honored Contributor
Hi Bob,
That made it working. (it should be "set_global_assignment" and not "set_instance_assignment". Now I see in the Fitter log: Info (17952): Global preservation of unused RX channels is enabled. Preserving 72 unused RX channel location(s). Info (18653): Global preservation of unused TX channels is enabled. Preserving 72 unused TX channel location(s). Info (17953): Preserved 72 unused RX channel(s). Info (18654): Preserved 72 unused TX channel(s). So, problem solved. Thanks! Regards, Leon BTW: I'm still using Quartus 16.0.0 standard. (I cannot get the pro version to work; I get the same issue as described here: http://www.alteraforum.com/forum/showthread.php?t=52337&highlight=prime ) - Altera_Forum
Honored Contributor
Thanks Bob,
Your last message made it working. I corrected the syntax and in Quartus 16.0.1 (standard) it is working now. Thanks for your help! Leon (hope my reply will get through this time..)