I have been trying to do the same thing, following the "Basys 3 Getting started in Microblaze" tutorial, https://reference.digilentinc.com/learn/programmable-logic/tutorials/basys-3-getting-started-with-microblaze/start. I've had a number of problems, having to do with the polarity of the external reset signal:
When customizing the Processor System Reset block, the polarity of ext_reset_in is grayed out, and defaulted to active-low. I cannot set it to active-high. It's as though a generic cannot be overridden.
The external reset port must be active-high (that's how the button is wired), and consequently wiring the port to the PSR block results in a Validation error (polarity mismatch).
If the validation error is ignored, the design still synthesizes, etc, without error. However, when I get to the "Run as" step in SDK, I get an error that the Microblaze is being held in reset (as expected, if the ext_reset_in input is indeed active-low).
If I hold the reset button (BTNC) down while trying "Run as", just to see what happens, I get an error that the Microblaze is not being clocked. Again, this is expected behavior since the Clocking Wizard is now being held in reset.
The solution would seem to be to put an inverter between the reset port and the PSR block. This fixes the validation error, but interestingly, after pushing the design through bitstream, etc, the "Run as" still throws a "not clocked" error.
There are a few moving parts here, I realize, and the solution is probably something simple. I will be grateful to know the answer.