diff options
Diffstat (limited to 'doc/getting/PrecompileVendorPrimitives.rst')
-rw-r--r-- | doc/getting/PrecompileVendorPrimitives.rst | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/doc/getting/PrecompileVendorPrimitives.rst b/doc/getting/PrecompileVendorPrimitives.rst deleted file mode 100644 index 2495055b0..000000000 --- a/doc/getting/PrecompileVendorPrimitives.rst +++ /dev/null @@ -1,380 +0,0 @@ -.. _GETTING:PrecompVendor: - -Precompile Vendor Primitives -############################ - -Vendors like Altera, Lattice and Xilinx have their own simulation libraries, -especially for FPGA primitives, soft and hard macros. These libraries can not -be shipped with *GHDL*, but we offer prepared compile scripts to pre-compile -the vendor libraries, if the vendor tool is present on the computer. There are -also popular simulation and verification libraries like OSVVM [#f1]_, VUnit -[#f2]_ or UVVM [#f3]_, which can be pre-compiled, too. - -The compilation scripts are writen in the shell languages: *PowerShell* for -*Windows* |trade| and *Bash* for *GNU/Linux*. The compile scripts can colorize -the GHDL warning and error lines with the help of `grc/grcat` [#f4]_. - -Supported Vendors Libraries -=========================== - -* Altera/Intel Quartus (13.0 or later): - - * `lpm`, `sgate` - * `altera`, `altera_mf`, `altera_lnsim` - * `arriaii`, `arriaii_pcie_hip`, `arriaiigz` - * `arriav`, `arriavgz`, `arriavgz_pcie_hip` - * `cycloneiv`, `cycloneiv_pcie_hip`, `cycloneive` - * `cyclonev` - * `max`, `maxii`, `maxv` - * `stratixiv`, `stratixiv_pcie_hip` - * `stratixv`, `stratixv_pcie_hip` - * `fiftyfivenm`, `twentynm` - -* Lattice (3.6 or later): - - * `ec` - * `ecp`, `ecp2`, `ecp3`, `ecp5u` - * `lptm`, `lptm2` - * `machxo`, `machxo2`, `machxo3l` - * `sc`, `scm` - * `xp`, `xp2` - -* Xilinx ISE (14.0 or later): - - * `unisim` (incl. `secureip`) - * `unimacro` - * `simprim` (incl. `secureip`) - * `xilinxcorelib` - -* Xilinx Vivado (2014.1 or later): - - * `unisim` (incl. `secureip`) - * `unimacro` - -Supported Simulation and Verification Libraries -=============================================== - -* OSVVM (for VHDL-2008) - - * osvvm - -* VUnit (for VHDL-2008) - - * vunit_lib - -* UVVM (for VHDL-2008) - - * - ---------------------------------------------------------------------- - -Script Configuration -==================== - -The vendor library compile scripts need to know where the used / latest vendor -tool chain is installed. Therefore, the script implement a default installation -directory search as well as environment variable checks. If a vendor tool could -not be detected or the script choses the wrong vendor library source directory, -then it's possible to provide the path via `--source` or `-Source`. - -The generated output is stored relative to the current working directory. The -scripts create a sub-directory for each vendor. The default output directory can -be overwritten by the parameter `--output` or `-Output`. - -To compile all source files with GHDL, the simulator executable is searched in -`PATH`. The found default GHDL executable can be overwritten by setting the -environment variable `GHDL` or by passing the parameter `--ghdl` or `-GHDL` to -the scripts. - -If the vendor library compilation is used very often, we recommend to configure -these parameters in `config.sh` or `config.psm1`, so the command line can be -shortened to the essential parts. - ---------------------------------------------------------------------- - -Compiling on Linux -================== - -* **Step 0 - Configure the scripts (optional)** - See next section for how to configure `config.sh`. - -* **Step 1 - Browse to your simulation working directory** - - .. code-block:: Bash - - $ cd <MySimulationFolder> - ``` - -* **Step 2 - Start the compilation script(s)** - - .. code-block:: Bash - - $ /usr/local/lib/ghdl/vendors/compile-altera.sh --all - $ /usr/local/lib/ghdl/vendors/compile-lattice.sh --all - $ /usr/local/lib/ghdl/vendors/compile-xilinx-ise.sh --all - $ /usr/local/lib/ghdl/vendors/compile-xilinx-vivado.sh --all - $ /usr/local/lib/ghdl/vendors/compile-osvvm.sh --all - $ /usr/local/lib/ghdl/vendors/compile-vunit.sh --all - ``` - - In most cases GHDL is installed into `/usr/local/`. The scripts are - installed into the `lib` directory. - -* **Step 3 - Viewing the result** - This creates vendor directories in your current working directory and - compiles the vendor files into them. - - - .. code-block:: Bash - - $ ls -ahl - ... - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:41 altera - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:42 lattice - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:48 osvvm - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:58 vunit - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:58 xilinx-ise - drwxr-xr-x 2 <user> <group> 56K Nov 30 17:48 xilinx-vivado - ``` - - ---------------------------------------------------------------------- - -Compiling on Windows -==================== - -* **Step 0 - Configure the scripts (optional)** - - See next section for how to configure `config.psm1`. - -* **Step 1 - Browse to your simulation working directory** - - .. code-block:: PowerShell - - PS> cd <MySimulationFolder> - -* **Step 2 - Start the compilation script(s)** - - .. code-block:: PowerShell - - PS> <GHDL>\libraries\vendors\compile-altera.ps1 -All - PS> <GHDL>\libraries\vendors\compile-lattice.ps1 -All - PS> <GHDL>\libraries\vendors\compile-xilinx-ise.ps1 -All - PS> <GHDL>\libraries\vendors\compile-xilinx-vivado.ps1 -All - PS> <GHDL>\libraries\vendors\compile-osvvm.ps1 -All - PS> <GHDL>\libraries\vendors\compile-vunit.ps1 -All - -* **Step 3 - Viewing the result** - This creates vendor directories in your current working directory and - compiles the vendor files into them. - - .. code-block:: PowerShell - - PS> dir - Directory: D:\temp\ghdl - - Mode LastWriteTime Length Name - ---- ------------- ------ ---- - d---- 20.11.2015 19:33 <DIR> altera - d---- 20.11.2015 19:38 <DIR> lattice - d---- 20.11.2015 19:38 <DIR> osvvm - d---- 20.11.2015 19:45 <DIR> vunit_lib - d---- 20.11.2015 19:06 <DIR> xilinx-ise - d---- 20.11.2015 19:40 <DIR> xilinx-vivado - - ---------------------------------------------------------------------- - -Configuration Files -====================== - -For Linux: `config.sh` ----------------------- - -Please open the `config.sh` file and set the dictionary entries for the -installed vendor tools to the appropriate directory to your tool's installation -directories. Use an empty string `""` for not installed tools. - -`config.sh`: - -.. code-block:: Bash - - declare -A InstallationDirectory - InstallationDirectory[AlteraQuartus]="/opt/Altera/16.0" - InstallationDirectory[LatticeDiamond]="/opt/Diamond/3.8_x64" - InstallationDirectory[OSVVM]="/home/<user>/git/GitHub/osvvm" - InstallationDirectory[VUnit]="/home/<user>/git/GitHub/vunit" - InstallationDirectory[XilinxISE]="/opt/Xilinx/14.7" - InstallationDirectory[XilinxVivado]="/opt/Xilinx/Vivado/2016.3" - - -For Windows: `config.psm1` --------------------------- - -Please open the `config.psm1` file and set the dictionary entries for the -installed vendor tools to the appropriate directory to your tool's installation -folder. Use an empty string `""` for not installed tools. - -`config.psm1`: - -.. code-block:: PowerShell - - $InstallationDirectory = @{ - "AlteraQuartus" = "C:\Altera\16.0"; - "LatticeDiamond" = "C:\Lattice\Diamond\3.8_x64"; - "XilinxISE" = "C:\Xilinx\14.7\ISE_DS"; - "XilinxVivado" = "C:\Xilinx\Vivado\2016.3"; - "OSVVM" = "D:\git\GitHub\osvvm"; - "VUnit" = "D:\git\GitHub\vunit" - } - - -Selectable Options for the Bash Scripts: ----------------------------------------- - -*First I should translate the scripts before writing the docu...* - -* Common parameters to most scripts: - - .. code-block:: - - -h --help Print the embedded help page(s). - -c --clean Cleanup directory before analyzing. - -n --no-warnings Don't show warnings. Report errors only. - -s --skip-existing Skip already compiled files (an *.o file exists). - -S --skip-largefiles Don't compile large entities like DSP and PCIe primitives. - -H --halt-on-error Stop compiling if an error occured. - -* `compile-altera.sh` - - Selectable libraries: - - -a --all Compile all libraries, including common libraries, packages and device libraries. - --altera Compile base libraries like 'altera' and 'altera_mf' - --max Compile device libraries for Max CPLDs - --arria Compile device libraries for Arria FPGAs - --cyclone Compile device libraries for Cyclone FPGAs - --stratix Compile device libraries for Stratix FPGAs - Compile options: - - --vhdl93 Compile selected libraries with VHDL-93 (default). - --vhdl2008 Compile selected libraries with VHDL-2008. - -* `compile-xilinx-ise.sh` - - Selectable libraries: - - -a --all Compile all libraries, including common libraries, packages and device libraries. - --unisim Compile the unisim primitives - --unimacro Compile the unimacro macros - --simprim Compile the simprim primitives - --corelib Compile the xilinxcorelib macros - --secureip Compile the secureip primitives - Compile options: - - --vhdl93 Compile selected libraries with VHDL-93 (default). - --vhdl2008 Compile selected libraries with VHDL-2008. - -* `compile-xilinx-vivado.sh` - - Selectable libraries: - - -a --all Compile all libraries, including common libraries, packages and device libraries. - --unisim Compile the unisim primitives - --unimacro Compile the unimacro macros - --secureip Compile the secureip primitives - Compile options: - - --vhdl93 Compile selected libraries with VHDL-93 (default). - --vhdl2008 Compile selected libraries with VHDL-2008. - -* `compile-osvvm.sh` - - Selectable libraries: - - -a --all Compile all. - --osvvm Compile the OSVVM library. - -* `compile-vunit.sh` - - Selectable libraries: - - -a --all Compile all. - --osvvm Compile the VUnit library. - -Selectable Options for the PowerShell Scripts: ----------------------------------------------- - -* Common parameters to all scripts: - - -Help Print the embedded help page(s). - -Clean Cleanup directory before analyzing. - -SuppressWarnings Don't show warnings. Report errors only. - -* `compile-altera.ps1` - - Selectable libraries: - - -All Compile all libraries, including common libraries, packages and device libraries. - -Altera Compile base libraries like 'altera' and 'altera_mf' - -Max Compile device libraries for Max CPLDs - -Arria Compile device libraries for Arria FPGAs - -Cyclone Compile device libraries for Cyclone FPGAs - -Stratix Compile device libraries for Stratix FPGAs - Compile options: - - -VHDL93 Compile selected libraries with VHDL-93 (default). - -VHDL2008 Compile selected libraries with VHDL-2008. - -* `compile-xilinx-ise.ps1` - - Selectable libraries: - - -All Compile all libraries, including common libraries, packages and device libraries. - -Unisim Compile the unisim primitives - -Unimacro Compile the unimacro macros - -Simprim Compile the simprim primitives - -CoreLib Compile the xilinxcorelib macros - -Secureip Compile the secureip primitives - Compile options: - - -VHDL93 Compile selected libraries with VHDL-93 (default). - -VHDL2008 Compile selected libraries with VHDL-2008. - -* `compile-xilinx-vivado.ps1` - - Selectable libraries: - - -All Compile all libraries, including common libraries, packages and device libraries. - -Unisim Compile the unisim primitives - -Unimacro Compile the unimacro macros - -Secureip Compile the secureip primitives - Compile options: - - -VHDL93 Compile selected libraries with VHDL-93 (default). - -VHDL2008 Compile selected libraries with VHDL-2008. - -* `compile-osvvm.ps1` - - Selectable libraries: - - -All Compile all. - -OSVVM Compile the OSVVM library. - -* `compile-vunit.ps1` - - Selectable libraries: - - -All Compile all. - -VUnit Compile the VUnit library. - --------------------------------------------------------------------------------- - -.. container:: footnotes - - .. rubric:: Footnotes - - .. [#f1] OSVVM http://github.com/OSVVM/OSVVM - .. [#f2] VUnit https://github.com/VUnit/vunit - .. [#f3] UVVM https://github.com/UVVM/UVVM_All - .. [#f4] Generic Colourizer http://kassiopeia.juls.savba.sk/~garabik/software/grc.html |