Trying to design an FPGA from scratch, but not sure how this fpga should be programmed. It is going to be a tile concept fpga with a LUT SRAM architecture. I have the resources to write VHDL/Verilog, netlist it and do the layout(incl. routing), but how do I program this fpga? I guess this is something I am not too clear about. Thanks folks
How do I program an fpga once it has been designed and layout is complete
Started by ●July 1, 2008
Reply by ●July 1, 20082008-07-01
<phxagent@gmail.com> wrote in message news:0232ce5e-f1e0-4c0e-b11b-0d850c622ce6@d19g2000prm.googlegroups.com...> > I have the resources to write VHDL/Verilog, netlist it and do the > layout(incl. routing), but how do I program this fpga? >Very carefully! Go and do some reading. My advice is to start with the website of the FPGA vendor you've chosen. Alternatively, as you seem to work for Intel, get them to send you on an expensive course. HTH, Syms. p.s. http://catb.org/~esr/faqs/smart-questions.html
Reply by ●July 1, 20082008-07-01
>I have the resources to write VHDL/Verilog, netlist it and do the >layout(incl. routing), but how do I program this fpga? I guess this is >something I am not too clear about. Thanks folksLook in the data sheet. There will be a section on that area, maybe called Configuration. The compiler will give you a pile of bits. Typically, you feed them serially to the FPGA with clock and data pins. You can bit bang it from a small CPU. In a different mode, the FPGA can probably wiggle the clock to load itself from a serial ROM. (Then you have to program the ROM.) You can usually load them via JTAG. The vendor probably provides a tool to do it. It's probably simplest to get one of the low cost starter kits and follow the directions for one of their demos. Or just read their documention to see how it's done. -- These are my opinions, not necessarily my employer's. I hate spam.
Reply by ●July 1, 20082008-07-01
Thanks for the responses, but I think I need to be more clear on my question. First off, this is for a class project for my advanced degree, so my employer has nothing to do with it. When I mean design an FPGA, I literally mean designing it. Not programming a vendor's FPGA. So going back to my original question, if I did design an FPGA with LUTs and SRAM, how can I program this FPGA to do a particular function? Do I write the software? If so, is that an easy thing to do? Are there any tools available that would let me program any FPGA? I looked at DAGGER, but seems like it needs an input file from the VPACK tool. thanks again.
Reply by ●July 2, 20082008-07-02
phxagent@gmail.com wrote:> Thanks for the responses, but I think I need to be more clear on my > question. First off, this is for a class project for my advanced > degree, so my employer has nothing to do with it. > > When I mean design an FPGA, I literally mean designing it. Not > programming a vendor's FPGA. > > So going back to my original question, if I did design an FPGA with > LUTs and SRAM, how can I program this FPGA to do a particular > function? Do I write the software? If so, is that an easy thing to do? > > Are there any tools available that would let me program any FPGA? I > looked at DAGGER, but seems like it needs an input file from the VPACK > tool. thanks again.I think you still need to explain yourself more. Are you creating a design of your own custom FPGA (that other people could theoretically program) for a class project? Are you planning to actually fab a chip through some university program like MOSIS? That seems like an pretty ambitious class project. When you say software to program the FPGA are you talking about something to download the bitstream? Or are you talking about the complete HDL synthesis and place and route tool chain? -Jeff
Reply by ●July 2, 20082008-07-02
On Tue, 1 Jul 2008 19:01:28 -0700 (PDT), phxagent@gmail.com wrote:>Thanks for the responses, but I think I need to be more clear on my >question. First off, this is for a class project for my advanced >degree, so my employer has nothing to do with it. > >When I mean design an FPGA, I literally mean designing it. Not >programming a vendor's FPGA. > >So going back to my original question, if I did design an FPGA with >LUTs and SRAM, how can I program this FPGA to do a particular >function? Do I write the software? If so, is that an easy thing to do? > >Are there any tools available that would let me program any FPGA? I >looked at DAGGER, but seems like it needs an input file from the VPACK >tool. thanks again.You have to also design the programming architecture into your FPGA. FPGAs are basically SRAM (LUTs are SRAM too), configurable DFF cells and a whole lot of wires with switches on each end. The SRAM blocks and DFFs (assuming you don't have any other hard macros ala multipliers etc) have their inputs and outputs connected to some switches which are connected to the wires too. So you connect all the control inputs of the switches to some regular DFFs which are connected in a scan chain type connection themselves and when you generate the programming file, you shift it in upon which you configure all the switches and the configuration options of your DFFs. If you also want to initialize your SRAM blocks you can design configuration time memory controllers which write the shifted value into them to the SRAM. If you're doing any non-trivial FPGA design, I think you'll find that generating the actual programming file itself from your logic design specification is one of the most time consuming tasks.
Reply by ●July 2, 20082008-07-02
On Jul 1, 7:01=A0pm, phxag...@gmail.com wrote:> Thanks for the responses, but I think I need to be more clear on my > question. First off, this is for a class project for my advanced > degree, so my employer has nothing to do with it. > > When I mean design an FPGA, I literally mean designing it. Not > programming a vendor's FPGA.This sounds rather involved for a class project. And more of an exercise in CAD tools than anything else.> So going back to my original question, if I did design an FPGA with > LUTs and SRAM, how can I program this FPGA to do a particular > function? Do I write the software? If so, is that an easy thing to do?I'm not sure what you're getting at here. What do you mean by "program", exactly? Putting the bitfile into the FPGA? Generating the bitfile from a placed/routed design?> Are there any tools available that would let me program any FPGA? I > looked at DAGGER, but seems like it needs an input file from the VPACK > tool. thanks again.You might be able to modify DAGGER to do what you want. But this might be a good time to take a step back and figure out 1) what exactly you want to achieve with your project, 2) what requisite knowledge you have yet to acquire, 3) whether it's doable in the timeframe specified. Cheers, Mike
Reply by ●July 2, 20082008-07-02
On Jul 1, 9:28=A0pm, mng <michael.jh...@gmail.com> wrote:> On Jul 1, 7:01=A0pm, phxag...@gmail.com wrote: > > > Thanks for the responses, but I think I need to be more clear on my > > question. First off, this is for a class project for my advanced > > degree, so my employer has nothing to do with it. > > > When I mean design an FPGA, I literally mean designing it. Not > > programming a vendor's FPGA. > > This sounds rather involved for a class project. And more of an > exercise in CAD tools than anything else. > > > So going back to my original question, if I did design an FPGA with > > LUTs and SRAM, how can I program this FPGA to do a particular > > function? Do I write the software? If so, is that an easy thing to do? > > I'm not sure what you're getting at here. What do you mean by > "program", exactly? Putting the bitfile into the FPGA? Generating the > bitfile from a placed/routed design? > > > Are there any tools available that would let me program any FPGA? I > > looked at DAGGER, but seems like it needs an input file from the VPACK > > tool. thanks again. > > You might be able to modify DAGGER to do what you want. But this might > be a good time to take a step back and figure out 1) what exactly you > want to achieve with your project, 2) what requisite knowledge you > have yet to acquire, 3) whether it's doable in the timeframe > specified. > > Cheers, > MikeI think we all wonder what you want to achieve with your project. You could re-invent and re-implement what Xilinx did 25 years ago, but what would that do for you, or for anybody? It's hard to help you when you leave so many things un-explained. Peter Alfke
Reply by ●July 2, 20082008-07-02
phxagent@gmail.com wrote:> Thanks for the responses, but I think I need to be more clear on my > question. First off, this is for a class project for my advanced > degree, so my employer has nothing to do with it. > > When I mean design an FPGA, I literally mean designing it. Not > programming a vendor's FPGA. > > So going back to my original question, if I did design an FPGA with > LUTs and SRAM, how can I program this FPGA to do a particular > function?You set the config bits, typically serially loaded.> Do I write the software?Yes> If so, is that an easy thing to do?No.> > Are there any tools available that would let me program any FPGA? I > looked at DAGGER, but seems like it needs an input file from the VPACK > tool. thanks again.What does your Professor want ? How many hours are allocated to this ? Does he want working silicon (!), or a simulated result ? How will your FPGA vary fom the 'mainstream' ones, and what aspect of that difference do you need to demonstrate ? How large does this need to be ? -jg
Reply by ●July 2, 20082008-07-02
On 2008-07-02, phxagent@gmail.com <phxagent@gmail.com> wrote:> > So going back to my original question, if I did design an FPGA with > LUTs and SRAM, how can I program this FPGA to do a particular > function? Do I write the software? If so, is that an easy thing to do?For proof-of-concept you should be able to generate a bitstream that hooks a few gates to a flop from inputs to outputs. Since you designed the FPGA, you'd know how to do that. If you want to generate that from a high-level description there will be significant software involved. You may be able to take a frontend like Icarus Verilog and write a new backend for your project, but it will take considerable software expertise. -- Ben Jackson AD7GD <ben@ben.com> http://www.ben.com/






