It seems that the btn Buttons can not be used in the always statement. The error is
[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE
constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to
override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets btnR_IBUF] >
btnR_IBUF_inst (IBUF.O) is locked to IOB_X0Y16
and btnR_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0
If I replace the always-statement with always @(posedge clk)
then the design works with the side effect that the buttons get triggered many times. However, I want to trigger by a rising edge of the buttons. From my perspective, this makes particular sense in the case of a button.
I tried the suggested set_property.... It works for one button only. The other triggers many time while true. So the warning not to do it seems justified.
Question
ButtonUp
Dear community,
I am trying to trigger an event with the "gamepad" buttons on a Basys3 board using verilog.
always @(posedge btnL, posedge btnR)
begin
if(btnR) counter = counter + 1;
else
if(btnL) counter = counter - 1;
end
assign HW_led = counter; // display counter on 16 board LEDs
It seems that the btn Buttons can not be used in the always statement. The error is
[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE
constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to
override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets btnR_IBUF] >
btnR_IBUF_inst (IBUF.O) is locked to IOB_X0Y16
and btnR_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0
If I replace the always-statement with always @(posedge clk)
then the design works with the side effect that the buttons get triggered many times. However, I want to trigger by a rising edge of the buttons. From my perspective, this makes particular sense in the case of a button.
I tried the suggested set_property.... It works for one button only. The other triggers many time while true. So the warning not to do it seems justified.
Can anyone help.
Thanks in advance,
Thomas
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now