Virtual Pin in Xilinx ISE

Greetings, I've used the Altera/Quartus II tool set for a previous project, and my next project will likely use the Xilinx/ISE toolset. In Quartus II there is the ability to define I/O in the top module as virtual pins. This prevented logic from being synthesized away and having the I/O assigned to a real pin on the device. Does anybody now how to do this in the Xilinx/ISE tool set?

Regards, Jeremy

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----

formatting link
The #1 Newsgroup Service in the World! 120,000+ Newsgroups

----= East and West-Coast Server Farms - Total Privacy via Encryption =----

Reply to
Jeremy
Loading thread data ...

I've never heard of anything like that for the Xilinx flow - although it may exist. It sure would be useful. My experience with Xilinx is that it wouldn't be integrated throughout the flow. You'd have to specify the option in XST, then again in MAP. And then I'm not sure if PAR and bitgen would be happy with dangling logic (I've seen bitgen error out because of the MAP stage not cutting out unused logic). Although I'm not a big Project Navigator user - maybe someone else here knows better. One thing you could do is pipeline the results of any logic you want to keep and put them all through some kind of reducing function (i.e. OR them all together) and assign the single bit result to a pin. Alternatively if you have a uP bus, assign the outputs to a read-only register. Hacks, I know, but it'll work.

Reply to
tln

There are options to allow or prohibit automatic allocation of pins; if you prohibit allocation, only the pins you allocate (usually via the .ucf = user constraints file) will be allocated.

A "keep" attribute(*) on each non-pin signal should prevent it being optimised away.

(*) I say attribute, assuming you are using VHDL. I don't know the Verilog equivalent, but there must be one.

Searching for "keep attribute" and "ucf" or "pin constraints" should bring more info and examples.

- Brian

Reply to
Brian Drummond

If you are using a package that has some unbonded pads on the die, you can assign your virtual pin to an unbonded pad

Reply to
Ray Andraka

In my experience (eg, I didn't quite do it right) a keep attribute is optimised away when it comes to MAP or PAR. I can't recall which tool was to blame...

My solution was to assign the signals to an output pin via a reduction operator, and then to unroute the output pin from the rest of the FPGA after implementation. I then had to disable DRC for Bitgen, but it was the only error.

ed.

Reply to
Edward Watts

Thanks for the suggestions.

-Jeremy

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----

formatting link
The #1 Newsgroup Service in the World! >100,000 Newsgroups

---= East/West-Coast Server Farms - Total Privacy via Encryption =---

Reply to
Jeremy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.