Implementation of a selector in VHDL

Multiplexers are very common in hardware design and generally FPGA configurable logic blocks have the hardware to support multiplexers natively. To take advantage of the dedicated hardware for the multiplexer…

Continue Reading Implementation of a selector in VHDL

Begin Learning VHDL Projects

So you’re ready to start learning VHDL but you don’t know where to start. Just getting files to compile for the first time is a good step. After that, writing code that compiles and performs as expected is a good check to ensure you can change code meaning you development environment is setup correctly. (more…)

Continue Reading Begin Learning VHDL Projects

HDL Design Process and Folder Structure

HDL Design Process

The HDL design process is imperative to have when designing a complex system. When you are first starting out a HDL design process may seem to be too cumbersome when trying to get a counter to work. But when you are moving data from an ADC clock domain to a faster signal processing clock domain, performing signal processing techniques, and switching clock domains again to send the data off to its destination a HDL design process is imperative to ensure proper operation of the system. It’s good practice to follow the HDL design process laid out here to ensure your ability to handle large and complex systems. (more…)

Continue Reading HDL Design Process and Folder Structure

Getting Started with FPGA Programming for Free

Getting started in FPGA programming can be an intimidating endeavor. There are quite a few decisions to be made when starting out. These decisions may be difficult to answer for example which FPGA to buy. This guide will walk though all the initial questions one would encounter when starting FPGA development. (more…)

Continue Reading Getting Started with FPGA Programming for Free

Euclidean Distance Calculation VHDL Example

Euclidean Distance Definition

The Euclidean Distance between two points, \((x_1,y_1)\) and \((x_2,y_2)\), is \(\sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}\). This classic equation extends to 3-dimensions as well, \(\sqrt{(x_1-x_2)^2 + (y_1-y_2)^2+(z_1-z_2)^2}\). There are many applications for the Euclidean distance equation. Anything from collision detection in video games to space travel, to even machine learning algorithms (see blog post K-Means Clustering Post). (more…)

Continue Reading Euclidean Distance Calculation VHDL Example