Posts

Showing posts from June, 2020

Forums

Post your progress for the day 6/30/20

Matt Harrison's Github

Matt Harrison is a recent Siena graduate whom I've worked with on FPGAs for the past two years. He created the original lessons that we did and also made some cool projects like an audio signal generator and "etch-a-sketch" with FPGA Pmods. He gave me permission to post his Github page so you can check out his projects here: https://github.com/mfHarrison/CSIS220Tutorials

Old FPGA blogs

https://fpgasiena2017.blogspot.com/ http://zedboardsiena2015.blogspot.com/

Post your progress for the day 6/29/20

KYPD and OLED Update

Hey everyone, Brandon here The KYPD and OLED example codes actually work for Verilog if you download the Verilog versions from the links: https://reference.digilentinc.com/pmod/pmod/kypd/example_code https://reference.digilentinc.com/pmod/pmod/oled/example_code I had falsely assumed that you needed the Microblaze to get code working for these Pmods, Something may have changed with the page because I have documentation from last year of using C code with Microblaze. Either way, you can use them with Verilog. Add the proper modules and it should work (theoretically). I'll update this post with any fixes that I may have to make. UPDATE: So I have been trying to get the OLED Verilog code to work, the problem is it was not made for the current Vivado version, it was made for ISE in 2012 (this is the previous version of the software). One of the lines in the code uses SystemVerilog, a certain version of Verilog not directly supported by Vivado. I had to change the file extension of this ...

Post your progress for the day 06/26/2020

Post your progress for the day 6/25/20

Post your progress for the day 06/24/2020

Verilog by Example - A concise introduction for FPGA Design by Readler

I scanned in the pages to the book. I left out some of the end of the book reference material and the index. I went to his site, www.readler.com and downloaded the files that accompany this book.

Post your progress for the day 6/23/20

Post your progress for the day 6/22/20

Vivado and SDK - programming the FPGA with C

Hi All, This example is similar to idea of creating a hardware design for a microblaze on the FPGA and then programming it with C. This goes through a hardware design (with Vivado) and then programming in C to have the buttons and LEDs interact. You may wonder why we would do this as we can do it in hardware. But, what if we wanted to change something about the buttons or the LEDs or the timing? We could leave the hardware design alone and program it with C to change things. This is also good practice as embedded systems already have fixed hardware and use C to program the hardware (like the Arduino and other more advanced boards).  Learning C to control hardware is a good skill to acquire if you want to go into hardware as an EE> https://reference.digilentinc.com/learn/programmable-logic/tutorials/zedboard-getting-started-with-zynq/start Please add other resources here. https://www.realdigital.org/doc/354a649ecea638b4fe710094916077f4 Holy Grail Awesome book:  http://mef-la...

Post your progress for the day 6/19/20

Post your progress for the day 06/18/2020

Monitor cables and monitors

Image
Fig 1. VGA to HDMI cable Figure 1 shows VGA to HDMI connections. The blue end (VGA) plugs into the FPGA board and the black end (HDMI) plugs into the monitor. Please check you check your monitor to see if it takes HDMI.  And if this is what you actually want? There's also VGA to DVI cables as shown in Figure 2.  Fig 2. VGA to DVI cable The assumption is that you have a spare monitor at home and can plug the FPGA into the monitor. I haven't ever tried plugging the FPGA into my laptop (I use a Macbook Pro). If you live nearby, I have spare monitors and can drop them off. Sam and Evan - I could meet you half way if you need a monitor.  Let me know which cable you want and whether you need a monitor.

Post your progress for the day 6/17/20

Parts list for Programming FPGAs

Possible parts we would need: Speaker Servo motor VGA to HDMI VGA Cable (VGA to VGA) 1k resistor Wires Various other resistors Post what you would like

Post your progress for the day 6/16/20

Post your progress for the day 6/15/20

Programming FPGAs Chapter 6 Module

After going through Chapter 6 again I realize that the "alarm" module for the project isn't actually described in the book. It's available for download from the author's GitHub. You can get it here: https://github.com/simonmonk/prog_fpgas/blob/master/elbert2/ch08_alarm/src/alarm.v

Post your progress for the day 6/12/20

Pmod Requests

Post your progress for the day 06/11/20

Embedded CPU (Microblaze) Links

https://reference.digilentinc.com/vivado/getting-started-with-ipi/2018.2 This uses the Arty board as reference but we are using the Basys board, it should be straight forward to change if there are any changes to be made but contact me if you need help. We are using the Microblaze path, not the Zynq path

Pmod Resources

https://reference.digilentinc.com/learn/programmable-logic/tutorials/pmod-ips/start Example codes: OLED: https://reference.digilentinc.com/pmod/pmod/oled/example_code Keypad: https://reference.digilentinc.com/pmod/pmod/kypd/example_code Add any you find in the comments

Post your progress for the day 6/9/20

Post your progress for the day 6/8/20

Loading programs to the board at a later time

If I'm a student and want to run my program again for some reason (show my friends, just for fun, etc.), how can I do that without starting over and creating a new file? Can someone create instructions?

Vocabularies

Basics for Digital Logic

Image
Hi Everyone,  It's been a while for me since I did anything with digital logic and had to remind myself of some stuff.     If it's a new topic to you, I thought that it might be informative to know.  Logic is what computers or circuits use to make decisions, and that becomes important for automating an action.   A simple example is if you want to know if a door opens, you can make a circuit with a switch to light a bulb or ring a bell if the door opens.   The circuit is simple, but evaluates a condition (is the switch open or not), and then has a consequence (turn on the light).      If you want to compare two or more conditions at once, it's necessary to use a logic gate, or a device that compares two conditions or inputs at the same time.  If you and your roommate want to have a secret ballot to decide if you want to get pizza, and both push a button at the same time to say "Yes", you need an AND gate to see that ...

Post your progress for the day 6/5/20

And have a good weekend!

Potential Projects to Work On

I found a project or two that I think we might be able to achieve. They both aren't specified for Vivado or our Basys 3 board but we might be able to adapt them. Continue to add ideas here! The first one is a replica of the classic PONG game using the VGA output:  fpga4fun.com - Pong Game The second is a digital oscilloscope that admittedly looks pretty hard but its just an idea:  https://www.fpga4fun.com/digitalscope.html  . Both of these come from the site  https://www.fpga4fun.com/  , which seems to be a good resource.

Post your progress for the day 6/4/20

Suggestions from Professor White

1.  There is a very real possibility that we will be online for some part of the semester.  In this case, I am looking at free, online FPGA simulators.  None I have found so far have an interactive "board" to manipulate and see outputs (e.g., LEDs, 7 segment displays, etc.).  That's unfortunate, but understandable.  I have found several other resources and examples though.  It would be nice if your students could produce a video of themselves doing each lab, at each step explaining WHAT they are doing and WHY it is necessary/important to the overall goal.  The video should conclude with a demo of interaction with the board where they systematically test all input combinations and the outputs, clearly explaining the inputs and expected outputs and circling back to the construction of the FPGA behavior. 2.  The ultimate goal for computer architecture in CSIS-220 is to understand how the processor works.  To do this, we look at a ...

Resources on FPGA's/Verilog

I have no background with FPGA's (except for a great quick explanation from Brandon) so I'm trying my best to learn about them. I learn well through youtube videos so I found 3 videos that range in complexity, from simple to more in depth, based on usage, design, pros/cons, etc. The terminology is definitely confusing but I thought these served as a useful introduction to it.  Easier to grasp:  https://www.youtube.com/watch?v=CfmlsDW3Z4c More in depth:  https://www.youtube.com/watch?v=gUsHwi4M4xE&t=2s  Hopefully this makes sense later:  https://www.youtube.com/watch?v=jbOjWp4C3V4&t=780s As for Verilog I found this so far that might be helpful: https://www.youtube.com/watch?v=vVYOV9MP5BA

Errors that have come up in Vivado

I wanted to make a post about some errors I've seen and personally run into in Vivado. I'll amend this post if/when more come up and please comment if you have had errors not listed here or any solutions Errors can be found in the Messages at the bottom of the Vivado software and also come up when Synthesis, Implementation, and Bitstream generation fail. "No constraints selected for write", this also comes along with a message "X out of X logical ports... etc.": If you see this, this typically means that there is a problem with the constraints file. Make sure your input and output ports that are required are matched to the ports used in your block diagram or Verilog modules; they all must have exactly the same name! Also, check to make sure you are using Basys 3 board files and not those for another board. You can check the "Board" tab in the top left screen of Vivado (where sources, design, and signal are also tabs).  Be sure your board is correct...

Post your progress for the day 06/03/2020

Possible Problems on Lesson slides

I had a couple of questions yesterday regarding some unclarified aspects of the slides and some technical difficulties. The first was when Basys3.xdc or another .xdc file from Matt Harrison's GitHub was saved it showed up a text file. If this happens to you, here's what to do (if you have Windows 10)  Search for File Explorer Options in the Windows 10 settings  Navigate to the View tab (second tab at the top)  Uncheck "Hide extensions for known file types"  Hit Apply  Go to your Basys3.xdc file which should now say Basys3.xdc.txt  Rename the file by just deleting the .txt  The file should now just say Basys3.xdc  You can go back to the File Explorer Options and recheck "Hide extensions for known file types", but you don't have to The second is the positioning of inputs or outputs on a block in Vivado. If you have an output that is labeled at, for example, the top right of the block and another output at the bottom left, but someone else making the...

Post your progress for the day 6/2/20