introducing FPGA's

Discussion in 'VHDL' started by jdw, Nov 25, 2007.

  1. jdw

    jdw Guest

    I hope I am not being presumptuous in seeking assistance from this
    group. I have been trying to research material with respect to a
    digital course I am teaching at a technical college in Edmonton,
    Alberta Canada (NAIT). The course is introductory in nature and is
    presently covering the usual digital topics including PLD programming
    quite well, however we are still back in the CUPL/palce22v10 era,
    which of course is embarrassing. I am toying with introducing Matlab
    (we could use it later in other courses) since it now appears to
    provide a means of creating VHDL code. Having read intensively for a
    couple of weeks I now see VHDL as a workable language, but probably
    excessively demanding of the students I am dealing with. Of course
    there is also the issue of the hardware that would be used in this lab/
    lecture course. To this moment I have been in contact with Aldec and
    am considering a development kit from Xilinx.



    In Alberta we have many dinosaurs, but I would prefer not to be one of
    them. If you feel you could comment constructively and don't mind
    taking a few minutes, I would be most appreciative. I am not that
    far from retirement age, have an EE degree, and am just trying to do
    my bit to improve the quality of what we are offering our students.
    It is very challenging jumping into something as complex as FPGA
    programming as you can no doubt understand.



    Jack
     
    jdw, Nov 25, 2007
    #1
    1. Advertising

  2. jdw

    EEngineer Guest

    On Nov 24, 10:01 pm, jdw <> wrote:
    > I hope I am not being presumptuous in seeking assistance from this
    > group. I have been trying to research material with respect to a
    > digital course I am teaching at a technical college in Edmonton,
    > Alberta Canada (NAIT). The course is introductory in nature and is
    > presently covering the usual digital topics including PLD programming
    > quite well, however we are still back in the CUPL/palce22v10 era,
    > which of course is embarrassing. I am toying with introducing Matlab
    > (we could use it later in other courses) since it now appears to
    > provide a means of creating VHDL code. Having read intensively for a
    > couple of weeks I now see VHDL as a workable language, but probably
    > excessively demanding of the students I am dealing with. Of course
    > there is also the issue of the hardware that would be used in this lab/
    > lecture course. To this moment I have been in contact with Aldec and
    > am considering a development kit from Xilinx.
    >
    > In Alberta we have many dinosaurs, but I would prefer not to be one of
    > them. If you feel you could comment constructively and don't mind
    > taking a few minutes, I would be most appreciative. I am not that
    > far from retirement age, have an EE degree, and am just trying to do
    > my bit to improve the quality of what we are offering our students.
    > It is very challenging jumping into something as complex as FPGA
    > programming as you can no doubt understand.
    >
    > Jack


    I used to TA the intro to digital design course at my univ. Altera's
    DE2 boards are excellent educational/evaluation FPGA boards that we
    used for the course. They are good for beginners but can be used for
    some advanced applications too. I found Altera's boards more user
    friendly than similar from Xilinx. Having years of electronics
    hardware and embedded processor experience, and couple of years of
    teaching undergrad/grad students, I found that introductory ECE course
    is useful for students to see how simple software concepts (simple
    logic in VHDL) translates into hardware functionality where you
    control different things on the FPGA evaluation board (LEDs, 7-segment
    digits as outputs, debounced switches and pushbuttons as inputs, or
    even some external hardware on the breadboard via evaluation board's
    header IOs). Inputs and outputs defined in the top level entity of the
    VHDL design need to be mapped to the desired resources on the board
    (this is nicelly covered in the Altera's datasheets).
    The simple examples in VHDL where you implement just several logic
    gates are the most useful for understanding the basics of
    combinational logic implementation. Second part would be example of
    sequential logic implementation - using a process with a clock that
    assigns signals (those signals are inferred as flip flops during the
    synthesis). This can include a counter for example. The third part can
    be a simple state machine.

    Hopefully this helps,
    Dan
     
    EEngineer, Nov 25, 2007
    #2
    1. Advertising

  3. jdw

    Guest

    On Nov 24, 11:39 pm, EEngineer <> wrote:
    > On Nov 24, 10:01 pm, jdw <> wrote:
    >
    >
    >
    > > I hope I am not being presumptuous in seeking assistance from this
    > > group.


    Despite the obvious evidence to the contrary, I still like to think
    that's what we're here for :)

    however we are still back in the CUPL/palce22v10 era,
    > > which of course is embarrassing.


    My sympathies :) Of course, that has the also clear benefit of
    producing students who understand how their code relates to some
    tangible piece of hardware that can watch on a 'scope.

    > > I am toying with introducing Matlab
    > > (we could use it later in other courses) since it now appears to
    > > provide a means of creating VHDL code. Having read intensively for a
    > > couple of weeks I now see VHDL as a workable language, but probably
    > > excessively demanding of the students I am dealing with.


    If you think VHDL is hard for your students, then don't even think
    about Matlab. It's not that Matlab is hard (it's not), but it's yet
    another layer of abstraction that confuses the basics. In my opinion,
    if you don't know how to design hardware to begin with, you shouldn't
    be designing hardware. Period. (Yeah, OK, now who's the dinosaur :)
    Using a lot of high layers of abstraction will cause you to spend more
    time explaining Matlab and less on the fundamentals.

    If you want your students to be useful when they graduate, and have a
    limited amount of time/experience to work with, give them a background
    (1) in the most common industrial environments (plain VHDL or Verilog)
    along with (2) a real understanding of digital design. I would not
    want to hire a hardware designer who doesn't understand that two
    cascaded flops causes a two clock delay, no matter how many
    functioning FFT engines he can "create" by pressing a button on a GUI.

    If you get the tool infrastructure set up (how to compile a project,
    map pins to the demo board, download the bitfiles, etc), you can make
    the FPGA programming (i.e the design work) as easy or as hard as you
    like by setting the level of the examples and excercises.

    Just my two cents (.021 USD :)

    - Kenn
     
    , Nov 25, 2007
    #3
  4. jdw wrote:

    > It is very challenging jumping into something as complex as FPGA
    > programming as you can no doubt understand.


    Yes.
    It may be too much to cover vhdl and digital electronics
    in one class.

    I would either focus on basic digital topics using
    quartus schematic capture and an altera demo board *or*
    hdl synthesis and simulation with a digital electronics
    prerequisite.

    -- Mike Treseler
     
    Mike Treseler, Nov 25, 2007
    #4
  5. jdw

    Chris Maryan Guest

    I'll second what someone else said about the Altera boards, there's a
    lot of bang for your buck in them.

    If cost is a concern, you can ditch the boards all together and do the
    whole thing in simulation. Put Altera's free Quartus II web edition
    software on a PC and teach from that. The waveform simulation is quite
    good for instruction purposes.

    For varying levels of abstraction, Quartus (and the Xilinx equivalent)
    allows you to 'code' in purely graphical terms, by drawing a schematic
    of gates, etc. This is very good for introducing basic logic. Then
    they can move up to VHDL or Verilog.

    I'm not sure about college level, but a good introductory university
    level text is Brown and Vranesic. It does things in VHDL.

    One thing I would stress is to make sure that your students understand
    how synthesis from VHDL is done and good VHDL coding practices (i.e.
    writing hardware rather than trying to write software). I TA a course
    where the lab component is done in VHDL and I find the students do
    much better if explicitly instructed on how VHDL synthesizes, rather
    than just learning VHDL syntax and winging it. This may seem obvious
    but our problem is finding time in the curriculum to do this on top of
    dealing with the real course content (processor architecture).
     
    Chris Maryan, Nov 26, 2007
    #5
  6. Chris Maryan wrote:

    > If cost is a concern, you can ditch the boards all together and do the
    > whole thing in simulation. Put Altera's free Quartus II web edition
    > software on a PC and teach from that. The waveform simulation is quite
    > good for instruction purposes.


    Exactly. To learn vhdl, all I need is
    1. A simulator to prove that my code is functional, and
    2. Synthesis software to verify that my code
    synthesizes, fits, and makes Fmax.
    Flashing the LED on the board is just icing on the cake.

    > For varying levels of abstraction, Quartus (and the Xilinx equivalent)
    > allows you to 'code' in purely graphical terms, by drawing a schematic
    > of gates, etc. This is very good for introducing basic logic. Then
    > they can move up to VHDL or Verilog.


    I agree.
    Schematic entry provides motivation and
    the a demo of code to RTL viewer seals the deal.

    > One thing I would stress is to make sure that your students understand
    > how synthesis from VHDL is done and good VHDL coding practices (i.e.
    > writing hardware rather than trying to write software). I TA a course
    > where the lab component is done in VHDL and I find the students do
    > much better if explicitly instructed on how VHDL synthesizes, rather
    > than just learning VHDL syntax and winging it.


    This can be covered by insisting on
    a synchronous process. The results
    can be seen in the RTL viewer.

    > This may seem obvious
    > but our problem is finding time in the curriculum to do this on top of
    > dealing with the real course content (processor architecture).


    Why is always a candy machine or a processor? ;)

    -- Mike Treseler
     
    Mike Treseler, Nov 26, 2007
    #6
  7. Mike Treseler <> writes:

    > Chris Maryan wrote:
    >
    >> If cost is a concern, you can ditch the boards all together and do the
    >> whole thing in simulation. Put Altera's free Quartus II web edition
    >> software on a PC and teach from that. The waveform simulation is quite
    >> good for instruction purposes.

    >
    > Exactly. To learn vhdl, all I need is
    > 1. A simulator to prove that my code is functional, and
    > 2. Synthesis software to verify that my code
    > synthesizes, fits, and makes Fmax.
    > Flashing the LED on the board is just icing on the cake.


    That assumes that all you want to do is flash an LED - as soon as you
    have something more complex to interface to you have the problem of
    getting models. Often you write your own, which means simulation
    works fine (after all, I wrote both sides of the interface, it's bound
    to work together). It's not until you try it on real hardware that
    you discover where the holes inyour model of external devices are.

    Also, there's something fulfilling (in the early days at least) of
    seeing real lights flashing. I remember my first VHDL course - we
    "made" a digital clock, but all in simulation - it didn't feel like
    I'd achieved anything. The icing can be very tasty :)

    >> This may seem obvious
    >> but our problem is finding time in the curriculum to do this on top of
    >> dealing with the real course content (processor architecture).

    >
    > Why is always a candy machine or a processor? ;)


    I like non-framebuffer video demos - hook up a pin each to RGB, VS and
    HS of a VGA monitor

    * First make the sync pulses.
    * Draw a box around the edge of the screen (good for catching off-by-one
    errors in the counters and decode when you get a 2 pixel line down one
    side :)

    Work up from there -
    * Make a pixel "bounce" around the screen
    * Make it a circular blob
    * All the way up to doing a pong game
    - put scores up, read some up/down switches (or even pots),
    multicolour, on-the-fly 3d-rendering (well, for the advanced
    student :)
    * Put in a coin slot and you could even have the coin-counting state-
    machine so beloved of academia before you get to play a game :)

    Cheers,
    Martin

    --

    TRW Conekt - Consultancy in Engineering, Knowledge and Technology
    http://www.conekt.net/electronics.html
     
    Martin Thompson, Nov 26, 2007
    #7
  8. jdw

    Chris Maryan Guest


    > > This may seem obvious
    > > but our problem is finding time in the curriculum to do this on top of
    > > dealing with the real course content (processor architecture).

    >
    > Why is always a candy machine or a processor? ;)
    >
    > -- Mike Treseler


    In this course, yes, a processor but it's a course about processors so
    I suppose it's legit. To our credit, in an intermediate course the
    students here do an image decoder/encoder. The idea being they get
    close to a real world FPGA application like MPEG decoding. Video would
    be too much at that level, but still image processing that involve
    colour space conversion, compression, etc is a good start.

    Chris
     
    Chris Maryan, Nov 26, 2007
    #8
  9. jdw

    Guest

    On Nov 24, 7:01 pm, jdw <> wrote:
    > I hope I am not being presumptuous in seeking assistance from this
    > group. I have been trying to research material with respect to a
    > digital course I am teaching at a technical college in Edmonton,
    > Alberta Canada (NAIT). The course is introductory in nature and is
    > presently covering the usual digital topics including PLD programming
    > quite well, however we are still back in the CUPL/palce22v10 era,
    > which of course is embarrassing. I am toying with introducing Matlab
    > (we could use it later in other courses) since it now appears to
    > provide a means of creating VHDL code. Having read intensively for a
    > couple of weeks I now see VHDL as a workable language, but probably
    > excessively demanding of the students I am dealing with. Of course
    > there is also the issue of the hardware that would be used in this lab/
    > lecture course. To this moment I have been in contact with Aldec and
    > am considering a development kit from Xilinx.
    >
    > In Alberta we have many dinosaurs, but I would prefer not to be one of
    > them. If you feel you could comment constructively and don't mind
    > taking a few minutes, I would be most appreciative. I am not that
    > far from retirement age, have an EE degree, and am just trying to do
    > my bit to improve the quality of what we are offering our students.
    > It is very challenging jumping into something as complex as FPGA
    > programming as you can no doubt understand.
    >
    > Jack


    In addition to the UP2, there are other options. A MAX-II board
    (think of it as 200 of your 22V10's in one chip) can be had for as
    little as $50. Similar boards exist for the CoolRunner.

    Both Altera and Xilinx have special programs for educators. I have
    taken advantage of both, and they were both very valuable.

    While everything they *need* can be done with just a simulator, do not
    undervalue blinking lights. Having their work manifest itself in a
    "real" object makes the connection much stronger, and stimulates
    learning.

    Having taught a couple of VHDL classes, I can very strongly recommend
    the Peter Ashenden books. The Student's Guide for beginners, and the
    Designer's Guide for advanced students and instructors.

    I hope this helps,
    G.
     
    , Nov 26, 2007
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Sandeep Dutta
    Replies:
    16
    Views:
    1,458
    Walter Banks
    Dec 14, 2004
  2. jdw
    Replies:
    5
    Views:
    417
    Chris Maryan
    Nov 30, 2007
  3. Vikram
    Replies:
    0
    Views:
    824
    Vikram
    Jul 24, 2008
  4. TheRightInfo

    FPGA BOARD FOR NEWBIE TO FPGA

    TheRightInfo, Feb 2, 2011, in forum: VHDL
    Replies:
    1
    Views:
    1,347
    Tricky
    Feb 2, 2011
  5. Oliver Mattos

    Re: FPGA BOARD FOR NEWBIE TO FPGA

    Oliver Mattos, Feb 2, 2011, in forum: VHDL
    Replies:
    0
    Views:
    1,138
    Oliver Mattos
    Feb 2, 2011
Loading...

Share This Page