All Projects → duskwuff → Xilinx-ISE-Makefile

duskwuff / Xilinx-ISE-Makefile

Licence: Unlicense License
An example of how to use the Xilinx ISE toolchain from the command line

Programming Languages

Makefile
30231 projects

Projects that are alternatives of or similar to Xilinx-ISE-Makefile

xup compute acceleration
Hands-on experience using the Vitis unified software platform with Xilinx FPGA hardware
Stars: ✭ 41 (-18%)
Mutual labels:  fpga, xilinx
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (-14%)
Mutual labels:  fpga, xilinx
zc pcie dma
DMA attacks over PCI Express based on Xilinx Zynq-7000 series SoC
Stars: ✭ 37 (-26%)
Mutual labels:  fpga, xilinx
Openwifi
open-source IEEE 802.11 WiFi baseband FPGA (chip) design
Stars: ✭ 2,257 (+4414%)
Mutual labels:  fpga, xilinx
JSON-for-VHDL
A JSON library implemented in VHDL.
Stars: ✭ 56 (+12%)
Mutual labels:  fpga, xilinx
SHA256Hasher
SHA-256 IP core for ZedBoard (Zynq SoC)
Stars: ✭ 25 (-50%)
Mutual labels:  fpga, xilinx
vivado-docker
Dockerfile with Vivado for CI
Stars: ✭ 22 (-56%)
Mutual labels:  fpga, xilinx
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (+8%)
Mutual labels:  fpga, xilinx
eddr3
mirror of https://git.elphel.com/Elphel/eddr3
Stars: ✭ 33 (-34%)
Mutual labels:  fpga, xilinx
EBAZ4205
Vivado and PetaLinux projects for Zynq EBAZ4205 Board
Stars: ✭ 38 (-24%)
Mutual labels:  fpga, xilinx
ixo-usb-jtag
usb-jtag - Altera USB Blaster Emulation with a FX2
Stars: ✭ 49 (-2%)
Mutual labels:  fpga, xilinx
PYNQ Composable Pipeline
PYNQ Composabe Overlays
Stars: ✭ 25 (-50%)
Mutual labels:  fpga, xilinx
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (-24%)
Mutual labels:  fpga, xilinx
PothosZynq
DMA source and sink blocks for Xilinx Zynq FPGAs
Stars: ✭ 19 (-62%)
Mutual labels:  fpga, xilinx
prjxray-db
Project X-Ray Database: XC7 Series
Stars: ✭ 52 (+4%)
Mutual labels:  fpga, xilinx
Deep-DarkFantasy
Global Dark Mode for ALL apps on ANY platforms.
Stars: ✭ 16 (-68%)
Mutual labels:  fpga, xilinx
1bitSDR
Minimal SDR with Lattice MachXO2 FPGA. And a port to Cyclone3 by Steven Groom
Stars: ✭ 53 (+6%)
Mutual labels:  fpga
fpga puf
🔑 Technology-agnostic Physical Unclonable Function (PUF) hardware module for any FPGA.
Stars: ✭ 44 (-12%)
Mutual labels:  fpga
hwt
VHDL/Verilog/SystemC code generator, simulator API written in python/c++
Stars: ✭ 145 (+190%)
Mutual labels:  fpga
FPGA CryptoNight V7
FPGA CryptoNight V7 Minner
Stars: ✭ 21 (-58%)
Mutual labels:  fpga

Xilinx ISE Makefile

Tired of clicking around in Xilinx ISE? Run your builds from the command line!

Requirements

  • Xilinx ISE, ideally 14.7 (the final version)

  • GNU (or compatible?) Make

    Install this through Cygwin on Windows.

Creating a project

To start building a project, you will need to create a file project.cfg in the top level of your project. This file is a text file sourced by Make, so it consists of KEY = value pairs. It must define at least the following keys:

  • PROJECT

    The name of the project, used as a name for certain intermediate files, and as the default name for the top-level module and constraints file.

  • TARGET_PART

    The full part-speed-package identifier for the Xilinx part to be targeted, e.g. xc6slx9-2-tqg144.

  • XILINX

    The path to the appropriate binaries directory of the target Xilinx ISE install, e.g. /cygdrive/c/Xilinx/14.7/ISE_DS/ISE or /opt/Xilinx/14.7/ISE_DS/ISE for typical installs.

  • VSOURCE and/or VHDSOURCE

    The space-separated names of all Verilog and/or VHDL source files to be used in the project.

    You can define these on multiple lines using +=, e.g.

    VSOURCE += foo.v
    VSOURCE += bar.v
    

A simple project.cfg may thus resemble:

PROJECT = example
TARGET_PART = xc6slx9-2-cpg196

XILINX = /cygdrive/c/Xilinx/14.7/ISE_DS/ISE/bin/nt64

VSOURCE = example.v

A number of other keys can be set in the project configuration, including:

  • XILINX_PLATFORM

    The Xilinx name for the platform to build for, e.g. nt64 or lin. nt64 is used by default for Windows systems, and lin64 for Linux systems, so you only need to set this if you explicitly need to use the 32-bit version of the tools for some reason.

  • TOPLEVEL

    The name of the top-level module to be used in the project. (Defaults to $PROJECT.)

  • CONSTRAINTS

    The name of the constraints file (.ucf) to be used for the project. (Defaults to $PROJECT.ucf.)

  • COMMON_OPTS

    Extra command-line options to be passed to all ISE executables. Defaults to -intstyle xflow.

  • XST_OPTS, NGDBUILD_OPTS, MAP_OPTS, PAR_OPTS, BITGEN_OPTS, TRACE_OPTS, FUSE_OPTS

    Extra command-line options to be passed to the corresponding ISE tools. All default to empty.

    Note that XST_OPTS will not appear on the command line during compilation, as the XST options are embedded in a script file.

    MAP_OPTS and PAR_OPTS can be set to -mt 2 to use multithreading, which may speed up compilation of large designs.

    BITGEN_OPTS can be set to -g Compress to apply bitstream compression.

  • PROGRAMMER

    The name of the programmer to be used for make prog. Currently supported values are:

    • impact

      Uses Xilinx iMPACT for programming, using a batch file named impact.cmd by default. The iMPACT command line may be overridden by setting IMPACT_OPTS.

      A typical batch file may resemble:

      setMode -bscan
      setCable -p auto
      addDevice -p 1 -file build/projectname.bit
      program -p 1
      quit
      
    • digilent

      Uses the Digilent JTAG utility for programming, which must be installed separately. The name of the board must be set as DJTG_DEVICE; the path to the djtgcfg executable can be set as DJTG_EXE, and the index of the device can be set as DJTG_INDEX.

    • xc3sprog

      Uses the xc3sprog utility for programming, which must also be installed separately. The cable name must be set as XC3SPROG_CABLE; additional options can be set as XC3SPROG_OPTS.

Targets

The Xilinx ISE Makefile implements the following targets:

  • make default (or just make)

    Builds the bitstream.

  • make clean

    Removes the build directory.

  • make prog

    Writes the bitstream to a target device. Requires some additional configuration; see below for details.

Running unit tests

is a work in progress.

Unimplemented features

The following features are not currently implemented. (Pull requests are encouraged!)

  • Generation of SPI or other unusual programming files

  • CPLD synthesis

  • Synthesis tools other than XST

  • Display and/or handling of warnings and errors from build/_xmsgs

  • Anything else (open an issue?)

License

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

See LICENSE.md for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].