I am using Vivado 2014.3.1.
I have a 32 bit wide output-only AXI GPIO port routed to my Verilog top module by instantiation. I used the IP Integrator to create the AXI GPIO peripheral and made the GPIO port external. It appears to be functioning as I can send bit values from the PS to turn on or off LEDs that are connected to the PL of the Zedboard. But, this only works if the registers are written to in the top module.
If I route the signal from the AXI GPIO port to a different module as follows:
Register the AXI GPIO output from the PS into the top module.->
Place the name of the register attached to the AXI GPIO into the instantiation for the module to which I want to send the signal.
Then no signal reaches the module where the signal is needed. This is true whether the signal is connected to an LED or my logic->DAC. No error messages indicate that the registers are trimmed as I have set
(* dont_touch = "true" *) to prevent trimming of these connections.
Creating a wire and using an assign statement between the register that is connected to the AXI GPIO port and the instantiation for the module in which the signal is needed produces a warning indicating that the wire has no driver and that, as a result, the register in the module where I need to use the information has the un-driven pin tied to 0.
Is there a list of rules as to how to route signals originating in the PS that I have missed?
Any suggestions will be appreciated.
Thank you,
Aaron