Project D1427: Controller for programming FPGA using USB

advertisement
High Speed Digital Systems Lab
Project D1427:
Stand Alone FPGA Programmer
Final presentation
6/5/10
Supervisor: Mony Orbach
Students: Shimrit Bar Oz
Avi Zukerman
Agenda
•
•
•
•
•
•
•
•
•
•
•
•
Project characterization.
Technical description.
User interface.
Blocks diagram.
.hexout format.
Test case.
Work flow summary.
Software.
Hardware.
Schematics.
Implementations Vs. Plan.
Conclusions and summary.
Project characterization
• Design a system for programming Altera FPGA
directly from a PC.
hexout format
FPGA
programmer
JTAG format
• The system gets gate level burn ready software
from PC in hexout format.
• Translate to JTAG format.
• Burn the software onto an Altera FPGA.
Technical description
Initial plan
• The system is uses the MMC experiment
card which contains:
a DLP
Altera Cyclone FPGA.
• The system also includes software driver.
MMC experiment card
hexout input
Driver
DLP
Cyclone
USB
JTAG inputs
JTAG output
User interface
• The user interface will be a command line
software.
• The command line will include the input
which is a valid .hexout file.
• The software will output success message
or failure errors.
Blocks diagram
Initial plan
acknowledge
acknowledge
Software
hexout
block
transmit
Binary Byte
acknowledge
Receiver
block
transmit
Byte
Transmitter JTAG
JTAG output
output
block
• Software block transmits the .hexout file to the
DLP.
• Receiver block receives the bytes and store it.
• Transmitter block transmits the Byte to the target
FPGA.
Blocks diagram
Final plan
acknowledge
acknowledge
Software
hexout
block
transmit
Binary Byte
DLP
block
JTAG
JTAG output
output
Control
• Software block transmits the .hexout file to the
DLP.
• DLP outputs connect to target FPGA with JTAG
interface.
.hexout format
• The input to the system should be a
completely burn ready program from
Quartus.
Test case
• The card from the digital system
experiment has been chosen as a test
case.
• The test case is a simple program that
changes the card’s display.
• The test case had been completed
successfully using full Quartus flow and
.sof format.
Work flow Summary
• Understanding the system requirements and choosing
hardware.
• Learning the Quartus burn file formats.
• HDL designer and Quartus work environment.
• The project’s test case had been preformed on full Quartus
flow.
• Internal blocks interface characterization.
• Implementation of software and hardware blocks.
• Re characterization of blocks interface after initial
implementation.
• Implementation of the system with only the software block.
• Design of hardware card as replacement to initial plan.
Software
• Used C++ to implement the software
• The software was divided to several modules:
– FTD2XX.dll package for using the USB.
– Fpga_load.cpp the main application.
– Other support classes.
• The software has two main functions:
– Parsing the input .hexout file.
– Loading the content on the target FPGA byte by byte
Hardware
• The main element of the hardware is the DLP used as an
interface between the computer’s USB port and the target
FPGA JTAG port.
• The data between the DLP and target FPGA runs threw two
buffers: control buffer and data buffer.
Schematics - DLP
Schematics – Control DLP
buffer
Schematics – Data buffer
Schematics – 5V transceiver
Schematics – Connector and
Power ground connections
Schematics - Decoupling
Schematics – Pull ups/downs
Schematic - JTAG connector
• A 15 pin connector as output.
• Connecting to standard JTAG connector:
– Pin 8 to DCLK
– Pin 7 to DATA
– Pin 6 to nStatus
– Pin 5 to nConfig
– Pin 4 to CONF_DONE
Implementations Vs. Plan
• Project was implemented in a single
software block.
• Implemented “dummy” combinational
block to act as a feed threw the FPGA.
• Designed a specific card for this project.
• There was no validation of the code and
hardware.
Conclusions and summary
• Although we didn’t complete the task of
verifying the project we feel we have
learned a lot on the different options to
burn hardware on FPGA.
• The DLP is a powerful unit that can be
used to perform almost any task no a PCB
card controlled by a computer with a
standard USB connection.
Download