SNAP Design Capture Overview
SNAP Design Capture Overview
Tool
Tool Bar
Bar
Design
Design
SNAP
SNAP Window
Window
Components
Components
Configuration
Configuration Quick
Quick
Tabs
Tabs Help
Help
SNAP Design Capture
Overview
■ In this demonstration, we will create a simple SNAP instance
with the following elements:
o 2 Hubs
o One AHB Layer
o One AXI initiator
o One OCP initiator
o One AHB branch
o One AHB target
o One APB branch
o One APB target
o One AXI target
o One OCP target
SNAP Design Capture
Creation methodology:
■ The preferred way to create your SNAP instance is to define
its topology first, by creating the desired SNAP components in
the design window: Hubs, Layers, Branches, Initiator and
Targets.
■ Once the topology is defined, you will refine your
configuration step by step, using each of the configuration
Tabs, in the left to right order: Connections, Performances &
QoS, Pipelining, Address Map, Sockets, Clocks.
SNAP Design Capture
Create the file name and name your design
■ Go to the File / Properties menu, and enter:
o Design Name: snap_lab
o Design Identifier LAB1
o Click ‘OK’
SNAP Design Capture
Create the hubs
■ [NOTE]
o At startup, the tool creates a “default design” with one Hub, one AHB Layer and one
AHB branch. This “default design” has been chosen because it is expected that most
SNAP design will have at least these three elements, but, if this is not the case it is
possible and easy to change it.
■ Since our example has 2 hubs, let’s add a Hub to this “default design” first:
o Right click on Hub1 body, and select Add Hub.
o A new Hub named Hub2 appear on the right of the existing Hub, with automatically
created AHB layer and branch.
SNAP Design Capture
Creating the hubs
■ Rename Hubs to give them a
meaningful name
o For instance, let’s consider one Hub
will connect a CPU and the slaves it
accesses most frequently;
o The other Hub will connect a DSP, and
the slaves it accesses most frequently:
■ Right-click on Hub1 body, and select
Rename Hub. Rename the Hub
CPU_XB.
■ Right-click on Hub2 body, and select
Rename Hub. Rename the Hub
DSP_XB.
SNAP Design Capture
Next, we need create the Layers, Branches, Initiator port and
Target port that will be attached to our hubs.
■ On our Hub named CPU_XB we want to have:
o One AHB Layer for 4 DMA AHB masters ports: DMA0, DMA1, DMA2,
DMA3
o One AXI initiator for a CPU master port: CPU0
o One AHB branch for 4 peripheral slave ports: UART, SPI, I2C, TIMER
o One AHB slave for a static memory slave port: SRAM
■ On our Hub named DSP_XB we want to have:
o One OCP initiator for a DSP master port: DSP0
o One APB branch for 4 peripheral slave ports: GPIO0, GPIO1, INTC,
CRYPTO
o One APB slave for a configuration port: DMACONFIG
o One AXI slave for a dynamic memory slave port: DDRC
o One OCP slave for a read-only memory slave port: ROM
SNAP Design Capture
Let’s rename / modify some
of the pre-existing
components
■ Right-click on layer1 body,
and select Rename Layer.
Rename the Layer DMA.
■ Right-click on branch1 body,
and select Rename Branch.
Rename the Branch
CPU_PERI.
■ Right-click on layer2 body,
and select Delete Layer.
■ Right-click on branch2 body,
and select Rename Branch.
Rename the Branch
DSP_PERI.
■ In the drop-down menu of
the DSP_PERI branch,
select APB as the protocol.
■ The top row in light green is the “template”. This function allows a user to
modify the template, and then use cut & paste operations to quickly modify all
the sockets in a uniform way.
SNAP Design Capture
Configure each interface
■ For our example, we’ll use the Green template line to modify
our AHB slaves
o In the template line, use the “arrow” to configure an Address Width
= 10.
o Right-click in the area in the Slave column, template row, and
select “Copy”.
o Right-click on each Slave name, and select “Paste”.
SNAP Design Capture
Configure each interface
■ All slaves shall have the same address width now (10 bits).
■ Now that you have now successfully captured your own design
using the SNAP Capture tool you may want to submit it for
evaluation and RTL generation. You can find a tutorial on
evaluating a design here:
o http://www.sonicsinc.com/snap-help.htm
■ Please visit our SNAP support page for more tutorials
including:
o SNAP Registration and Download
o SNAP Installation and Configuration
o SNAP Design Capture Overview
o SNAP Evaluation and RTL Generation
o And more…