To create a project, use the New Project wizard to name the project, add RTL source files
and constraints, and specify the target device.
- Invoke the Vivado IDE.
- In the Quick Start tab, click Create Project to start the New Project wizard. Click Next.
- In the Project Name page, name the new project jtag_2_axi_tutorial and provide the project location (C:/jtag_2_axi_tutorial). Ensure that Create Project Subdirectory is selected. Click Next.
- In the Project Type page, specify the Type of Project to create as RTL Project. Ensure that Do not specify sources at this time is checked. Click Next.
- In the Default Part page, choose Boards and the
Kintex 7 KC705 Evaluation Platform. Click
Next.
- In the New Project Summary page, click Finish.
- In the leftmost panel of the Flow Navigator, under Project Manager, click
Create Block Diagram. A dialog box
appears that allows you to specify a block diagram name. You can choose to
specify a custom name or take the default. Click OK.
- In the far right of the window is an empty block diagram design window
labeled Diagram. Click the + sign in the middle of the pane or the + toolbar
button to bring up a search window. In the Search field, type “JTAG to AXI” and
double-click it to add the JTAG to AXI Master to the block diagram.
- The JTAG to AXI Master core appears on the IP integrator canvas.
Double-click the core to view the Customization dialog. Review the available
settings and click OK to accept the
default core settings.
- Following the same process from the previous step, add the additional IP to the block diagram: AXI BRAM controller and Block Memory Generator. This creates a design using a simple AXI infrastructure to create AXI transactions that demonstrate the debugging capabilities of the System ILA core.
- Before continuing. You need to customize AXI BRAM Controller and Block
Memory Generator. Begin by locating the AXI BRAM Controller in the block diagram
canvas and double-clicking on it. This invokes the Customization Dialog for the
IP. Locate the Number of BRAM interfaces and set the value to 1. Click
OK.
- Next, locate the Block Memory Generator in the block diagram and
double-click as in the previous step to invoke the Customization dialog. Clear
Enable Safety Circuit check box. Click OK.
- At this point, the design should look like the following figure.
- Notice the green banner indicating that Designer Assistance is available at
the top of the block diagram canvas. Click the Run
Connection Automation button on this banner. When the Connection
Automation window appears, click the radio button for All Automation, and click
OK.
- The Clocking Wizard and Processor System Reset and an AXI SmartConnect, are
auto-inserted into the design. Note: The Clocking Wizard clock and reset inputs are disconnected, and the Run Connection Automation banner persists. These inputs are connected to physical input ports on the FPGA and wired to buttons on the KC705 board through the customization of the Clocking Wizard.
- Invoke the Customization Dialog for the Clocking Wizard by double-clicking
the IP in the block diagram canvas. When the dialog appears, set
CLKIN_1
tosys_diff_clk
andEXT_RESET¬_IN
to reset. Click OK.Note: Adding constraints for these ports is unnecessary because the project is generated using an evaluation board as the target, and the IP allows the constraint information to be selected with thesys_diff_clk
.
- Locate the green banner indicating that Designer Assistance is Available and click Run Connection Automation. When the Run Connection Automation dialog appears, select the button for All Automation. Click OK.
- Now,
sys_diff_clk
and reset are connected to external ports. Examine the connectivity of the design and it might be necessary to monitor AXI transactions between the JTAG to AXI master and the AXI BRAM Controller slave. This is possible if a System ILA is added to probe the AXI bus between the AXI BRAM Controller and the JTAG to the AXI master.
- To add a System ILA to the design, click the Add IP (+) button as in the
previous steps. Search for System ILA and double-click to add it to the block
diagram. When it appears in the block diagram canvas, double-click on it to
invoke the Customization Dialog. Ensure that both Capture Control and Advanced
Trigger are selected. Also, set the Number of Comparators to the value 3. Click
OK.
- Connect the System ILA
SLOT_0_AXI
port and theS_AXI
port on the AXI BRAM Controller. Do this by clicking on theSLOT_0_AXI
port and clicking again on theS_AXI
port on the AXI BRAM Controller.
- When the Run Connection Automation banner appears, click it and select
All Automation. Click OK. Note: The clk and resetn ports on the System ILA are connected to the AXI clock and the AXI reset.
- In the upper left side of the Vivado IDE, click . Select in the same menu to close the block design.
- In the sources window, right-click on design_1 block design and select Create HDL Wrapper. Allow Vivado IDE to manage the wrapper, and click OK.
- In the Flow Navigator on the left side of the Vivado IDE, click Generate Bitstream.
- Click OK to implement the design.
- Wait until the Vivado Status window shows write_bitstream complete.
- In the Bitstream Generation Completed dialog, select Open Hardware Manager, and click OK.