Hello, I just got a new FPGA board (from Avnet, Xilinx Virtex4). The problem is that I never programmend a FPGA before. I use VHDL for programming and Precision from Mentor for synthesis. Xilinx ISE 7.1 is used for place-and-route. On the FPGA board is a push button. Within my VHDL code I defined a process, which is sensitive to the rising edge of the signal associated with that push button (I want to know, when the button is pushed).
pb_proc: process (push_button) is begin if push_button'event and push_button='1' then ....
The problem is, that Precision recognizes that signal and the associated pad as a clock input and the during place-and-route operation, ISE produces the following error message:
ERROR:Place:645 - A clock IOB clock component is not placed at an optimal clock IOB site The clock IOB component is placed at site IOB_X2Y112. The clock IO site can use the fast path between the IO and the Clock buffer/GCLK if the IOB is placed in the master Clock IOB Site. If this sub optimal condition is acceptable for this design you may set the environmentvariable XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING to demote this message to a WARNING and allow your design to continue.
If I use the following constraint during synthesis, the error is reduced to a warning, but the input is still regarded as a clock. set_false_path -through { push_button } -design gatelevel
My questions are:
1) Is every input signal, to whose signal flanks the VHDL code is sensitive to, automatically a clock? What's the best way to prevent this during synthesis? Do I actually have to prevent it?2) How can I set the environmentvariable XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING? I'm using the Linux version of ISE and using ISE from within Precision. I'm sure that there is a menu entry to set that variable, but I don't start ISE direct, but from within Precision. So I'd like to know in which configuration file I can place that variable setting. Also I'd like to know which additional environmentvaribles exist. I couldn't find a list or anything in the documentation.
Thank you,
Andreas
P.S.: another question of topi: When I setup my Design, I have to chose technology(Virtex-IV), Device(4vlx25ff668) and Speed Grade(-10 or -11). Which speed grade do I have to choose? Does the board support -10 and -11? Whats better? What is the speed grade exactly? Do I have to/Can I determin the supported speed grades of my board somehow?