History of the FPGA

As you probably know, one of Digilent’s major focuses is producing FPGA (field programmable gate array) boards and educating the public on FPGA design. One of the classes I was in last semester focused on FGPA design. This class is EE324 at WSU, which is taught by Digilent’s own Clint Cole. He gave a background lecture on the History of FPGA chips. Not only was it an extremely interesting lecture, but it also helped me understand the huge leaps in logic design that have been made since the 1960s. This is the history that led to the development of FPGA chips. The chips are the parts that Xilinx makes that we use on our FPGA boards.

Number Systems

Today, we are going to learn about number systems. A “number system” is defined here as “any notation for the representation of numerals or numbers.” We naturally use the decimal (base 10) system, meaning we use the numbers 0-9 to represent all the other numbers. The three types of number systems that we are going to talk about today are decimal, binary, and hexadecimal, but there are many more!

How Do I Use Digilent Products at School? (Digital Edition)

As you learned from my previous post (the Analog Edition version of this post), we used the Analog Parts Kit and Analog Discovery in EE352 at Washington State University (WSU) to make an AM radio transmitter and receiver. Not only do we use Digilent products in EE352, but we also used Digilent parts in EE324 (Fundamentals of Digital Systems) — the digital lab class I was taking.

Shields vs Pmods: Good vs Better?

Today we’re going to compare two different ways of increasing the functionality of a system board: Pmods and shields. Those of you have that have been following the Digilent Blog know that Pmods are Digilent’s series of peripheral modules with 6-12 pins that can easily be connected to appropriate pins on a system board to provide extra functionality and include audio amplifiers, GPS receivers, USB to UART interface, seven-segment displays, accelerometers, H-bridges with input feedback, analog-to-digital converters, and much more. For the rest of you who have been in this sector of the electronics industry, you know that shields are a type of board that you can plug directly on top of your microcontroller in a nice pin-to-pin fashion for expanded functionality. Although you might suspect which of these two items I prefer, we’ll check out the advantages of both of them.

What Are “Pointers”?

This blog post will cover the basics of pointers, a programming tool that is used in languages like C and C++. In this post, we will be using C as our primary language. Pointers are variables that contain a memory address (a concept used to access the computer’s primary storage memory). Variables normally contain a value such as 1 or ‘a’, but pointers contain an address of the value. When we reference a variable through pointers, this is called indirection. Each link goes to a text file of C code. This code can be run as is and will help show us the power of pointers!

What Are Muxes and Demuxes?

A huge part of FPGA design is using logic blocks in design. With logic blocks, you can compartmentalize your design, rather than trying implement everything in one shot. Designing without smaller blocks would be like trying to design a car without subsystems like the braking system or engine. About half of the way through the course there is a project that covers a variety of basic logic blocks, including multiplexers (muxes) and demultiplexers (demuxes). So what are muxes and demuxes?

How to Read a Datasheet

Here at Digilent we have a ton of products with a large amount of documentation and examples (like our Learn site and our Instructables page) letting you know how you can use our products. Within all of these, there are statements about what each product is (and is not) capable of in addition to the recommended operating condition. Some of you may be wondering, “How do we know these things?” Much of the information presented is determined from a datasheet. But where do we find this sort of information in the datasheet, or how do we even read a datasheet? Let’s find out.