Teaching FPGA from/to home ?  - Page 1
Forum section: electronics / general

author: sam[PS]
author_rank: Contributor
timestamp: April 14, 2020, 09:16:12 pm
content: Hey there, i happens to be electronic/computer science teacher at university, and i got a problem i don't find solution so i thought i would submit to the community see if someone else can come with an idea.So here is the thing, uni is closed due to covid19 pandemic, but we are supposed to ensure "pedagogic continuity" i.e. teaching over internet. Not much a problem for teaching De Morgan and basic logic or ohm's law. But i got two cycles teaching VHDL and FPGA, how i use to teach this is 90% hands on lab sessions. I just have no idea how i can do that from distance. I have been teaching this for more than 10years from that experience it's a lot of getting form student to student looking at what they have done commenting on it discussing about the error and why it's an error even if it's not obvious (you know that yeah that's syntactically correct but won't synthesize as you expect...). Doing this online would probably be possible with 1-2 student at a time but in a typical lab session i got up to 26 at a time. In flesh that mean lot of running from student to student. So online this method would be just purely impracticable.So if you have any idea on how to teach vhdl/fpga/logic design purely online i'm taking all ideas.Sam

author: pigrew
author_rank: Frequent Contributor
timestamp: April 14, 2020, 10:19:02 pm
content: I don't have too much to add, but I'm in almost the same situation (perhaps worse). I think the quality of the education has decreased.I'm running a project-based design course. Most of the student projects will not be able to be completed (due to students not having home labs), and will be instead simulated. Currently, I'm running a 30-minute group announcement session at the start of lab, and then holding office hours of the rest of the period. On Thursdays, I've scheduled half an hour to talk to each team (four teams total).The majority of the lecture material has been moved to BlackBoard, for download and reference by the students, but not directly lectured about.We're using WebEx and Slack for communication. If you don't have any teams, perhaps Piazza would be beneficial versus Slack. During the "office hours", students share their screens, and I give them help. Other students can watch (though they rarely do). It's lots of virtual running around. I've also pushed students to put their source code on GitHub. However, if everyone has the same assignment, that'll create plagiarism. My experience in USA is that a significant number of students have few morals, and my university rarely punishes anyone.Most intro FPGA stuff probably can be virtualized/simulated, so that's good. The stuff that can't is I/O. Depending on your labs, the students will need their own FPGA, laptop, maybe logic analyzers or oscilloscopes. We lent many of our students AnalogDiscovery 2 units for that, but it's expensive.Also regarding distance education, I've been watching some Cadence training videos lately, and found their pace awful for me. They were trying to go over every little feature of their software. My learning style is that I want a good overview of what's possible in lecture, maybe some tips, but the details would be self-study from the lecture notes.

author: RoGeorge
author_rank: Super Contributor
timestamp: April 14, 2020, 11:13:47 pm
content: Maybe do some video lessons, then upload them on YouTube.A few random examples:-Modern Embedded Systems Programming Course-Building Prototypes - Dan Gelbart-Control Theory - Brian DouglasIf you don't have filmed classes, just buy a Wacom tablet and record your screen while handwriting, same as it would in a live class with a piece of paper and a projector instead of a blackboard.About exercises, most students have a laptop/desktop to install a toolchain, also there are online toolchains available by a simple web browser.Simulation instead of devboards.Fast quizzes instead of written tests.VHDL projects sent by e-mail, as homework.Any other related project presented live by the student, instead of laboratory/seminar.If hands-on experience/lab is a must, then maybe you can split the course, so to postpone a week of labs for later, when the virus restriction will be removed.The restrictions won't last longer than a few more weeks, govs already overreacted grossly with the current measures.

author: asmi
author_rank: Super Contributor
timestamp: April 15, 2020, 12:59:43 am
content: Quote from: pigrew on April 14, 2020, 10:19:02 pmYou've got to get creativeIf you have an actual lab on premises, you can try organizing remote access to those PCs which have devboards connected to them. This way you can run stuff on boards remotely. In order to see what the board is doing, you can install webcams pointing to those boards. For IO, you will need to design or buy some kind of IO module which would allow stimulating board's GPIO from PC (like PLC perhaps, or even Arduino if you want to go that route). Yes, it's not going to be easy to get this set up, and somebody would probably need to be on premises during sessions just in case something goes wrong, but this is the world we live in todayBTW - I know this is the way some companies have things running, for example if they use cutting-edge FPGAs which costs more than many people's houses, so it's prohibitively expensive to buy multiple devboards. Remote access protects the board both physically (think about someone accidentally dropping $200k devboard, or killing it with the static charge) and from security standpoint (think theft, industrial espionage, ITAR, etc. ).

author: rstofer
author_rank: Super Contributor
timestamp: April 15, 2020, 02:21:23 am
content: The Xilinx Vivado toolchain has a nice simulator. You could look over the student's code but score on a screenshot of the simulator output.If you want a semester long project, consider the LC3 project. It is documented all over the Internet including the state transition diagram. The book version of the project is microcoded but that might not be the best way to go. OTOH, the table for determining the output of the microcode ROM is given.Building a RISC processor, even without pipelining, shows a certain amount of skill.There is also an LC3b version on the Internet (byte addressing) but it isn't as well documented and I'm not sure whether the textbook has been updated. You probably wouldn't want to use the "Introduction to Computing Systems" (Patt and Patel) but it's a pretty good book. The project is clarified in the Appendices and these are all over the Internet.

author: sam[PS]
author_rank: Contributor
timestamp: April 15, 2020, 02:21:13 pm
content: Thank you for all your returnI'm aware of all the things you mentions but when you start trying to realistically time all those solutions no one stand and that's where i am standing.With one class i have 4x4h, just installing vivado for most student will takes them at least one 4h chunk of time. Lot of technical notion have already been left aside to be able to get them to do practical thing in that few hours. Now the question is if you cut 1/4 of the time for just installing the toolsuite then what more to left aside in exchange ? FPGA are complex beast, lot of things to know to just get something out of it. There's only so much you can skip and we have already skipped quite lot over the years.As for reviewing student's work by sharing screen of course that CAN be done. But practically for reaching a student spotting an error explaining it to the student in flesh it's a matter of a minute. Thru internet the very same thing will takes me 10minuts. Normally for teacher it's literally running from one student to another, not so much off time. So if you multiply all time by an order of magnitude it just doesn't work.As it's been mentioned lot students are just copying other students work. In flesh it's pretty easy to notice it by just asking each student to explain why they typed this or that. The one who copy just can't explain the why.Don't forget those kind of teacher/student conversation use lot of non verbal, most student won't admit they don't understand what you say, as a teacher it's up to us to look at their face and be very attentive to bodylanguage to guess if they understand and eventually adapte the explanation when we feel they don't. The more complex the subject the more this is true. I just can't do that online.As of for how long all this will last, here it's been announced to be until next September for superior education. And that's the best case scenario.One thing i thought is to develop a special software with kind of a lint tool for vhdl with as clear as possible error message (one problem of FPGA tool is how cryptic the error message are). That could take care of 80% of the error/question so i can have time to focus on the 20% more tricky ones, and even bring me up statistics on type of error so i can give extra explanation globally where needed. That's what i'll do if you ask be to develop an online course for two year ahead. But i certainly can't develop such a tool in just few weeks so once again when you had time to the equation solution vanish.I'm afraid i'll have to resin to do it the old school magistral way for this year.Anyway thank you for your incomes and if you get other idea don't hesitate to share all is good to take at this point.

author: rstofer
author_rank: Super Contributor
timestamp: April 15, 2020, 04:23:12 pm
content: You have enumerated the difficulties with distance learning but just about every college and university on the planet is in the same situation. My grandson has the same issues from the learning perspective as an ME student at a local university. The campus is literally 1/2 mile away from home but it might as well be on Mars.The thing is, this CV thing isn't going to magically disappear before the fall semester, there is nothing compelling its demise. I believe the distance learning thing is going to be around for a very long time. I wouldn't want to be the first person to find out whether the social distancing thing really worked.VHDLwhiz.com has a bunch of free tutorials and he tends to do more with simulation than synthesis and he has a tutorial on how to set up Modelsim which is free for non-commercial use. It's a very nice simulator and the compilation step is blazing fast when compared to Vivado. He also has a couple of 'cost' programs, one is inexpensive and the other costs a bunch but it amounts to a graduate degree in simulation. As I have never done simulation, I found them both useful.MIT has been doing distance learning for a long time. Stanford used to televise their EE courses on campus and off campus as far back as '79 (that I know of). As it turned out, nobody had direct access to the professor, all they could do was use a microphone at the table to ask questions. We had an installation where I worked but we didn't have the microphone. We could watch the lecture and travel to the University to take exams but that was about it. I don't know where it stands today but distance learning was in progress 40+ years ago.

author: RoGeorge
author_rank: Super Contributor
timestamp: April 15, 2020, 05:39:46 pm
content: Maybe leave the Vivado installation as an exercise, you don't need to handwalk them to install a toolchain. There are countless written instructions or youtube videos about how to install Vivado. You said Xilinx, see if anything here can help for distance learninghttps://www.xilinx.com/support/university.htmlAgain, there are online toolchains that doesn't even require installation, e.g.https://hackaday.com/2015/07/21/learn-fpgas-in-your-browser/as an inspiration and a starting point for more online searching for similar tools. Maybe there is something in French, too, IDK.There is nothing wrong if students copy, as long as they understand some basic concepts. We all "copy" in the industry when we are using somebody else's IP, or somebody else's library, or a boilerplate, or even by following best practices.After all, if a student can copy a homework written in a strongly type language like VHDL and still keep it functional while changing it in such a way that it wouldn't be obvious at a diff, then that one shall pass!About the 2 years to prepare your own classes, again, use aWacom Tablet(not an iPad like table). "Wacom" are the ones that are used by artist to draw, or by others to take notes. That range of tablets have a mechanical pencil, some have wireless pencils, so you can write on it like you would write on a piece of paper, and explain the concepts by plain talk, like in a normal class. There are free programs that can record what you talk and what you write, it can be done live if you want to.This guy loves to use a drawing tablet even when a whiteboard is available:Same if you want to show them how you install Vivado, so they can repeat the steps at home, by themselves: record the screen with the Vivado installer while talking about installation, then upload the video on YouTube.About semiotics, find some suitable teleconference programs, and see how it goes. For sure it wouldn't be as easy as face to face talk in the lab, both you and the students need to accept that, but something is better than nothing.Whatever model you'll find working for you and your students, good luck with it!

author: nctnico
author_rank: Super Contributor
timestamp: April 15, 2020, 09:07:41 pm
content: Quote from: RoGeorge on April 15, 2020, 05:39:46 pmI agree. Setting up software is something students have to do in their own time. Also setup a group app / conference chat between the students so they can work together. From there give each student a (slightly) different assignment so they each have their own problem to solve but they can work together share knowledge on how to tackle the problem. As a teacher you only need to herd the sheep into the right direction and check the output.Remote access to lab computers is also an option. Back in the late 90's when I was attending EE university I designed a chip from home using the HP-UX (IIRC) computer at school remotely. That was when 64kbit was considered broadband and nobody cared computers where accessible from internet directly.

author: rstofer
author_rank: Super Contributor
timestamp: April 15, 2020, 09:24:34 pm
content: The presentation:For the Stanford program I mentioned above (circa '79) it appeared as though the professor was drawing on a paper tablet below the video camera. IIRC, we never did see the professor, just his written notes. Look at what Khan Academy does with a tablet. I still have no idea what Saul Khan looks like. Then there is 3Blue1Brown where there is some very nice graphics. I never have seen the author but the presentations are excellent.CalcWorkshop.com uses a conventional white board approach for all levels of math. It is a subscription site but the section on Limits is free. Jen does a nice job of staying out of the way.Writing on a piece of clear glass and then flipping the image from left to right with Microsoft Movie Maker (free) makes it appear as though the instructor is left handed but the important part is that the presented material isn't blocked. Many sites are using this technique.As much as everybody hates Microsoft PowerPoint, used correctly the slides can progressively introduce the material on successive slides. Yes, some very bad presentations have been made with PowerPoint.Microsoft Visio Pro might have some digital components.Following synthesis, Vivado will produce a schematic of the resulting logic. This is handy when demonstrating alternatives to various components.

author: RoGeorge
author_rank: Super Contributor
timestamp: April 15, 2020, 10:39:14 pm
content: Quote from: rstofer on April 15, 2020, 09:24:34 pmA little offtopic:The animations from 3bue1brown are outstanding, but far from something that can be done as easy as handwriting. His animation tools involve some programming skills:https://github.com/3b1b/manimAlso, video shooting, and then editing, is a very time consuming process when compared with just recording a live talk while scribbling on a tablet, or a toolchain window while working with Vivado or ModelSim.Slides presentations are OK when done in the style of classes notes, but for some reason, to me handwriting or hand drawing are so much easier to remember than perfectly typed or perfectly drawn computer graphic.

author: laugensalm
author_rank: Regular Contributor
timestamp: April 17, 2020, 04:39:20 pm
content: First, if you're willing to break the golden rule of starting with the classic HDLs, you could evaluate Jupyter notebooks with MyHDL support to begin with.I am not totally up to date, but some people have set up teaching environments that help to focus on the basics (and Python is really easy to learn). Found this one:https://github.com/xesscorp/myhdlpeekAnother very effective playground, however limited to console I/O:https://labs.play-with-docker.com/. We also used to have teaching sessions (over several continents) using a simple unix window using 'screen' and an open IRC chat window, these days that might work better over github and gitter chat and anything else that's web based.Personally, I am not the type of person to watch videos or tutorials, unless necessary, I think well organized projects with good documentation are more sustainable.However, the Docker approach which avoids the software installation and dependency dance is a bit of an investment. I have some pre-made containers for the classic opensource simulation and synthesis toolchains that you could use as reference to run things in the browser. I'm typically virtualizing the full SoC system with I/O (from UART up to virtual sensor interfaces) and ship it as a Docker container to someone around the globe to play with. Something that asks for Opensource. And actually, at the same time students might silently absorb the idea on how to collaborate 'open source' style using gitlab/github and the recent devops techniques without getting sidetracked by vendor/platform/OS specific issues.

author: sam[PS]
author_rank: Contributor
timestamp: April 17, 2020, 10:24:53 pm
content: QuoteThat's called cognitive ease. The thing is if it's to easy to read then you don't engage your brain enough so you don't think much about it so that in turn your brain create less connexion with that concept which mean it will be more difficult to remember i.e. reconnect with it.

author: sam[PS]
author_rank: Contributor
timestamp: April 17, 2020, 10:27:44 pm
content: @RoGeorgeThanks for having reminded me of EDAplayground. I've tried it few years ago but had forgot about it.I'll probably try to build some lab sessions around it.

author: paf
author_rank: Regular Contributor
timestamp: May 12, 2020, 04:27:22 pm
content: An alternative is the use of remote FPGA Laboratories.Some examples:https://labsland.com/en/labs/fpga-llstd1http://ohm.ieec.uned.es/portal/?page_id=103

author: NorthGuy
author_rank: Super Contributor
timestamp: May 12, 2020, 05:34:04 pm
content: Quote from: sam on April 14, 2020, 09:16:12 pmDo it through email or forum software - you post a video on what to do, the students do this at home with their own FPGA dev boards and then you discuss the problems with students on a private forum or by email.Once the pandemic is over, you have a course to sell online