To configure the PL IPs used in this design example, follow these steps.
Right-click the block diagram and select Add IP from the IP catalog.
Search for AXI GPIO and double-click the AXI GPIO IP to add four instance of IP into the design.
Search for AXI Uartlite in the IP catalog and add it into the design.
Click Run Connection Automation in the Block Design view.
The Run Connection Automation dialog box opens.
In the Run Connection Automation dialog box, select the All Automation check box.
This checks the automation for all the ports of the AXI GPIO IP.
Click GPIO of
axi_gpio_0and set the Select Board Part Interface to Custom as shown below.Click S_AXI of
axi_gpio_0. Set the configurations as shown in the following figure.Repeat steps 6 and 7 for
axi_gpio_1,axi_gpio_2, andaxi_gpio_3.Click S_AXI of
axi_uartlite_0. Set the configurations as shown in the following figure.Click UART of
axi_uartlite_0. Set the configurations as shown in the following figure.
Click OK.
This configuration sets the following connections:
Connects the
S_AXI of AXI_GPIOand AXI UART lite toM_AXI_FPDof CIPS with SmartConnect as a bridge IP between CIPS and AXI GPIO IPs.Enables the processor system reset IP.
Connects the
pl0_ref_clkto the processor system reset, AXI GPIO, and the SmartConnect IP clocks.Connects the reset of the SmartConnect and AXI GPIO to the
peripheral_aresetnof the processor system reset IP.
Click Run Connection Automation in the block design window and select the All Automation check box.
Click ext_reset_in and configure the setting as shown below.
This connects the ext_reset_in of the processor system reset IP to the pl_resetn of the CIPS.
Click OK.
Disconnect the aresetn of SmartConnect IP from
peripheral_aresetnof processor system reset IP.Connect the aresetn of SmartConnect IP to
interconnect_aresetnof processor system reset IP.
Double-click the axi_gpio_0 IP to open it.
Go to the IP Configuration tab, and configure the settings as shown in the following figure.
Make the same setting for
axi_gpio_1,axi_gpio_2, andaxi_gpio_3.Delete the external pins of the
axi_gpio_0IP and expand the interface.Make the output of
axi_gpio_0IP as External.Right-click the external port of
axi_gpio_0IP and select External Port Properties and rename as Dout_0.
Repeat step 21 to step 23 for
axi_gpio_1,axi_gpio_2, andaxi_gpio_3and rename as Dout_1, Dout_2, and Dout_3, respectively.Add three instances of AXI Register Slice IP to be placed on SLR-1, SLR-2, and SLR-3.
Right-click a Register Slice IP and select Block Properties and rename as axi_register_slice_1_s2 as shown below.
Double-click the AXI Register Slice IP, and set Protocol as AXI4LITE by setting it as manual as shown below.
Repeat step 26 and 27 for the second and third instances of AXI Register Slice IP and rename as
axi_register_slice_2_s2andaxi_register_slice_3_s2, respectively.
Note
axi_register_slice_1_s2, axi_register_slice_2_s2, and axi_register_slice_3_s2 are placed to SLR-1, SLR-2, and SLR-3, respectively using the constraints file provided as part of the package in the ``pl_gpio_uart/constrs` folder.
SLR Crossing from SLR-0 to SLR-1
Note
SLR crossing registers are added to improve timing closure and alleviate routing congestion of long resources.
Add two instances of AXI Register Slice IP to handle the SLR crossing from SLR-0 to SLR-1.
Right-click the Register Slice IP and select Block Properties and rename as
axi_register_slice_1_s1.Double-click the Register Slice IP and set the Register Slice Option as SLR Crossing as shown below.
Repeat step 30 and step 31 for the second instance of AXI Register Slice IP and rename as
axi_register_slice_1_s3.
SLR Crossing from SLR-0 to SLR-2
Similarly add two instances of AXI Register Slice IP to handle the multi SLR crossing from SLR-0 to SLR-2.
Right-click a Register Slice IP and select Block Properties and rename as
axi_register_slice_2_s1.Double-click a Register Slice IP and set the Register Slice Option as Multi SLR Crossing as shown below.
Open SLR Crossing tab, and set Number of SLR Crossing as 2 as shown below.
Repeat step 34, step 35, and step 36 for the second instance of AXI Register Slice IP and rename as
axi_register_slice_2_s3.
SLR Crossing from SLR-0 to SLR-3
Similarly add two instances of AXI Register Slice IP to handle the SLR crossing from SLR-0 to SLR-3.
Right-click a Register Slice IP and select Block Properties and rename as
axi_register_slice_3_s1.Double-click a Register Slice IP and set the Register Slice Option as Multi SLR Crossing as shown below.
Open SLR Crossing tab, and set Number of SLR Crossing as 3 as shown below.
Repeat step 39, step 40, and step 41 for the second instance of the AXI Register Slice IP and rename as
axi_register_slice_3_s3.Disconnect axi_gpio_0 , axi_gpio_1 , axi_gpio_2 and axi_gpio_3 from AXI smart connect and connect the register slices as shown below.
Click Run Connection Automation in the Block Design view. Select
aclkof all register slices and click OK.Double-click axi_uartlite_0 to open the IP. Go to the IP Configuration tab and configure the settings as shown in the following figure.
Add Clock Wizard IP. Double-click to open the IP.
Go to Clocking Features tab and set the configuration as shown below:
Make sure the Source option in Input Clock Information is set to Global buffer.
Go to Output clocks tab and configure the output clock as 250 MHz as follows:
Right-click
pl0_ref_clkof CIPS and click Disconnect Pin.Connect the
pl0_ref_clkfrom CIPS to inputclk_in1of the Clocking wizard.Connect the output of clocking wizard to
slowest_sync_clockof Processor System Reset IP.This helps in avoiding timing failure.
The overall block design is shown in the following figure: