Open main menu

DAVE Developer's Wiki β

Difference between revisions of "DESK-XZ7-L/Development/Creating and building the Vivado project"

< DESK-XZ7-L
 
(5 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|2022/11/15
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|{{oldid|18740|2022/11/15}}
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.0.0-rc1 release
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.0.0-rc1 release
 
|-
 
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|2024/01/25
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|{{oldid|19956|2024/01/25}}
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.0.1 release
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.0.1 release
 +
|-
 +
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|2024/05/20
 +
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.1.0 release
 
|-
 
|-
 
|}
 
|}
Line 16: Line 19:
 
__FORCETOC__
 
__FORCETOC__
 
<section begin=Body/>
 
<section begin=Body/>
 +
 +
{{ImportantMessage|text=Vivado installation path, in this documentation, is the <code>/opt</code> directory. If you have chosen a different one, set it properly. The commands reported here below have been used on a native server running Ubuntu 20.04.}}
 +
  
 
== Creating and building the Vivado project ==
 
== Creating and building the Vivado project ==
Line 31: Line 37:
 
| <code>recreate_prj_bora.tcl</code>
 
| <code>recreate_prj_bora.tcl</code>
 
| uSD and QSPI-NOR
 
| uSD and QSPI-NOR
 +
|-
 +
| <code>recreate_prj_bora_ETH1.tcl</code>
 +
| uSD and QSPI-NOR with ETH1 support
 
|-
 
|-
 
| <code>recreate_prj_borax_BASE.tcl</code>
 
| <code>recreate_prj_borax_BASE.tcl</code>
 
| uSD and QSPI-NOR
 
| uSD and QSPI-NOR
 +
|-
 +
| <code>recreate_prj_borax_ETH1.tcl</code>
 +
| uSD and QSPI-NOR with ETH1 support
 
|-
 
|-
 
| <code>recreate_prj_boralite_BASE.tcl</code>
 
| <code>recreate_prj_boralite_BASE.tcl</code>
Line 45: Line 57:
 
* clone the repository:
 
* clone the repository:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
git clone git@git.dave.eu:desk-xz-l/vivado.git -b desk-xz7-l-1.0.1
+
git clone git@git.dave.eu:desk-xz-l/vivado.git -b desk-xz7-l-1.1.0
 
cd vivado
 
cd vivado
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 52: Line 64:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
git clone --recursive git@git.dave.eu:desk-xz-l/petalinux.git -b desk-xz7-l-1.0.1
+
git clone --recursive git@git.dave.eu:desk-xz-l/petalinux.git -b desk-xz7-l-1.1.0
 
cd petalinux/vivado
 
cd petalinux/vivado
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 58: Line 70:
 
* (only once as first tools setup) copy ''Bora'' hardware definition into Vivado installation path:
 
* (only once as first tools setup) copy ''Bora'' hardware definition into Vivado installation path:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
cp -r boards/ /opt/Xilinx/2021.2/Vivado/2021.2/data/
+
cp -r boards/ <vivado directory installation>/Xilinx/2021.2/Vivado/2021.2/data/
 
</syntaxhighlight>
 
</syntaxhighlight>
 
* lunch Vivado Design Suite with the following commands and parameters:
 
* lunch Vivado Design Suite with the following commands and parameters:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
source /opt/Xilinx/2021.2/Vivado/2021.2/settings64.sh
+
source <vivado directory installation>/Xilinx/2021.2/Vivado/2021.2/settings64.sh
 
vivado -mode tcl -source scripts/recreate_prj_bora_BASE.tcl -notrace -tclargs "gen_bitstream"
 
vivado -mode tcl -source scripts/recreate_prj_bora_BASE.tcl -notrace -tclargs "gen_bitstream"
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 71: Line 83:
 
*** <code>vivado/bora.runs/impl_1/bora_wrapper.bin</code>
 
*** <code>vivado/bora.runs/impl_1/bora_wrapper.bin</code>
 
** the hardware design file <code>vivado/bora.xsa</code> is ready for the import into Petalinux
 
** the hardware design file <code>vivado/bora.xsa</code> is ready for the import into Petalinux
 +
 +
=== CAN0 and UART0 routing example project ===
 +
 +
The following pictures show a simple PL design used to route PS' CAN0 and UART0 signals through EMIO.
 +
 +
[[File:Belk-default-vivado-project.png|thumb|center|400px|Block diagram of BORA example project]]
 +
[[File:Belk-borax-default-vivado-project.png|thumb|center|400px|Block diagram of BORA Xpress example project]]
 +
[[File:Boralite-default-vivado-project.png|thumb|center|400px|Block diagram of BORA Lite example project]]
  
 
<section end=Body/>
 
<section end=Body/>
  
 
[[Category:BORA]] [[Category:BORA Xpress]][[Category:BORA Lite]]
 
[[Category:BORA]] [[Category:BORA Xpress]][[Category:BORA Lite]]

Latest revision as of 12:46, 17 May 2024

History
Issue Date Notes

2022/11/15

DESK-XZ7-L-1.0.0-rc1 release

2024/01/25

DESK-XZ7-L-1.0.1 release
2024/05/20 DESK-XZ7-L-1.1.0 release



200px-Emblem-important.svg.png

Vivado installation path, in this documentation, is the /opt directory. If you have chosen a different one, set it properly. The commands reported here below have been used on a native server running Ubuntu 20.04.


Contents

Creating and building the Vivado projectEdit

The Vivado repository allows to:

  • track hardware/fpga related sources/configuration
  • reproduce hardware design output (FPGA bitstream, XSA) using TCL scripts

Development kit TCL scripts supported are the following one:

Script Boot
recreate_prj_bora.tcl uSD and QSPI-NOR
recreate_prj_bora_ETH1.tcl uSD and QSPI-NOR with ETH1 support
recreate_prj_borax_BASE.tcl uSD and QSPI-NOR
recreate_prj_borax_ETH1.tcl uSD and QSPI-NOR with ETH1 support
recreate_prj_boralite_BASE.tcl uSD and QSPI-NOR
recreate_prj_boralite_NAND.tcl uSD and NAND

As an example, to reproduce the build for the Bora platform, here below are the steps:

  • clone the repository:
git clone git@git.dave.eu:desk-xz-l/vivado.git -b desk-xz7-l-1.1.0
cd vivado

or clone the Vivado repository when you clone Petalinux repository

git clone --recursive git@git.dave.eu:desk-xz-l/petalinux.git -b desk-xz7-l-1.1.0
cd petalinux/vivado
  • (only once as first tools setup) copy Bora hardware definition into Vivado installation path:
cp -r boards/ <vivado directory installation>/Xilinx/2021.2/Vivado/2021.2/data/
  • lunch Vivado Design Suite with the following commands and parameters:
source <vivado directory installation>/Xilinx/2021.2/Vivado/2021.2/settings64.sh
vivado -mode tcl -source scripts/recreate_prj_bora_BASE.tcl -notrace -tclargs "gen_bitstream"
  • at the end of the bitstream build process, the script automatically exports the Xilinx Support Archive (XSA) hardware design
    • the Vivado project vivado/bora.xpr is ready for customization through the Vivado GUI
    • the bitstream files are
      • vivado/bora.runs/impl_1/bora_wrapper.bit
      • vivado/bora.runs/impl_1/bora_wrapper.bin
    • the hardware design file vivado/bora.xsa is ready for the import into Petalinux

CAN0 and UART0 routing example projectEdit

The following pictures show a simple PL design used to route PS' CAN0 and UART0 signals through EMIO.

 
Block diagram of BORA example project
 
Block diagram of BORA Xpress example project
 
Block diagram of BORA Lite example project