So, my BlackIce MX arrived today on the mailbox
And after my previous experience of having ISE running in a virtualised Windows environment, being able to do everything from within VSCode and MacOS is a bliss! Thanks @Folknology for this wonderful board 
Anyway, I was doing some sanity checking on the board (which of course includes the mandatory blink
example), when I've found @lawrie open ebook. There, he explains that two of the included buttons are hardwired to the blue (49) and green (52) led. Looking at the schematics, the buttons connect to GND, so they are active low. The example @lawrie gives thus make sense; my top module is:
module chip (
output yellow_led,
input button1
);
assign yellow_led = button1;
endmodule
... with this .PCF
:
set_io clk 60
set_io yellow_led 55
set_io -pullup yes button1 52
When the button is not pressed, the internal pull-up resistor keeps button1
high. Once it's pressed, both PIN52
and the green led now have a path to GND
, thus registering LOW and making PIN55
(the yellow led) LOW too. Right?
The pickle is, that's not what happens: both button 1 and 2 make the yellow led turn on, and it is kept on.
However, handling (literally putting my hands on the board), tends to turn it off. This is probably because my fingers touch a specific contact on the pin header, and thus turn the signal off; which is confusing for me, because a potential GND
connection from my hands would actually turn it on, not off. Further handling do not turn it on.
So my question is: what is wrong? my (@lawrie) code or my board?
Thx!
P.S. Debouncing problems?