Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Chris Taylor

Learning FPGAs: Chutes & Ladders

Chris Taylor
Page 1 / 3   >   >>
Max Maxfield
Max Maxfield
1/28/2013 10:02:10 AM
User Rank
Blogger
Re: Change of perspective
My head is a jumble of ideas. On the one hand I've been thinking about the best way to explain FPGA concepts to younger folks. One way to do thsi would be to provide a simple schematic entry mechanizm that allows you to capture a design as a circuit of logic gates and registers, and then explain that this design gets loaded into the FPGA.

The problem with this is that we no longer design at the level of gates and registers -- we capture our designs at a higher level of abstraction (RTL or higher) --then we feed theses descriptions into synthesis -- and the gate/register-level netlist is the output from synthesis.

Like I say, my head is a jumble of ideas abouit how best to explain this -- but I do think that sketching a curcuit out on a piece of paper -- even if it's at the level of functional blocks being connected together -- helps convey the fact that each blog will be "doing it's thing" independently of the other blocks (that is, all of the blocks will be active and doing things at the same time)

 

50%
50%
Garcia-Lasheras
Garcia-Lasheras
1/25/2013 8:56:23 PM
User Rank
Blogger
Re: Change of perspective
I think the 7400 series implementation vision that you are speaking about is a very good starting point for FPGA world newcomers. It make me think in the ever-present schematic vs HDL debate.

Since joining the APP community, I've noted that most of the people here comes to FPGA design from the classic soft-programming paradigm (MCUs, processors, operative systems...). In fact, I believe that this is the general situation out there.

I was involved in physical microelectronic design when I first met a FPGA. More precisely, I was used to think in terms of electrical signals flowing throughout metal wires and reaching custom CMOS gates that I was developing: even a simple NAND, OR... logic gate supposed a pretty high level abstraction for me!!!

Nowadays, I still need to work in schematics capture mode in order to understand what is really going on in my designs. My HDL skills are very limited, and I should admit that programming in VHDL or Verilog is still a pain for me...

My "personal ladder" is to visualize the HDL components as black boxes in a hierachical schematic design. Then, I fill the boxes with primitives, code snippets or already available IP cores, and I only write new HDL code when strictly necessary.

Maybe this is not the most convenient way of getting the work done, but I strongly believe that becoming aware of that we are really "wiring" hardware block components when using a FPGA is a key point in order to cope with the issues of a first approach to this technology.

 

50%
50%
Wale
Wale
1/25/2013 5:21:06 PM
User Rank
Beginner
Re: Change of perspective
World is at the fast lane of dynamism and technology is a key part to this change. I think programming either hardware descriptive or software abstraction level both still have same method of coding but differentiation lies in syntax and few other stuffs.

What's FPGA? It's method of programming for logic device and field programmable gate array only taking care of the complexity part of it. In embedded system, simulation, modeling and/or formalization are essentials part - their goals are to ensure system correctness properties vis -a-viz reliability and integrity to their real life behaviours.  Meanwhile, VHDL is just another coding of Verilog coined as Verilog Hardware Descriptive Language ( VHDL) is a traditional C concept of coding.

Even if you have worked on any real time operating system kernel like uCos II, this also C concept but difference is archicture of the processor RTOS running on, this makes RTOS coding more time and memory management inclined. Yes, IF, THEN and CASE ... and perhaps FSM.

50%
50%
Max Maxfield
Max Maxfield
1/25/2013 4:03:25 PM
User Rank
Blogger
Re: Change of perspective
@Crusty: ...by this time next year I will have an FPGA version running...

Very, very cool ... OK, everybody ... mark your calendars :-)

50%
50%
Crusty
Crusty
1/25/2013 3:58:19 PM
User Rank
Blogger
Re: Change of perspective
@Max, It was a gradual demise, so many modifications over the 5 years it was running.

The keys finally started to give up life and chips sockets became erratic.

The Acorn BBC B came onto the scene, and my children wanted the posh BBC instead of the funny old puter dad made. It languished in a box in the workshop until some heavy weight rested on one end of the PCB at which point pcb cracked in half.

I salvage all the TTL chips and Roms but that was it.

I think the Science Museum has a board still. 

It was a joy to use, as you could put a scope on any bit and see the waveforms and timing.

If you or anyone wants copies of the schematics of the Ohio Scientific version and the additional boards, I can scan them into the PC send them to you. Roms are available on the Net and I have some development roms that may not be on the net.

I will set a time limit that by this time next year I will have an FPGA version running?

 

50%
50%
Max Maxfield
Max Maxfield
1/25/2013 3:31:17 PM
User Rank
Blogger
Re: Change of perspective
@Crusty: I think that came out around 1978/79 -- I was at university then and didn't have any time (or money) free -- but looking back I wish I had built one of those -- I really wish you hadn;t lost yours ... what happened to it?

50%
50%
Crusty
Crusty
1/25/2013 3:22:58 PM
User Rank
Blogger
Re: Change of perspective
@Max, As a young lad I used to get the electronics hobbyist magazine "Practical Electronics" in the UK.


Practical Electronics. Did you follow the series on the UK101? It was an English copy of the  Ohio Scientific single board 6502 computer all 74 TTL logic, it had built in Basic (early Microsoft with bugs). I built one while working at the London Underground Research Labs, 4K of static ram it cost me £300 and basically Kick started my electronics professional career. It took a deal of talking to get the wife to agree to that expenditure.

I still have the roms and the circuit diagrams though the single board departed life long ago. When I have got a bit more HDL control under my belt I intend to fully transfer the circuits to an FPGA . I might even worry you all by writing a reto blog on raising the past to life again?

I seem to remember my department head, getting upset and making one as well. He was not to be upstaged by his bench technician.

50%
50%
Max Maxfield
Max Maxfield
1/25/2013 2:54:12 PM
User Rank
Blogger
Re: Change of perspective
@matthew180: I know just what you mean, although my background was a bit different. As a young lad I used to get the electronics hobbyist magazine "Practical Electronics" in the UK, in addition to transister-level projects there were a lot of simple 7400-series TTL projects, so I was used to thinking in terms of hardware before I went to university.


At university I learned to program in FORTRAN and BASIC (I learned Pascal and C "on the job" after I'd graduated). When I was first exposed to a hardware description language and software/logic simulation (this was long before Verilog and VHDL) -- it all made perfect sense to me -- it mapped onto th eway I already thought the world worked.

50%
50%
matthew180
matthew180
1/25/2013 2:38:18 PM
User Rank
Beginner
Change of perspective
I'm not sure I had a moment where things "clicked", but I certainly had a moment where changing my perspective allowed me to really accomplish my goals.  That moment happened when I started thinking about how I would design my circuit using 74LS logic instead of HDL.

I was coming from a programmer's perspective sure, but I also know some electronics and have worked with microcontrollers, TTL logic, etc. before, so at least I knew I was not "programming".  However, HDL constructs like IF THEN, CASE, etc. can be very misleading for a person coming from a software discipline.  Understanding what you are describing is critical to getting things working, and using the classic 74-series logic chips is a great way to visualize your circuit and understand what you are doing.

Using this mental model also helps you wrap your head around the parallel nature of hardware and FPGAs.  If you put two chips on a breadboard, wire them up and apply power, it is natural to look at them and understand that they will both be operating at the same time, instead of one waiting for the other to do something.  Circuit boards are two-dimensional with wires running all over the place, "code" on the other hand is a one-dimensional linear list that establishes a mental model of a sequence.  I think HDL's biggest problem is the presentation (not that I have a better idea at this point, I'm just making an observation).

Getting out of the theory and theory-heavy books, and on to texts that give practical working examples helped me a lot too.  I'm a hands-on self-taught learner, so to much math or theory and I glaze over.  Show me a formula and I'll shrug and move on.  Show me that formula implemented in code or HDL, now I can understand it and use it.  And as for Moore or Mealy...  Don't care.  Neither ever helped me get my FSM working.

50%
50%
svenand
svenand
8/26/2012 5:31:57 AM
User Rank
Blogger
FPGA design from scratch
I have described my FPGA learning process in the blog: FPGA from scratch. Having an ASIC design background and stubbornness helped a lot.

50%
50%
Page 1 / 3   >   >>
More Blogs from Chris Taylor
As versatile and accessible as home fabrication has become, there remains an enormous hurdle: DIY semiconductor chip fabrication.
Should digital logic theory and FPGA implementation be taught concurrently or sequentially? How does a would-be professor find the best middle ground?
FPGAs are becoming increasingly common in the hobbyist world based on the merits of customization and speed and the advantages associated with the concept of open-source.
Using a Papilio FPGA Development Board, the team built an AVR8-based soft-controller, running on the Papilio, that could handle the kind of data processing and buffering required for the project, while still being able to write code in the Arduino domain.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS