3
\$\begingroup\$

I have an Altera Cyclone IV FPGA (for ie) and my question is: is it possible a raw programming of the FPGA? Is it possible to set "manually" the gates for making experiments?

Thank you

asked Oct 21, 2019 at 10:19
\$\endgroup\$
5
  • \$\begingroup\$ programming without using Verilog/VHDL ? \$\endgroup\$ Commented Oct 21, 2019 at 10:21
  • \$\begingroup\$ An FPGA contains a lot of 'logic blocks' that the synthesizer connects based on how you describe the hardware in your code. Even if it's just an 'AND' gate the interconnection of the blocks will be such that it produces the result of an AND gate whether that be by a look up table or multiplexer. So I don't think it's possible to manually set the gates \$\endgroup\$ Commented Oct 21, 2019 at 10:33
  • \$\begingroup\$ @MituRaj uhm this is an interesting question. Yes, I'm interested to some way for creating an output file for a FPGA without using a hardware description programming language. But this because I'm interested about a documentation for "raw fpga programming", but I'm pretty sure that this depends by the constructor. \$\endgroup\$ Commented Oct 21, 2019 at 11:40
  • \$\begingroup\$ In my knowledge, it is not possible. \$\endgroup\$ Commented Oct 21, 2019 at 12:02
  • 5
    \$\begingroup\$ Not for that FPGA where too much is secret, but there is a part (IIRC from Lattice) where sufficient information has become available, more realistically enabling open source tools. \$\endgroup\$ Commented Oct 21, 2019 at 14:05

2 Answers 2

4
\$\begingroup\$

Surely if you were able to fully comprehend and become knowledgeable of all of the following factors regarding a particular FPGA it would be possible to hand craft programming files for the device.

  1. Detailed binary format requirements for FPGA programming file.
  2. Mapping of how programmable cell states of programming file map to features of the FPGA.
  3. Detailed understanding of the protocol used to load a programming file into the FPGA.
  4. Thorough understanding of the logic cell structure of the FPGA and how it maps to programmable cells.
  5. Full comprehension of how internal routing functions work and how connectivity is related to programmable cells.
  6. Good knowledge of how the I/O cells work and how they bus into the interconnect matrix of the FPGA.
  7. Understanding clocking requirements of the FPGA and how this relates to power on initialization.
  8. Detailed understanding of how the global clock distribution network in the FPGA is routed and connected to other internal elements.
  9. Good comprehension of the global reset domains of the FPGA and how they are routed and connected to internal elements.
  10. An understanding of how hard coded macro cells of the FPGA work including repeaters, buffer memory, PLL, DPLL, SERDES and any other things the manufacturer has chosen to throw into the mixing pot.

I have probably left out a basket full of additional details that would be very important to be familiar with that would play into making successful hand coded designs. Timing and delay compensation come to mind here.

It should become obvious very quickly that there is a reason that FPGA vendors provide development tools to cover almost all of these details. Using a recognized standard description language to describe the function intended for an FPGA design makes your intellectual property portable to almost any FPGA. Trying to understand what you have asked about regarding hand crafting a programming file is easily 20 to 30 times the work and would only be usable on one or two devices in some specific FPGA family. I suggest that your energy would be much more well spent becoming an expert at usage of the standardized description language.

If part of your curiosity is a drive toward becoming a designer/creator of FPGA components themselves then I suggest that you start by focusing on one particular aspect of the technology and learn that. If you had a job at one of the FPGA houses you would be part of a large team that includes dozens of skillsets that all come together to produce the FPGA products and tools that you will find in the market today.

answered Oct 21, 2019 at 13:07
\$\endgroup\$
2
  • 5
    \$\begingroup\$ It's not just that it's complicated, but that the industry has developed in a direction where a lot of the necessary information for most parts is kept intentionally secret. \$\endgroup\$ Commented Oct 21, 2019 at 14:52
  • \$\begingroup\$ @ChrisStratton good point. Anyway, FPGAs have to face off with the "open source community" sooner or later, but for sure the market of these devices is advantaged by an oligopoly condition for a long time. Anyway, these conditions are also justified by the (I hope) big investment that companies like Altera or Xilinx had to do... reddit.com/r/FPGA/comments/a5pzs5/… \$\endgroup\$ Commented Oct 21, 2019 at 17:39
0
\$\begingroup\$

The direct programming such huge FPGAs is theoretically possible but too complicated.

Look at ATF22V10B. This ICs are still in production and consists of only 10 cells. Their programming with setting links between cells is very simple. Then you can try to direct programming somesing like ATF1502 or even Altera MAX-II.

answered Sep 17, 2020 at 13:47
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.