05-31-2019 05:13 AM - edited 05-31-2019 05:49 AM
Following various Xilinx tutorials, I've created a custom IP block that performs a modular exponentiation function through the Vivado wizard. Rather than run the math function at the S_AXI_ACLK frequency, I want to have a separate clock input so I can run it at a frequency of my choosing separate from the AXI_ACLK rate.
Hazving created the IP block, my Sources window shows:
mod_exp_function_v1_0.v which instances mod_exp_function_v1_0_S00_AXI.v
In the S00_AXI.v instance, I added a port input wire i_clk_mod_exp and then I added my logic.
In the mod_exp_function_v1_0_S00_AXI.v file, I added the same port, and then I connected it to my instance:
I synthesized with no errors and packaged the IP. However, my i_clk_mod_exp port is not listed as one of the ports on the "Ports and Interfaces" packaging step, nor does it show up in the Customization GUI page. Furthermore, if I exit the IP editor and place my IP block on my main block diagram, this clock port isn't visible.
I've searched online for other reports of this, the only answer I found in the forum was that it has to be declared as a wire, but as you can see above I did declare mine as a wire. Can someone point me in the right direction? thanks in advance
06-03-2019 04:02 AM
I have an update on this....I eventually got the port to show up, but only after I went to the port customization tab and then clicked "import IP ports". This became a big headache as I have to re-import even all the default AXI ports that were created by default when I made a new IP and assign them accordingly.
I was following a digilent tutorial (https://bit.ly/2IdbMDd), but in their example, simply adding the ports to the RTL caused them to show up in the symbol. Is there any reason the 'import' step was necessary for me? Is there any Xilinx tutorial where a port is added (so far I haven't found one)?
Thanks in advance...