We may earn an affiliate commission when you visit our partners.
Stephen Borsay

This is a free course which will teach you how to get up and running with field programmable gate arrays (FPGA's). You will learn the basics of programming in HDL on an inexpensive FPGA development board which is a valuable tool for both the hobbyist interested in "making" or the full time engineer with an interest in expanding his career options. FPGA's are both fun and challenging and provide many useful applications that can be applied to the real world. Whether you are a student, hobbyist, or engineer it is important to have the skills demanded in the digital age. By having a working knowledge of FPGA's you can differentiate yourself from your competitors in the marketplace and turbo charge your career with an additional, well paid, skill set that is currently needed in the marketplace. With these new digital skills you can help design communication equipment, audio and video, or signal processing and filtering applications; the ability to program and implement FPGA's can help you succeed in whichever engineering career path you choose..

Read more

This is a free course which will teach you how to get up and running with field programmable gate arrays (FPGA's). You will learn the basics of programming in HDL on an inexpensive FPGA development board which is a valuable tool for both the hobbyist interested in "making" or the full time engineer with an interest in expanding his career options. FPGA's are both fun and challenging and provide many useful applications that can be applied to the real world. Whether you are a student, hobbyist, or engineer it is important to have the skills demanded in the digital age. By having a working knowledge of FPGA's you can differentiate yourself from your competitors in the marketplace and turbo charge your career with an additional, well paid, skill set that is currently needed in the marketplace. With these new digital skills you can help design communication equipment, audio and video, or signal processing and filtering applications; the ability to program and implement FPGA's can help you succeed in whichever engineering career path you choose..

This courtse will be taught using the Elbert V2 FPGA demonstration board and the Xilinx tool flow with the Xilinx Webpack ISE. I will explain the basics of FPGA development on the Elbert V2 board and end up the introduction to FPGA's with an uploaded programming example to see the HDL code at work on the Elbert development board. This free lecture will be followed by a more extensive lecture series getting into further detail of programming and implementing FPGA's.

Enroll now

What's inside

Syllabus

Understand the basics of FPGA development and then write their first program on the Elbert with HDL using the free Xilinx tool chain

A brief introduction to what will be covered in this short course.

Read more

Discussion of what a FPGA is and what applications it has in the real world.

We compare and contrast FPGA's and the more commonly used MCU's. A brief discussion of where one product may be more suitable than the other. The student should acquire a basic understanding of the differences in design and use of these two embedded components.

A discussion of the Elbert FPGA development board and its onboard peripherals

In this lecture we will focus on Installing the necessary Xilinx software to program the Elbert development board.

This is the code walk through for a simple blink program on the board and a how-to on using the free Xilinx ISE Webpack with the Elbert.

This is the Elbert V2 constarint file which links the on-board peripherlas with the inputs and outputs instanciated in your HDL code.

To upload the bitstream you complied with the Xilinx ISE Webpack tool use the Elbert Uploader which you can download here.

* Remember to change the option to generate a bitfile so you can upload your bit stream using the Elbert "configuration" uploading utility tool. to do this change the Webpack options by right clicking the "Generate Programming File" in the Xilinx Webpack. This will create a bitstream file that you can upload directly with the Numato "configuration" tool rather then trying to use the built-in Xilinx Webpack "configure target device" utility which may not work.

A discussion of what the next lecture series on the Elbert will include. The following lecture will cover the Elbert in more extensive detail, with multiple programming examples, utilizing not only the built-in onboard peripepherals but also inexpensive extrenal decices and senors.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides a practical introduction to FPGA development using the Elbert V2 board, which is a hands-on approach that benefits both hobbyists and engineers
Focuses on using the Xilinx tool flow with the Xilinx Webpack ISE, which are industry-standard tools for FPGA development and digital circuit design
Starts with a simple blink program and a walkthrough of using the Xilinx ISE Webpack with the Elbert, which is a gentle introduction to HDL coding
Uses the Elbert V2 FPGA demonstration board, which may require learners to acquire specific hardware to follow along with the course's practical examples
Serves as an introduction to a more extensive lecture series that covers the Elbert in more detail, including multiple programming examples and external devices
Uses the Xilinx ISE Webpack tool, which has been superseded by Vivado Design Suite, so learners may need to adapt their skills to newer software

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Introduction to fpga basics and elbert board

According to learners, this is an excellent introductory course that provides a solid foundation for absolute beginners in the world of FPGAs. It offers a clear explanation of how FPGAs differ from MCUs and includes crucial practical, hands-on steps involving the Elbert V2 board and the Xilinx toolchain. Students particularly appreciate the guided process for setting up the software and implementing a simple project like the blink example, finding it easy to follow and rewarding. However, some reviewers with prior digital logic or microcontroller experience found the course very basic and felt it provided minimal explanation of the HDL code, suggesting it feels more like a long preview for the next course rather than a standalone introduction. The software installation process was also noted as potentially tricky for some.
Many felt the course serves as an intro to a later series.
"It feels more like a long preview for the next course than a standalone introduction."
"You definitely need the next course."
"It definitely leaves you wanting more, as it's just an 'introduction'."
Focuses on real-world setup and basic programming.
"The hands-on part with the Elbert board, programming the blink example and using the uploader, was very practical."
"The instructions for installing software and using the Elbert board were spot on."
"The practical steps with Xilinx ISE and the Elbert board are the most valuable part. It's quick and gets straight to the point."
Highly praised as a starting point for beginners.
"This is an excellent introductory course! It covers the absolute basics of what an FPGA is..."
"Fantastic free intro! I'm a hobbyist and always wanted to understand FPGAs. This course made it accessible."
"Perfect introduction! As someone completely new to this field, I found the course easy to follow and the hands-on steps crucial."
Setting up the required Xilinx software can be challenging.
"Installing Xilinx ISE Webpack was a bit tricky on my system, but the course covers the steps reasonably well."
"The software installation part could be smoother, maybe address common issues or provide troubleshooting tips."
"the Xilinx software was a nightmare on my OS."
Reviewers with prior knowledge found it lacking depth.
"Okay course, but very basic. If you already have some experience with digital logic or microcontrollers, this might be too introductory."
"There's minimal explanation of the HDL code or the FPGA architecture beyond a very high level."
"Expected more substance."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to FPGA's and prototyping with the Elbert with these activities:
Review Digital Logic Fundamentals
Reinforce your understanding of digital logic concepts, which are essential for FPGA programming. This will make grasping HDL and the underlying hardware architecture much easier.
Browse courses on Digital Logic
Show steps
  • Review truth tables for basic logic gates.
  • Practice simplifying Boolean expressions.
  • Study the operation of flip-flops and registers.
Read 'FPGA Prototyping by Verilog Examples'
Supplement the course material with a practical guide to FPGA prototyping. This book provides numerous Verilog examples that can be adapted and expanded upon.
Show steps
  • Read the introductory chapters on FPGA architecture.
  • Work through the examples related to combinational logic.
  • Experiment with modifying the provided Verilog code.
Implement Basic Circuits in Verilog
Solidify your understanding of Verilog by implementing basic digital circuits. This hands-on practice will improve your coding skills and hardware intuition.
Show steps
  • Write Verilog code for an AND gate, OR gate, and XOR gate.
  • Simulate the circuits to verify their functionality.
  • Implement a simple adder circuit.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore 'Effective Coding with Verilog'
Enhance your Verilog coding skills with a book that focuses on best practices. This will help you write more efficient and maintainable code for your FPGA projects.
Show steps
  • Read the chapters on coding styles and conventions.
  • Study the examples of efficient Verilog code.
  • Apply the techniques to your own FPGA projects.
Design a Simple Counter on the Elbert Board
Apply your knowledge to a practical project by designing a counter that utilizes the Elbert board's peripherals. This will give you experience with the complete FPGA development flow.
Show steps
  • Define the counter's specifications (e.g., counting range, display method).
  • Write the Verilog code for the counter logic.
  • Create a constraint file to map the counter's inputs and outputs to the Elbert board's pins.
  • Synthesize, implement, and program the design onto the Elbert board.
Document Your FPGA Projects
Improve your understanding and communication skills by documenting your FPGA projects. This will also create a valuable portfolio of your work.
Show steps
  • Write a description of the project's purpose and functionality.
  • Include the Verilog code with comments.
  • Explain the design choices and implementation details.
  • Add screenshots or videos of the project in action.
Follow Advanced FPGA Tutorials
Expand your knowledge by following advanced FPGA tutorials online. This will expose you to more complex designs and techniques.
Show steps
  • Search for tutorials on specific FPGA topics (e.g., embedded processors, high-speed interfaces).
  • Carefully follow the instructions and code examples.
  • Adapt the tutorials to your own projects.

Career center

Learners who complete Introduction to FPGA's and prototyping with the Elbert will develop knowledge and skills that may be useful to these careers:
FPGA Developer
An FPGA developer specializes in designing and implementing systems using FPGAs. This role directly involves writing hardware description language (HDL) code and testing it on FPGA development boards. This course is a perfect starting point for an aspiring FPGA developer who wants to learn the fundamentals of programming FPGAs. The fact that this course uses the Elbert V2 FPGA board and the Xilinx tool flow aligns directly with the tasks of an FPGA developer. This course will help the FPGA developer perform tasks related to signal processing, digital logic, and real-time control.
Digital Design Engineer
Digital design engineers create the logic circuits and systems that underpin modern electronics. Working with FPGAs directly is a common task for a digital design engineer as they learn to build and test complex digital systems. This course helps a digital design engineer by providing the needed introduction to programming FPGAs using hardware description language (HDL). This course, which focuses on using the Xilinx tools and the Elbert V2 board, will be especially helpful for those interested in practical, hands-on experience with real hardware. The course will also show how to implement code on an actual development board.
Embedded Systems Engineer
An embedded systems engineer creates and tests the software and hardware that go into devices such as smartphones, medical equipment, and industrial machinery. This role frequently involves working with FPGAs to implement real-time processing and control functions. The course will familiarize you with the basics of FPGA design and programming using HDL, which are crucial in embedded systems. For someone looking into a career as an embedded systems engineer, this course helps to build core skills in using programmable hardware. This course would be particularly useful for those who want to work on systems that require high speed processing and real-time control.
Hardware Engineer
A hardware engineer designs, develops, and tests computer hardware, including circuit boards and microchips. This role often involves working with field programmable gate arrays (FPGAs) to implement complex digital logic. This course provides an introduction to FPGA development, which will equip an aspiring hardware engineer with a fundamental understanding of how to program and utilize FPGAs. This course is also useful in expanding a current engineer’s skill set. Because FPGAs are frequently used in signal processing, communication systems, and real-time control applications, the experience from this course will prove helpful to the hardware engineer. Learning the Xilinx tool flow and programming the Elbert board helps build a foundation in real world hardware development practices.
Electronics Engineer
An electronics engineer works with electronic circuits and systems, and is often involved in developing devices like medical instrumentation, consumer electronics, and aerospace technology . This type of engineer typically designs and tests electronic components, including FPGAs. This course will help an electronics engineer gain practical experience with FPGA programming using hardware description languages. It will familiarize them with development software and hardware by using a real development kit. This experience is highly relevant to the work of an electronics engineer who designs circuit boards or other digital systems.
Computer Engineer
A computer engineer works with both hardware and software to design and develop computer systems. A computer engineer often works with FPGAs when specializing in hardware. The course teaches the fundamentals of how to program an FPGA, which helps the computer engineer learn to implement hardware logic in a programmable way. The course, using the Elbert V2 board and Xilinx tools, gives the computer engineer hands-on experience with real-world components. This course will be particularly helpful for those who want to work on projects that involve low-level hardware and software interaction.
Robotics Engineer
A robotics engineer designs and builds robots and robotic systems, which often need high speed processing capabilities provided by FPGAs. These engineers use digital logic and can benefit from the skills in this course. This course introduces the fundamentals of FPGA programming, which helps a robotics engineer learn to control and implement the complex logic needed for robots. The fact that this course is hands on makes it particularly useful for any engineer who will be working with FPGAs in real robotics systems. The course, focused on implementation and demonstration, could help the robotics engineer learn how to integrate FPGAs into their designs
Test Engineer
A test engineer develops and executes tests to check that a product is working properly. This role often requires that the engineer understands how to interact with hardware at a low level. Often a test engineer will need to understand how an FPGA functions in order to properly test a device. This course will familiarize an aspiring test engineer with FPGA programming using hardware description languages (HDL). This will make them better equipped to write test cases for FPGA based systems. The fact that this course uses the Elbert V2 FPGA board and the Xilinx tool flow will help an engineer better understand the test equipment they work with.
Firmware Engineer
A firmware engineer develops the software that controls the underlying hardware of a device, often working closely with digital electronics. This includes writing code for FPGAs that perform dedicated tasks. This course helps a firmware engineer expand their capabilities by teaching the basics of FPGA programming with HDL. The course demonstrates how to upload the programmed functionality to the hardware. For someone looking into a career in firmware development, this course could be useful in understanding how to interact with the hardware at a low level.
Systems Engineer
A systems engineer works on the overall architecture and integration of complex systems, which may include digital hardware, FPGAs, and other embedded components. A systems engineer will often need to understand how all these components work together. This course may help a systems engineer better understand FPGA design and programming using HDL. This course, with its focus on hands-on development using the Elbert V2 board, will help a systems engineer with a practical understanding of FPGA integration. The course may be particularly helpful for those who work on systems that incorporate real-time signal processing or control systems.
Product Development Engineer
Product development engineers work on bringing new electronic products from concept to market. This can include working with FPGAs as a component within a larger system. This course may help a product development engineer gain an understanding of how FPGAs work and how they can be used in a system. Because this course focuses on implementing code on a real FPGA board, it may be useful for someone who needs to understand how to incorporate this type of component into a product.
Research Scientist
Research scientists in an engineering field may work on novel hardware solutions or signal processing algorithms which could utilize FPGAs. An understanding of FPGAs could help a research scientist implement their algorithms and test out new designs. This course may help a research scientist familiarize themselves with FPGA programming using HDL, which allows them to develop and implement complex logic on a programmable device. The fact that this course uses real hardware and development tools may be useful for research and development projects.
Project Engineer
Project engineers manage technical projects and teams, often in engineering environments. A project engineer does not always need the most detailed knowledge of the underlying hardware, but they should have a fundamental understanding of the technologies involved. The course may help a project engineer gain a better understanding of FPGA technology, enabling them to better manage projects involving FPGAs. This course provides an introduction to FPGA development using an actual hardware development kit, making it useful for project engineers who oversee projects that include this specific technology.
Technical Consultant
A technical consultant advises clients on engineering solutions, often involving a variety of digital technologies, including FPGAs. A technical consultant should have a good understanding of these technologies to provide good advice. This course may help a technical consultant gain an understanding of FPGA technology and its possible uses. Because this course focuses on practical implementation using the Elbert V2 board and Xilinx tools, it may be helpful for someone who needs hands-on experience with FPGAs.
Technical Trainer
A technical trainer teaches others about software, hardware, or engineering systems. A technical trainer can help their students learn about a new technology by having a solid understanding of it themselves. This course may help a technical trainer learn the basics of FPGA development. It also provides a clear path for learning, starting with the basics of FPGA design and culminating in a demonstration of a running application. This may be useful for someone who wants to develop a course on FPGA technologies.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to FPGA's and prototyping with the Elbert .
Provides a practical, hands-on approach to FPGA prototyping using Verilog. It covers a wide range of examples, from basic logic circuits to more complex systems. It's particularly useful for understanding how to translate theoretical concepts into working hardware designs. This book serves as a valuable reference throughout the course and beyond.
Focuses on writing efficient and maintainable Verilog code. It covers topics such as coding styles, optimization techniques, and verification strategies. While not strictly necessary for the introductory course, it provides valuable insights for developing more complex and robust FPGA designs. This book is more valuable as additional reading to improve coding practices.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser