Giter Site home page Giter Site logo

xvc-adaptive's Introduction

XVC adaptive

Xilinx Virtual Cable (XVC) daemon with calibration features to compensate TDO propagation delay on long cables.

Usage

Xilinx Virtual Cable (XVC) adaptive server

    -h, --help                show this help message and exit

Basic options
    -v, --verbose             enable verbose
    -d, --debug=<int>         set debug level (default: 0)
    --driver=<str>            set driver name [AXI,FTDI] (default: AXI)
    --scan                    scan for connected device and exit

Network options
    -p, --port=<int>          set server port (default: 2542)

Calibration options
    -r, --runcalib            start calibration and run server (default: max freq)
    -q, --quick=<int>         enable quick mode with max probe values
    -s, --savecalib=<str>     start calibration and save data to file
    -l, --loadcalib=<str>     load calibration data from file
    --id=<int>                load calibration entry from file by id
    --freq=<int>              load calibration entry from file by clock frequency

AXI Calibration options
    --hyst=<int>              set hysteresis value (default: 0)

AXI Quick Setup options
    --cdiv=<int>              set clock divisor (0:1023)
    --cdel=<int>              set capture delay (0:255)

FTDI options
    --vid=<int>               set FTDI device Vendor ID (default: 0x0403)
    --pid=<int>               set FTDI device Product ID (default: 0x6010)
    --interface=<int>         set FTDI device JTAG interface (default: 1)
    --serial=<str>            set serial number (default: none)
    --busconfig=<str>         set bus config (default: 0x00:0x0B:0x00:0x00)

FTDI Calibration options
    --minfreq=<int>           set min clock frequency for calibration (default: 100000 - 100 kHz)
    --maxfreq=<int>           set max clock frequency for calibration (default: 30000000 - 30 MHz)
    --loop=<int>              set number of loop to use for calibration (default: 10)

FTDI Quick Setup options
    --cfreq=<int>             set FTDI clock frequency
    --pedge                   set FTDI TDO positive sampling edge (default: 0 - negative)

Define AXIJTAG_UIO_ID environment variable to specify UIO device file id (default: 1 => /dev/uio1)

Build

FTDI code depends from libusb and libftdi

apt-get install libusb-1.0-0 libusb-1.0-0-dev libftdi1 libftdi1-dev

AXI driver

AXI driver is based on Xilinx XAPP1251 that use an open IP core (AXI-JTAG). This IP core is modified in order to support configurable TCK frequency and delay to compensate TDO propagation on long cables.

Access from userspace to AXI IP core is provided by UIO (Userspace I/O).

Device database and handling methods are based on xc3sprog (http://xc3sprog.sourceforge.net) source code.

A calibration routine is available to identify valid frequency/delay couple that makes reliable JTAG communication between AXI IP core and FPGA target. These measurements can be loaded/saved to file to have distinct setups.

FTDI driver

FTDI driver is based on libftdi (https://www.intra2net.com/en/developer/libftdi/) and work of @wzab (https://github.com/wzab/xvcd-ff2232h) that use MPSSE instructions with XVC server.

xvc-adaptive's People

Contributors

gtortone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.