09-17-2020 07:40 PM - edited 09-17-2020 07:46 PM
Is there a way to reset a Basys3 board programmatically in vivado?
Can I send a press command to a pushbutton like the Reset pushbutton?
I found an article about operating PROGRAM_B to reset the board, but I don't know how to operate it.
It would be greatly appreciated if you could explain the details.
09-17-2020 08:45 PM
PROGRAM_B is not tied to any other IO on the FPGA, so it looks like you can only pull it down via the pushbutton. See https://reference.digilentinc.com/_media/reference/programmable-logic/basys-3/basys-3_sch.pdf. If digilent had connected it to another output pin, you could pulse it low, at least in theory.
Or, if there is another output available, you could bring a jumper wire from an FPGA output to the PCB net tied to PROGRAM_B, and then make that output tri-state, drive the output low when you want to rest the fpga and have it reconfigured.
Alternatively, you could look at instantiating an ICAPE2 primitive (see UG768 in DocNav) and sending an IPROG command to reconfigure the device, but that will take a certain amount of expertise. See UG470, UG953, and UG768, again in DocNav.
Or you could acquire an external device that can power cycle the card. You can control that device via usb, ethernet, or wifi.
Or you could purchase a servo to control a rod that pushes the pushbutton.
All would require some trial and error.
09-18-2020 12:28 AM
Thanks for your reply.
Also, thank you for the many reference pages.
They are very informative for me.
I'm going to read it carefully!!!
I felt that the method of controlling the stick to press the push button was forced but safe and fast.
I found the method of using the ICAPE2 and an IPROG command to be difficult for me.
I will experiment with it through trial and error.