Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| learn:programmable-logic:tutorials:vivado-hierarchical-blocks:start [2020/01/09 23:51] – [Baremetal Software] Arthur Brown | learn:programmable-logic:tutorials:vivado-hierarchical-blocks:start [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| ===== Guide ===== | ===== Guide ===== | ||
| - | ==== Download the Vivado Hierarchies Repository and Dependencies ==== | + | ==== Setting Up Dependencies ==== |
| - | <WRAP GROUP> <WRAP COLUMN HALF> | + | |
| - | Clone Digilent' | + | |
| - | **Note**: //In order to clone,// [[https:// | + | Check if vivado-library is already included in the Vivado project, if it is not, then it should |
| - | == Option | + | {{https:// |
| - | < | + | |
| + | Those familiar with git may want to clone the hierarchies rather than download a ZIP. The dropdown below contains brief instructions. | ||
| + | |||
| + | --> Using git to clone the hierarchies # | ||
| + | < | ||
| + | cd (somewhere memorable) | ||
| + | git clone https:// | ||
| + | </ | ||
| + | |||
| + | Otherwise (if vivado-library is included in the project), use git tools to check out the branch: | ||
| + | |||
| + | **Warning!** //If IP from the library are already included in the project, checking out a different branch may cause changes to them. Be careful!// | ||
| + | |||
| + | Note that the " | ||
| + | |||
| + | < | ||
| + | cd (path)/ | ||
| + | git checkout | ||
| + | </ | ||
| + | <-- | ||
| - | == Option 2. Clone, Initialize, and Update == | ||
| - | < | ||
| - | cd vivado-hierarchies | ||
| - | git submodule init | ||
| - | git submodule update</ | ||
| - | </ | ||
| - | {{: | ||
| - | </ | ||
| ---- | ---- | ||
| ==== Adding a Hierarchical Block to a Hardware Design ==== | ==== Adding a Hierarchical Block to a Hardware Design ==== | ||
| Line 45: | Line 54: | ||
| <WRAP GROUP> <WRAP COLUMN HALF> | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| === 2. === | === 2. === | ||
| - | In Vivado' | + | In Vivado' |
| When the script is finished running, the block design will contain a // | When the script is finished running, the block design will contain a // | ||
| Line 56: | Line 65: | ||
| <WRAP GROUP> <WRAP COLUMN HALF> | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| === 3. === | === 3. === | ||
| - | Check the README.txt file, found in the hierarchical block' | + | Check the README.txt file, which can be found in the hierarchical block' |
| - Connect all of the hierarchical block' | - Connect all of the hierarchical block' | ||
| - Connect any interrupts the Hierarchy may have to the appropriate interrupt controller: an AXI Interrupt Controller IP (for Microblaze designs), the Zynq Processing System' | - Connect any interrupts the Hierarchy may have to the appropriate interrupt controller: an AXI Interrupt Controller IP (for Microblaze designs), the Zynq Processing System' | ||
| Line 104: | Line 113: | ||
| ---- | ---- | ||
| == 4.3 - Constraining the Design == | == 4.3 - Constraining the Design == | ||
| - | This step works a little differently depending on whether the peripheral targeted by the hierarchical block is a [[reference:zmod|Zmod]] or a [[reference:pmod|Pmod]]. Select the dropdown for the chosen peripheral: | + | This step works a little differently depending on whether the peripheral targeted by the hierarchical block is a [[zmod:start|Zmod]] or a [[pmod:start|Pmod]]. Select the dropdown for the chosen peripheral: |
| --> Pmod# | --> Pmod# | ||
| <WRAP GROUP> <WRAP COLUMN HALF> | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| - | If the **Board Flow** was chosen, open the README.txt file in the hierarchical block' | + | If the **Board Flow** was chosen, open the README.txt file in the hierarchical block' |
| When the Hierarchy was created, a constraint file, named " | When the Hierarchy was created, a constraint file, named " | ||
| Line 131: | Line 140: | ||
| --> Zmod# | --> Zmod# | ||
| + | |||
| + | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| When create_hier.tcl is run for a Zmod Hierarchical Block, a constraint file is imported which contains template constraints for each external port created by the script. The constraint file is named after the hierarchical block created by the script, followed by the name of the particular Zmod, for example: " | When create_hier.tcl is run for a Zmod Hierarchical Block, a constraint file is imported which contains template constraints for each external port created by the script. The constraint file is named after the hierarchical block created by the script, followed by the name of the particular Zmod, for example: " | ||
| Line 136: | Line 147: | ||
| For other boards, the user must replace the PACKAGE_PIN location constraints for the Zmod ports with the corresponding locations found in the chosen board' | For other boards, the user must replace the PACKAGE_PIN location constraints for the Zmod ports with the corresponding locations found in the chosen board' | ||
| + | </ | ||
| + | {{: | ||
| + | </ | ||
| + | |||
| <-- | <-- | ||
| Line 150: | Line 165: | ||
| ==== Baremetal Software ==== | ==== Baremetal Software ==== | ||
| <WRAP round center important 660px> | <WRAP round center important 660px> | ||
| - | Zmod Hierarchical Blocks are supported in software by the Zmod Library. If using a Zmod, see the [[reference:zmod: | + | Zmod Hierarchical Blocks are supported in software by the Zmod Library. If using a Zmod, see the [[zmod: |
| </ | </ | ||
| Line 173: | Line 188: | ||
| <WRAP GROUP> <WRAP COLUMN HALF> | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| === 3. === | === 3. === | ||
| - | Create a new application project using the "Empty Application" | + | Create a new application project using the "Empty Application" |
| </ | </ | ||
| {{ : | {{ : | ||
| Line 182: | Line 197: | ||
| <WRAP GROUP> <WRAP COLUMN HALF> | <WRAP GROUP> <WRAP COLUMN HALF> | ||
| === 4. === | === 4. === | ||
| - | Copy all of the files from the selected hierarchical block' | + | Copy all of the files from the selected hierarchical block' |
| </ | </ | ||
| {{ : | {{ : | ||
| Line 218: | Line 233: | ||
| The SDK sources provided with the hierarchical blocks are set up such that they can be easily included in any design using that block. The subfolder below sdk_sources contains all necessary drivers for the block. | The SDK sources provided with the hierarchical blocks are set up such that they can be easily included in any design using that block. The subfolder below sdk_sources contains all necessary drivers for the block. | ||
| - | For more reference materials and guides on the Digilent products being used, navigate to their resource centers, here on the [[:start: | + | For more reference materials and guides on the Digilent products being used, navigate to their resource centers, here on the [[start: |
| For technical support, please visit the [[https:// | For technical support, please visit the [[https:// | ||
| {{tag> | {{tag> | ||

