Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
learn:programmable-logic:tutorials:vivado-hierarchical-blocks:start [2020/01/09 23:51] – [Baremetal Software] Arthur Brownlearn:programmable-logic:tutorials:vivado-hierarchical-blocks:start [2020/01/10 04:27] – [Baremetal Software] Arthur Brown
Line 12: Line 12:
 ===== Guide ===== ===== Guide =====
 ==== Download the Vivado Hierarchies Repository and Dependencies ==== ==== Download the Vivado Hierarchies Repository and Dependencies ====
 +=== 1. ===
 <WRAP GROUP> <WRAP COLUMN HALF> <WRAP GROUP> <WRAP COLUMN HALF>
 Clone Digilent's [[https://github.com/digilent/vivado-hierarchies|vivado-hierarchies]] repository. Since the repository uses submodules to bring in the IPs contained in Digilent's [[https://github.com/digilent/vivado-library|vivado-library]] repository, the `--recursive` flag should be used while cloning. Alternatively, after cloning, the submodules can be initialized and updated. Both of these flows are detailed below: Clone Digilent's [[https://github.com/digilent/vivado-hierarchies|vivado-hierarchies]] repository. Since the repository uses submodules to bring in the IPs contained in Digilent's [[https://github.com/digilent/vivado-library|vivado-library]] repository, the `--recursive` flag should be used while cloning. Alternatively, after cloning, the submodules can be initialized and updated. Both of these flows are detailed below:
Line 28: Line 29:
 {{:learn:programmable-logic:tutorials:vivado-hierarchical-blocks:git.png?600|}} {{:learn:programmable-logic:tutorials:vivado-hierarchical-blocks:git.png?600|}}
 </WRAP> </WRAP> </WRAP> </WRAP>
 +
 +=== 2. ===
 +**Note**: If using a hierarchies for a Pmod, this step should be skipped.
 +
 +At time of writing, Zmod Hierarchies are still a work in progress. As such, their sources in the vivado-library repository on placed on a feature **branch**. In order to ensure that their sources are picked up, the appropriate branch must be checked out as below:
 +
 +<code>cd <vivado-hierarchies>/repo/vivado-library
 +git checkout feature/zmod-support</code>
 +
 ---- ----
 ==== Adding a Hierarchical Block to a Hardware Design ==== ==== Adding a Hierarchical Block to a Hardware Design ====
Line 104: Line 114:
 ---- ----
 == 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 [[reference:zmod:start|Zmod]] or a [[reference:pmod:start|Pmod]]. Select the dropdown for the chosen peripheral:
  
 --> Pmod# --> Pmod#
Line 131: Line 141:
  
 --> 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: "ZmodADC_0_ZmodADC.xdc". The constraint file can be found under the Constraints section of Vivado IP Integrato's Sources pane. 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: "ZmodADC_0_ZmodADC.xdc". The constraint file can be found under the Constraints section of Vivado IP Integrato's Sources pane.
  
Line 136: Line 148:
  
 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's master XDC file, which can be obtained through the [[https://github.com/digilent/digilent-xdc|digilent-xdc]] repository on GitHub. 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's master XDC file, which can be obtained through the [[https://github.com/digilent/digilent-xdc|digilent-xdc]] repository on GitHub.
 +</WRAP> <WRAP COLUMN HALF>
 +{{:learn:programmable-logic:tutorials:vivado-hierarchical-blocks:zmod_constraint.png?600|}}
 +</WRAP> </WRAP>
 +
 <-- <--
  
Line 150: Line 166:
 ==== 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:zmodbaselibraryuserguide|Zmod Base Library User Guide]], and skip the rest of this guide.+Zmod Hierarchical Blocks are supported in software by the Zmod Library. If using a Zmod, see the [[reference:zmod:zmodbaselibraryuserguide|Zmod Base Library User Guide]], and skip the rest of this guide. If Petalinux support for the added hierarchy is desired, first see the [[reference:eclypse-z7:customizing-zmods-os|Zmod Petalinux Configuration Guide]]
 </WRAP> </WRAP>