![]() |
introducing FPGA's
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 |
Re: introducing FPGA's
On Nov 24, 10:01 pm, jdw <jwal...@nait.ca> 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 |
Re: introducing FPGA's
On Nov 24, 11:39 pm, EEngineer <mari...@gmail.com> wrote:
> On Nov 24, 10:01 pm, jdw <jwal...@nait.ca> 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 |
Re: introducing FPGA's
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 |
Re: introducing FPGA's
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). |
Re: introducing FPGA's
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 |
Re: introducing FPGA's
Mike Treseler <mike_treseler@comcast.net> 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 -- martin.j.thompson@trw.com TRW Conekt - Consultancy in Engineering, Knowledge and Technology http://www.conekt.net/electronics.html |
Re: introducing FPGA's
> > 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 |
Re: introducing FPGA's
On Nov 24, 7:01 pm, jdw <jwal...@nait.ca> 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. |
| All times are GMT. The time now is 01:33 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.