presented by karin shusterman another use of the jtag interface on fpga

14
Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

Post on 21-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

Presented by Karin Shusterman

Another use of the JTAG Interface on FPGA

Page 2: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Introduction• JTAG is usually used for testing the board

• The JTAG interface can be also used to configure FPGAs and program flash devices

• Can we do more?

• How about design testing?

Page 3: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Design testing using JTAG• The BS technology on FPGA is providing

us test and debug capability to our design

• We use custom Instructions JTAG controller and to debug the logic of the design

• The JTAG controller is already built into the FPGA, minimizing user design

Page 4: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Existing solutions• Adding debug outputs and asserts into our design• Using switches and LEDs on board• Using FPGA as a black box

• The problem – We can’t know where exactly the problem is– We need many test vectors for many different states

• We wish we could have a spy inside our design

Page 5: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

GNAT• General-purpose Native JTAG Tester

• Configured into the FPGA in addition to our design

• Uses JTAG controller and resources for debug issues

• Allows us to enable communication with our design

Page 6: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

The uses for GNAT• Replacement for external components (such

as LEDs and switches)

• Enabling test/diagnostic modes

• Reading status/debug registers from design

• Controlling a multiplexer to select signals that route to external pins for monitoring

• Programming/uploading external memories that interface to the FPGA, such as SDRAM

Page 7: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

GNAT architecture

Page 8: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

GNAT component Example with 16 bits•16-bit USER DR defined •The upper 8 bits of the register are used to control access to the GNAT peripherals •4 bits identify the peripheral and 4 bits are allocated as an opcode (read/write) •The lower 8 bits are for data communication

Page 9: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

GNAT peripheral examples

Page 10: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Software support

Sample script to write to a GNAT peripheral

#===========================================================================# JTAG Chain# -----------------# Device0 Device1 Device2# TDI –> 18V02 –> XCV50E –> XC2V4000 -> TDO## NOTE: binary data is shifted in lsb first#===========================================================================source $env(XILINX)/chipscope/tcljtag.tclset handle [jtag_open]jtag_lock $handlejtag_autodetect $handle# Shift the USER2 Instruction (b00011) into the Instruction Register of XC2V4000jtag_shiftir $handle -buffer "110000" -endstate RTI -device 2# WRITE: Shift the 16 bit GNAT command into the USER2 Data Register of XC2V4000# Peripheral: 0x2# Opcode : 0x0 (write)# Data : 0x34jtag_shiftdr $handle -buffer "0010110000000100" -endstate RTI -device 2jtag_unlock $handle

Page 11: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Page 12: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Page 13: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Conclusions• We found a way to look into the design using

JTAG technology

• We are using existing JTAG resources

• GNAT– Shows how you can quickly and easily add JTAG

debug capability to your design– Has minimal FPGA resource overhead– A simple lightweight and flexible architecture

Page 14: Presented by Karin Shusterman Another use of the JTAG Interface on FPGA

JTAG Interface as a Communication Port

Questions

?