Skip to main content

Package to interact with JTAG UART modules in Intel FPGA designs

Project description

intel_jtag_uart is a Python module that can be used to interact with the JTAG UART instances inside Intel FPGA designs.

The official ways to do this are either interactively, through nios2-terminal utility, or by scripting some TCL code inside the Quartus System Console. There is no official straightforward way to interact with a JTAG UART with Python.

This module is a wrapper around the jtag_atlantic shared library/DLL that is part of any modern Quartus installation. (jtag_atlantic is the internal code name for the JTAG UART.)

To use this module, you need access to the jtag_atlantic shared library as well as the jtag_client shared library, which provides lower level JTAG-related functions.

Usage

  • Install this package with pip3 install intel_jtag_uart.

  • Point to the jtag_atlantic and jtag_client shared libraries, so that the module can find it.

    The module uses the following sequence to find these libraries:

    1. Look in the directory in which intel_jtag_uart.py is located
    2. Look in the directory in which the executable that uses this module is located
    3. Use the OS-provided way to find shared libraries. (E.g. for Linux, it will check the directories of the $LD_LIBRARY_PATH environment variable.)
    4. Look in the $QUARTUS_ROOTDIR directory

    Most default Quartus installations will have $QUARTUS_ROOTDIR environment variable set to the correct directory, so everything should just work™.

  • Use some variation of the script below:

import intel_jtag_uart

try:
    ju = intel_jtag_uart.intel_jtag_uart()

except Exception as e:
    print(e)
    sys.exit(0)

ju.write(b'r')
time.sleep(1)
print("read: ", ju.read())

The script sends r to the JTAG UART, waits 1 seconds for a reply, and reads the reply, if there is any. If you have an Arrow/Terasic DECA FPGA board, you can check things out right away with a precompiled example bitstream.

Full List of Functions/Methods

Use the source, Luke!

This module is a very thin wrapper around a handful of function calls that are mostly self-explanatory.

Bug Reports/Comments/Questions

Bug reports, comments, or questions can be entered through the GitHub issue tracker of this project.

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intel_jtag_uart-0.0.3.tar.gz (6.4 kB view hashes)

Uploaded Source

Built Distribution

intel_jtag_uart-0.0.3-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page