Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Dear cherin
i think the file formats depend on the software and the language that u are using.for example if u use VHDL the file format might be ".vhd"
Design input file are generally readable (VHDL or Verilog logic definition, pin mapping, timing constraints, testbenches). Sometimes design units (IP cores) are distributed as encrypted files, only readable by the design compiler that knows a secret key.
The design output, specially the bitstream used for FPGA configuration is generally not readable and it's meaning is undocumented. Also the exact FPGA hardware structure, e. g. the design of configuration resources controlled by the said bitstream is actually kept as a secret. Intermediate results as the compiled netlist are usually available as text files for simulation with third party tools.
I am planning to build an FPGA programer
So i need to extract the fusebit information from 'an output file' and send it in the right sequence to the fpga.
U mentioned that the bitstream used for fpga configuration is not readable and that the format is undocumented.
could u tell me the file extension? [like .jed for some CPLDs]
Hi cherin, If you are referring to Xilinx, the bitstream filenames are *.bit or *.bin. They are nearly identical. The default *.bit file simply adds a small header. You can transmit the file contents directly to an FPGA via JTAG, or serial, or parallel techniques. There's no file decoding required. For more info, see the "Configuration User Guide" for your particular FPGA type.
If you wish to understand the data in the *.bit or *.bin file, then that's Xilinx proprietary info.
Not readable was related to the meaning of the data. You can use it for configuration as documented by the manufacturer.
FPGA usually have a volatile SRAM based configuration and don't utilize fuse bits respectively flash memory. For these, a FPGA programmer would be of limited use.
Devices with nonvolatile configuration, e. g. all CPLD and some FPGA, generally allow JTAG programming in production by third party tools with documented methods, mostly according to IEEE 1352 standard.
Hallo FvM,
could please explain what is meant by "the exact FPGA hardware structure, e. g. the design of configuration resources controlled by the said bitstream", precisely "configuration resources".
also it will be greatful if you mentioned the extension for the following files:
systemverilog
pin mapping,
timing constraints,
testbenches,
IP cores
When you program a simple logic circuit to a FPGA, e. g. two input pins are routed to a logic cell, the result is routed to an output pin, a lot of configuration resources is involved. Sometimes these resources are symbolized as switches in a functional FPGA schematic, but mostly, their operation isn't mentionend explicitely. All these configuration resources are programmed by the configuration bitstream, but you won't find manucturers literature that explains how this configuration exactly works (respectively I didn't see it yet). How do you imagine a connection setup in a FPGA? Do you have wires connected by three-state buffers as in a computer backplane (probably not), or rather a chain of incremental connections with multiplexers in-between (more likely).
muhammad_ali, If you are referring to Xilinx ISE tools, then some of your answers about filename extensions can be found in Appendix A of the "Development System Reference Guide":
**broken link removed**
Check Appendix A again. JED files are created by the CPLDfit utility which is for CPLDs, not FPGAs.
It's true that Appendix A doesn't specifically say that bit files are for FPGA, and it neglects to mention bin files. Xilinx likes to scatter useful info throughout its documentation. See page 309 of the Development System Reference Guide for a little more info about bit and bin bitstream files.
You can download either bit or bin files through JTAG directly to Spartan or other Xilinx FPGA devices. I've written a small JTAG utility that does exactly that, using a parallel port interface. (I wrote it for a company, so sorry I can't share it.) You will need to issue the correct JTAG commands so the FPGA will accept your bitstream data. The command sequence is described (but perhaps not thoroughly) in the Configuration User Guide for your FPGA type. To find the correct chapter, search the manual for the word JPROGRAM.
Sometimes I use iMPACT to generate a SVF file (a sequence of JTAG commands and responses), and then study that file to better understand the sequence required by a particular FPGA operation. Your program could parse and execute a suitable SVF file to configure the FPGA.
I prefer to use bin files, even though the FPGA will ignore the header at the beginning of the bit file.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.