Shop OBEX P1 Docs P2 Docs Learn Events
Im looking for advice - FPGA's — Parallax Forums

Im looking for advice - FPGA's

I really want to learn to work with FPGAs and feel its necessary in my profession.

Could someone recommend a good starting platform that would get me going. Something that has good support sort-of-like the propeller has and Parallax Inc. I have been with Parallax for decades and actually developed several products using the propeller & basic stamp but I feel I need to improve my education and skill-set.

Ill always use the propeller but many of my clients need more power and want it cheaper! I think FPGAs etc, offer this.

Thanks :)

Comments

  • MJBMJB Posts: 1,235
    edited 2016-01-25 14:54
    Zap-o wrote: »
    Ill always use the propeller but many of my clients need more power and want it cheaper! I think FPGAs etc, offer this.

    - more power - maybe YES depending on size
    - cheaper - definitely NOT

    P2 will give you lots of more power than P1 ...
    and looks much cheaper than a FPGA


    I just got my DE0-nano -- still in package waiting ....

  • Thanks for the advice but seriously Ive been waiting on the P2 for years and figure I could have learned about FPGA's in that time. My fault for being lazy and over worked. :) - I am not slamming Parallax either as I fully understand R&D issues. I work with demanding scientist and they always find a need for more changes, so I need more power and flexibility at a lower cost.

    Cheaper? How so? As I understand it the propeller is an FPGA :) When you populate the propeller 1 or 2 with an FTDI ic, and other I/o expanders etc it all adds up including labor to pick and place these parts on my PCBs - at the same time the need for smaller footprints.

    Don't get me wrong, the Propeller is awesome but seriously limited now (for me), sort of legacy imho - can it run linux, no. An FPGA can do much more from what I understand.

    I need "FPGA information" instead of reasons to "NOT" leave the propeller and wait more for the propeller 2 because ill never leave Parallax I just want to grow as an engineer.

    :)



  • There are quite a number of options for learning FPGAs. I learned using the Altera Cyclone product line, which was conveniently the same line that Parallax used for the Propeller prototyping. There are other manufacturers, of cours, but I have no experience with them.

    If your primary goal is to simply learn about FPGAs, I suggest the following:

    * Pick a Hardware Design Language (HDL) to learn. VHDL has been around a long time, as has Verilog. Personally, I found Verilog easier to learn. There are others, such as SystemVerilog (which I acutally prefer to Verilog), Chisel, and many others. Unless you have a specific desire, I suggest focusing on Verilog (or VHDL), as you will find an enormous amount of sample code online.

    * Start with a small FPGA demo board. You can get really cheap, but something like the BEMicro CV A9 (150 USD) should give you a good combination of capabilities at a modest price. Note that the cheaper FPGA boards will likely not include any hard CPU cores or other special-purpose hardware. It will still be possible to use soft cores (implementations that use up part of the FPGA fabric instead of being built in to the hardware), which should be good enough for learning purposes. Also, note that FPGA implementations differ across manufacturers and product lines (e.g. the Altera Cyclone IV and Cyclone V use different designs). Try, as much as possible, to learn hardware-independent design approaches. There will be some points where that will be very inconvenient, and you will find it much easier to code against an architecture-specific feature. Just be very aware that you are doing it, as that part of your code will likely not translate to any other product line.

    * Some of what you will actually be learning is the IDE/tools that interface with the FPGA. Altera's Quartus II software is what I know and I think it will cover everything you need while learning FPGAs (even up through fairly advanced topics). Expect to spend some time getting to know the ins and outs of the software, as it can be a significant time saver. However! Be careful of one thing: all of these systems tend to provide pre-packaged modules for common features (memory, i/o protocols, etc.). Avoid these when you first start learning, as they hide a lot of details. Like the comment on hardware-independent design above, these modules will also be proprietary (to the manufacturer, and possibly the product line).

    * Ask a lot of questions! When I was initially learning, there were quite a number of misconceptions I had (I come from a software background, not hardware) that only got corrected by asking others.
  • kwinnkwinn Posts: 8,697
    Zap-o wrote: »
    .....

    Cheaper? How so? As I understand it the propeller is an FPGA :) When you populate the propeller 1 or 2 with an FTDI ic, and other I/o expanders etc it all adds up including labor to pick and place these parts on my PCBs - at the same time the need for smaller footprints.
    ....
    :)



    The propeller is not an FPGA, the P2 is being developed using an FPGA for prototyping, and that requires an FPGA with far more gates than the final P2 chip will need.
  • SeairthSeairth Posts: 2,474
    edited 2016-01-25 17:10
    In terms of using FPGAs for products, it's always a trade-off. An ASSC/ASIC will almost always be cheaper than an FPGA that implements the exact same functionality. On the other hand, you can implement designs in FPGAs that simply don't exist as a dedicated chip. It is perfectly reasonable to use FPGAs in commercial products. For instance, I know that many cable modems use FPGAs. I also have a USB crash cart adapter that uses an FPGA. The NI RoboRIO has both an ARM and an FPGA in it (or maybe it's an FPGA with an ARM hard core!). If I thought a little longer, I could probably come up with a number of other examples.

    The point is, FPGAs aren't better or worse, just different.

    As for the Propeller, there is some interesting overlap with FPGAs.

    * Currently, the original Propeller is available as open source Verilog. This allows you to implement a propeller soft core on an FPGA, as well as tweak the propeller design to meet your needs. It is also a great codebase for learning Verilog! (edit: Note that there is no FPGA that's as cheap as the Propeller chip that can also fully implement the Propeller. In other words, if you want to use a Propeller in your product, the chip will always be cheaper than an FPGA version. However, if you have a number of additional peripheral ICs that could also be implemented in an FPGA, it is conceivable that they could all be combined with the propeller Verilog in a single FPGA and end up saving money. But I suspect this will be a very rare occurrence.)

    * The Propeller 2 design has also being released to run on a limited set of FPGAs. This has allowed us to test/tweak the design. Also, as the design stabilizes, it will also allow early adopters to work on a Propeller 2 design prior to the release of the actual chip. To get some analog emulation of a P2, you will need to buy the 1-2-3 board. Otherwise, you will pretty much be limited to digital I/O.

    * Then there's the design intent of an FPGA as compared to a Propeller, particularly the Propeller 2. The new smart pins (or spins, or whatever we are calling them this week) are deliberately designed to be flexible in a way that is reminiscent of FPGA architectures. By this, I mean that each pin has a general-purpose hardware block that can be configured to behave in a myriad of ways, just as an FPGA LUT, ALM, etc. is a general-purpose hardware block that can be configured to behave in a myriad of ways. Of course, the FPGA blocks are more general-purpose than the P2 pins, and everything (except hard cores/peripherals) in an FPGA is general purpose blocks, while in the P2, this is limited to the I/O. But that still allows for significant overlap of functionality that should make the P2 a viable alternative to some FPGA applications.
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,720
    edited 2016-01-25 20:33
    When you start out unless you have something specific in mind that you want to do with a FPGA I assume you just want something basic and not to expensive. There are various languages so you would have to explore the various ones to determine which one if right for you. YouTube is your friend and a FPGA search can provide plenty of info and learning material, examples, etc. This is not a complete list just a few ideas you can start with.

    Getting started with FPGAs
    http://forums.parallax.com/discussion/132578/getting-started-with-fpgas/p1

    Parallax Cyclone V FPGA Development Board: Programming and development tool for Propeller 1 and 2
    https://www.parallax.com/news/2014-10-20/parallax-cyclone-v-fpga-development-board-programming-and-development-tool-propeller


    http://saanlima.com/store/index.php?route=product/category&path=62
    Saanlima Electronics

    https://store.digilentinc.com/

    So You Want to Learn FPGAs...
    https://www.sparkfun.com/news/1203


    Digital Design Using Digilent FPGA Boards
    http://store.digilentinc.com/digital-design-using-digilent-fpga-boards/

    Introduction to Digital Design Using Digilent FPGA Boards
    http://store.digilentinc.com/introduction-to-digital-design-using-digilent-fpga-boards/

    Oberon System Implemented on a Low-Cost FPGA Board
    http://forums.parallax.com/discussion/163343/oberon-system-implemented-on-a-low-cost-fpga-board#latest

    Pepino Oberon
    http://www.saanlima.com/pepino/index.php?title=Pepino_Oberon

    Learning:
    https://learn.digilentinc.com/classroom/realdigital/

    Basys 3 Artix-7 FPGA Trainer Board: Recommended for Introductory Users
    http://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/

    (I use a Nano board and I also use it for prop2 experiments)

    DE0-Nano Development and Education Board
    http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593

    Parallax Propeller 1 on Pipistrello (ISE project) Complete ISE project including source code for running the Parallax Propeller 1 processor on Pipistrello
    http://pipistrello.saanlima.com/index.php?title=Welcome_to_Pipistrello#Open_Bench_Logic_Sniffer_on_Pipistrello
  • rjo__rjo__ Posts: 2,114
    I agree with everything Bob said. For several years, I wanted to learn "something" about FPGA's but wasn't exactly sure what. Every time I found "something" that seemed sufficiently interesting and invested the time and money, it turned out to be a dead end. I have several FPGA boards that I barely touched, because I ran into an issue or a question that I couldn't answer for myself and no-one else cared to answer... because I didn't ask here:)

    What finally worked for me was the Propeller1Verilog release. I started out with the cheapest board available... moved up to a DE2-115 at the other end of the scale. I spent many happy months learning more about both the Propeller and FPGA's surrounded by people on the forum doing exactly the same sort of thing.

    There are all kinds of example FPGA projects somewhere around here... and most of the early questions you might have will have been answered many times.

    The nice thing about the P1v is that you can do anything you want to add on functionality and at the end of the day you have a board with a Propeller... doing stuff the Propeller can't do alone with all of the tools and code you are used to using.

    The A7 board is a beauty, but it has an expansion slot and no on-board external memory.

    Getting an FPGA to talk to SDRAMS is an adventure I started but never completed.

    The new A9 board has 16MBx16 SDRAM... eventually, there will be FPGA sources from Chip showing how he hooked up the SDRAM... and a bunch of ideas from the guys on the P2 forum about how else it can be done.

    So, take the plunge. Put yourself on the list for the next crop of A9 boards... and count yourself lucky that you didn't buy a whole bunch of other stuff you'll never use before figuring out that it was the P123-A9 that you needed all along.


  • rjo__rjo__ Posts: 2,114
    By the way... the new P2v is really nice... and almost done with the first pass. You can already program the P2V just like a P1 with almost no changes to your PASM coding style and it will be at least twice as fast... but there is a whole lot more to play with.... and then the increased performance can be 10x(and more:) for simple stuff. Sequential memory access is 2 clocks per long... so that's half a clock per byte:) Hub Memory... 1MB.

    I can't think of a better way to learn about FPGA than to have a really nice design(P1v or P2v)... and know exactly what comes out of it before you ask the question, "how?"
  • jmgjmg Posts: 15,173
    Zap-o wrote: »
    I really want to learn to work with FPGAs and feel its necessary in my profession.

    Could someone recommend a good starting platform that would get me going. .... many of my clients need more power and want it cheaper! I think FPGAs etc, offer this.

    Cheaper is maybe optimistic, but more powerful should be no problem, especially for focused hardware tasks.

    The main players are Altera, Lattice and Xilinx, and all offer FPGAs and CPLDs.

    You really need to decide on what you want the FPGA to actually do, before you buy a board.

    You can work backwards by listing what the Prop was unable to do, for your customers.

    Cheapest 'more powerful' solution may be a Prop1 and a CPLD, or small FPGA.

    Whilst you can swallow the processor into the FPGA too, to get enough Code Memory, and LEs to synth the opcodes, does not come cheap.
    eg the P2 emulation FPGA, is circa $400 !

    What may be practical is a single P1V COG, in a modest FPGA alongside a std P1 (8 COGS).
  • Here's another site to have a look at to get some ideas.

    http://www.fpga4fun.com/DDS1.html
  • Sorry for my absence I was in another country getting a little R&R. I am impressed and knew the good people here would be able to help me out. Looks like I have loads to read and ill be calling for a demo FPGA board soon. Thanks so much.
Sign In or Register to comment.