06-21-2012 09:32 PM
I know this is an old thread, but I'll respond for posterity's sake! (In case others like myself arrive here from google looking for answers)
I just experienced this problem.
You must use the same name of the port you originally had going into the microblaze black box. This is, of course currently the top-level input port. So you need to change that.
I'll explain what to do for the reset pin. Basically change the last line of your soc_top.v from:
.fpga_0_rst_1_sys_rst_pin ( fpga_0_rst_1_sys_rst_db )
.fpga_0_rst_1_sys_rst_pin ( fpga_0_rst_1_sys_rst_pin )
Then remove the the following line from your soc/data/soc.ucf file:
Net fpga_0_rst_1_sys_rst_pin LOC=K17 | IOSTANDARD = LVCMOS33 | PULLDOWN;
And add a new line to a new top_level ucf source file that you need to create. I've found that constraints specified in the microblaze ucf file sometimes don't apply properly to IO that is only in the top level module. The line would be something like this:
Net reset_pin LOC=K17 | IOSTANDARD = LVCMOS33 | PULLDOWN;
Then simply use reset_pin as the input to your top module as well as the input to the debouncer. The output of the debouncer will be fpga_0_rst_1_sys_rst_pin.
So I guess the generic solution is to leave the port declarations as they came, and change, instead, the ucf file. I'm not sure why, but this is what seemed to work for me.