Continue to Site

Welcome to EDAboard.com

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.

FPGA Project Simulator

Status
Not open for further replies.

agnivesh

Member level 2
Member level 2
Joined
Apr 24, 2004
Messages
45
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,286
Location
UK
Activity points
549
simple fpga project

Is it possible to learn FPGA Programming without using any external FPGA Development Boards ?

I've used Proteus from Labcenter, which is a very good tool for learning embedded systems programming without spending a lot of money on development kits.

Is there any similar software for simulating FPGA Design on PC ?

Say, I have an open source soft processor core + small C code (cross compiled for that core) targetting a particular FPGA and I want to simulate this design on PC in order learn how things work.

In nutshell, if you think there is nothing like that available anywhere yet, then please suggest some ideas about how to learn basic FPGA Design process without any external development kit.

with regards
Agnivesh

I want to learn complete FPGA design process
 

fpga projects user guied

Hi agnivesh,
FPGA's are programmed (configured is more appropriate) using a Hardware Description Language (VHDL, Verilog). So first you have to learn one of these languages.
There must be free simulators, but there are some evaluation simulators provided by fpga vendors, or hardware verifiers (like Activ-HDL from Aldec).
You can google it.
 

    agnivesh

    Points: 2
    Helpful Answer Positive Rating
first fpga project

You can download free development software from Xilinx (ISE WebPACK) or Al.tera (Qu.artus II Web Edition). That lets you write HDL code, add your open-source cores, simulate it, synthesize it, place/route the device, run post-route simulation, and generate the FPGA download file.

You can learn a lot from just the software tools, but to fully test your design and experience the complete design process, you also need real FPGA hardware. (It's also more fun than staring all day at a simulator.) Xilinx, Al.tera, and several third-party companies sell nice FPGA development kits starting around $150 US, such as the Xilinx Spartan-3E Starter Kit. Here's a helpful list:
https://www.fpga-faq.org/FPGA_Boards.shtml
 

    agnivesh

    Points: 2
    Helpful Answer Positive Rating
fpga project topics

First of all, thanks for your reply, mendozaulises and echo47.

Please, assume that I have Xilinx's spartan 3E starter kit.

My aim is to write a simple LED flashing C program and execute it on my starter kit.

1.Which open source core would be good to implement as a newbie ? (I'm not an absolute beginner, I do have sufficient embedded systems programming knowledge and I'm trying to learn FPGA system design and how things work in FPGA world)

2. Please, suggest required C cross-compiling toolchain for that soft processor core. (I prefer working in Linux Environment (Ubuntu) if possible)

3. Is there any way of simulating C code on soft processor core (say the one generated in step 1 above) ?

4. Please suggest only one best book or weblink you know for each of following sub-section:

4a. Good introduction to FPGA architecture explaining how's and why's of the whole FPGA design process in brief.

4b. Good introduction to Hardware Description Language, without any long stories. Any book or weblink which can get one started writing simple HDL code quickly.

5. and last but not least, how and at what stage of our design process, we can estimate that our soft core and some other peripherals will fit into which FPGA ( I mean how many logic cells are required for all my HDL code) ?

5a. Is it mentioned in the documentation of each IP about how many logic cells will that IP consume ?

with regards
Agnivesh
 

fpga project companies

Hi again agnivesh
Let me answer some of your questions.


1.Which open source core would be good to implement as a newbie ?
First of all, you have to be aware that programming an FPGA is very very different from programming a micro(processor or controller). What you actually will do is not program the FPGA but synthesize hardware. You can even synthesize a micro in an FPGA. So as to the core I assume you want to synthesize a soft microprocessor core. I see no reason to do this, the advantage of using FPGA's is that you can make a design to work faster by directly synthesizing it into hardware instead of using a micro and spending time in fetching instructions, decoding, accessing memory, etc. For instance, in the case of your flashing leds, you can do this by just defining a states machine, declaring some inputs as a clock, a reset and probably some control terminal, and the output would be the lines feeding the leds. If you have a programmer mind, that I would recommend you to learn verilog rather than vhdl as your first HDL. Verilog resembles more a programming language than vhdl.

2. Please, suggest required C cross-compiling toolchain for that soft processor core.
I do not know much about linux, nor about hdl tools for linux. Probably someone else can help you here.

3. Is there any way of simulating C code on soft processor core (say the one generated in step 1 above) ?
This will also depend on the soft processor you use. xilinx has Microblaze and Picoblaze that can be synthesized in Spartan-3, but I don't know if it is free.

4. Please suggest only one best book or weblink you know for each of following sub-section:
4a. Good introduction to FPGA architecture explaining how's and why's of the whole FPGA design process in brief.
You can check wikipedia, it provides links to useful information.


4b. Good introduction to Hardware Description Language, without any long stories. Any book or weblink which can get one started writing simple HDL code quickly.
Here is one link for you to begin with vhdl. I learned vhdl at college in Mexico, and read no books, only the manuals that the teacher provided.

h**p://www.vhdl-online.de/tutorial/


5. and last but not least, how and at what stage of our design process, we can estimate that our soft core and some other peripherals will fit into which FPGA ( I mean how many logic cells are required for all my HDL code) ?
Synthesis tool will tell you how many resources of the FPGA your design will consume.

5a. Is it mentioned in the documentation of each IP about how many logic cells will that IP consume ? Most of IP Cores must do so.
 

    agnivesh

    Points: 2
    Helpful Answer Positive Rating
Most FPGA projects are written in pure HDL such as Verilog or VHDL. If you don't absolutely need a microprocessor and C code, I recommend using only HDL. A small task such as a flashing LED requires only a few lines of Verilog.

A microprocessor core is a relatively slow and bulky thing to put into an FPGA. Furthermore, the C compiling, linking, merging, and simulation steps can be complex, awkward, and slow, and the steps are all different depending on which core you choose. There's no standard procedure or textbook for this, you need to read the core's (possibly painful) documentation.

I chose to learn Verilog instead of VHDL because Verilog expression syntax resembles C, and I already knew C and logic design. I learned Verilog mostly by reading the Xilinx ISE manual "XST User Guide", it has concise sections that describe how to write simple Verilog that's efficient for Xilinx FPGAs. I also learned quite a bit by browsing various Xilinx application notes. I also tried reading a few popular Verilog textbooks, but I didn't like any of them because their focus seemed all wrong for FPGAs.

Many FPGA development kits include a "getting started" tutorial project to help you learn the FPGA software tools such as Xilinx ISE.

Here are the steps I use to build a simple FPGA project using Xilinx ISE Project Navigator:
#754738

It's difficult to estimate the required FPGA size until you gain some experience with FPGAs. First, try to understand how fast the various FPGA resources can go. Then estimate how many flip-flops, memory blocks, multipliers, and other stuff you need to implement your logic. This thinking is similar to old-fashioned logic design. Then you can browse FPGA data sheets and make an educated guess as to what size FPGA you need. That's just an estimate. To get a real answer, you need to code your entire design into HDL or whatever, run the tools, and see if it fits.

The Xilinx IP documentation (or the core generator software) usually tells you how many FPGA resources are required. IP from other places - hopefully their documentation gives an estimate.

I've only used Xilinx FPGAs. Al.tera and other companies make nice products too.
 

    agnivesh

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top