Forum Discussion
No. As stated, setting a top-level signal with the VIRTUAL_PIN assignment ON means that that signal will be routed to a logic "stub" in the FPGA fabric instead of to an I/O pin. This is usually used if you don't yet know what specific I/O pin you want to use, but you don't want the compiler to optimize away the signal because it's not connected to anything. There's even a quick video on this! https://www.youtube.com/watch?v=QET0lC-jdAQ
Hi sstrell -- thanks I watched that video before posting but did not pick up what the port logic value used by the compiled design when running would be -- my questions arising are:
- does default port value method suggested by FvM put a fixed know value for the virtual pin port signal?
- what happens if you set the virtual pin value to OFF instead of ON?
- sstrell2 years ago
Super Contributor
1) Value will be low at configuration on most devices as it is with all other signals (presuming you are talking about an input, not an output, here). On Stratix 10, you can initialize signals to high on configuration.
2) Not much. You're basically saying the signal must be attached to a pin location, and if it's not, it could get optimized away.
- Steve-Mowbray-ENL2 years ago
Occasional Contributor
not sure I fully understand 1) above with respect to FvM suggestion -- here is my thinking thus far:
in QSF settings file:
set_instance_assignment -name VIRTUAL_PIN ON -to vpin1in top level entity:
module top ( input vpin1=1'b1 ); // vpin1 will act as a constant logic 1 value in module body... endmodule- sstrell2 years ago
Super Contributor
All register outputs default low when the device is configured/programmed. Here you are tying an input high so it will be pulled up after programming. In Stratix 10 (Agilex too maybe), register outputs can be programmed to be high.