Professional Documents
Culture Documents
Zynq
Vivado HLS 2015.2 Version
This material exempt per Department of Commerce license exception TSU © Copyright 2015 Xilinx
Objectives
1. Launch Vivado
2. Invoke IP Integrator to
3. Configure PS settings create Block Diagram
4. Add IP & configure 5. Generate output products 11. Create software platform
6. Generate Top-Level HDL 12. Create and build
7. Add Constraints Application project => .elf
Hardware Configuration 8. Generate Bitstream => .bit
IP Integrator 9. Export hardware
10. Launch SDK
Vivado SDK
ZedBoard
+
}
CE
WE
Pointer or
Scalar Array
Native AXI Interfaces Argument Type
pass-by-value pass-by-reference
Reference
pass-by-reference
– AXI4 Slave Lite and AXI4 Master supported Interface Mode Input Return I IO O I IO O
ap_ctrl_none
by INTERFACE directive ap_ctrl_hs D
ap_ctrl_chain
– Provided in RTL after Synthesis axis
axis
s_axilite
s_axilite
– Supported by C/RTL Co-simulation m_axi
m_axi
ap_none D D
– Supported for Verilog and VHDL ap_stable
ap_ack
BRAM Memory Interface ap_vld D
ap_ovld D
– Identical IO protocol to ap_memory ap_hs
ap_memory D D D
– Bundled differently in IP Integrator bram
bram
ap_fifo
• Provides easier integration to memories with ap_bus
BRAM interface Supported. D = Default Interface Not Supported
Grouped Ports
– Default mode is ap_none for input ports
– Default mode is ap_vld for output ports
– Default mode ap_ctrl_hs for function (return port)
– Default mode can be changed with additional INTERFACE
directives void example(char *a, char *b, char *c)
{
#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=c bundle=BUS_A
#pragma HLS INTERFACE ap_hs port=a
#pragma HLS INTERFACE ap_vld port=b
#pragma HLS INTERFACE ap_none port=c register
Point IP Catalog to
point to the ip directory
Vivado HLS provides wide support of AXI interfaces, System Generator design, and
Pcore for EDK
– Assign as an external resource, just like a RAM
– The choice of adapter is a function of the C variable type (pointer, etc.)
Start with the correct C argument type
– Verify the design at the C level
– Accept the default block-level I/O protocol
– Select the port-level I/O protocol that gives the required pcore adapter interface
– Specify the port to have the appropriate adapter using INTERFACE directive
– Optionally group and rename ports
Export the design
Add the IP in Vivado’s IP Integrator