Verilog vs. VHDL
At this point in reading the blog and going through the learn material, you might realize that there is a lot of FPGA code. It doesn’t look like C, it doesn’t look like Java…what is it?
At this point in reading the blog and going through the learn material, you might realize that there is a lot of FPGA code. It doesn’t look like C, it doesn’t look like Java…what is it?
Now that we know about recursion, we can talk about an important topic in programming — recursive sorting algorithms!
For those of you that have been coding for awhile, you likely have heard about both interrupts and polling. These are both techniques that can be used to alert your system board, such as a chipKIT microcontroller, when an input has occurred. But what is the difference between these two methods? Is one better than the other? Let’s find out.
Welcome back to the Digilent Blog! Today we’re going to go over recursion! Recursion is when a function calls itself directly, or through another function. Sometimes we can’t solve a problem using loops (iteration), so we have to use recursion. Recursion is slower than iteration, difficult to debug, and it uses up more of the stack. But recursion can also have simpler code, so in some cases, the benefits outweigh the problems.
Have you ever seen those membrane keypads that are often on kids’ toys? Have you ever wanted to make your own?
Over at our forums, we have a lot of great projects that both Digilent employees and users have contributed! One of the members of our user community and a regular contributor to the forum, hamster, used the Basys 3 to generate high-frequency radio signals from its VGA (video graphics array) port.
Take a look at a circuit board and chances are you’re going to find a resistor or two. Most boards today use surface-mount device (SMD) technology, so the components are almost too small to see sometimes, but they are on there, I promise. How do engineers decide which resistors to use in the design? Sometimes it depends on how you want that portion of the circuit to perform, as in the case of an op-amp. Other times it’s to prevent too much current from passing through a given point in a circuit, which is why they are often called current-limiting resistors. Maybe you want a simple way to divide the voltage or current. The reality is that there are numerous ways to use resistors, and oftentimes, the defining the resistor value is up to you.
If you’ve been around electronics for a while, you’ve probably noticed that components like resistors, capacitors, zener diodes and inductors come in some odd values. Looking at the chart above, there seems to be no clear rationale behind the values, but there is a pattern. 47kΩ resistors and 22μF capacitors are everywhere, but not 40kΩ or 50kΩ resistors, or 20μF or 30μF capacitors. So what’s the deal? It all has to do with preferred numbers.
In previous blog posts, we’ve programmed mainly in C. But with a blog post about classes coming up, I figured a short post about how C++ works would be helpful for everybody.
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.
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!
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.
Mixed‑signal validation often starts with more tools than necessary. An oscilloscope for analog signals, a logic analyzer for digital buses, and a separate signal generator just to get known inputs …
This Mandelbrot set renderer was created by Conrad, who shared the project on GitHub (username conradSZY05). Built for the Digilent Basys 3, the design uses VHDL and Xilinx Vivado to …
Debugging modern embedded systems often requires piecing together information from multiple tools to understand both analog and digital behavior. In a recent Digilent webinar, we took a closer look at …
The Question A Digilent forum user working on a vintage computing project needed to troubleshoot hardware built around a 6502 CPU. Their goal was to extract the CPU’s address and …