Text
Memory Types
There are two types of internal memory available on a typical FPGA:
Distributed Ram: made from the FPGA logic (LUTs)
Block Ram: dedicated memory blocks within the FPGA; also known as bram
Many modern FPGAs have relatively generous allocations of block ram (bram). For example the Xilinx Artix-7 A35T, found in the Arty board, has 1800 Kbits (225 kilobytes) of bram. This makes it an…
View On WordPress
0 notes
Text
Memory Initialization in XILINX Vivado [Verilog]
Memory Initialization in XILINX Vivado [Verilog]
You want to initialize memory from a file using Verilog. It’s common for a simulation or firmware to need data loading into a memory array, ram, or rom. Fortunately Verilog provides the $readmemh and $readmembfunctions for this very purposes. Unfortunately, there is a variety of good Verilog documentation online, so using them can be harder than it should be. This article explains the syntax…
View On WordPress
0 notes
Text
FPGA-Based Image Processing Using HLS
FPGA-Based Image Processing Using HLS
Building on the Zybo Z7 image processing application. This project demonstrates the use of HLS with C/C++ to accelerate image processing algorithm deployment on FPGAs.
View On WordPress
0 notes
Text
FlexPoint: An alternative for CNN Arithmetic
FlexPoint: An alternative for CNN Arithmetic
A very promising numeric representation with application to CNN arithmetic! As CNNs’ architectures grow, the complexity grows with it. And complexity means a LOT of arithmetic operations… A LOT! So, data come and go between the execution unit and the external memory (since the close-coupled memories are too expensive to have at abundance). Unfortunately this memory interaction has a tremendous…
View On WordPress
0 notes
Text
Using Convolutional Neural Networks for Image Recognition
An excellent introductory white paper from Cadence for image recognition utilizing Convnolutional Neural Networks (CNNs). A must read. Here.
View On WordPress
0 notes
Text
So, FPGAs...Why all the fuzz??
So, FPGAs…Why all the fuzz??
At the highest abstraction level, Field-Programmable Gate Arrays (or FPGAs) are reprogrammable silicon chips. As simple as that. Using fundamental, pre-built logic blocks and programmable routing resources, you can configure these chips to implement almost any custom digital (mainly) hardware functionality. In other words you develop digital computing tasks in a software-like manner (using a…
View On WordPress
0 notes
Text
So you think you can.... C ?
So you think you can…. C ?
A lot of programmers claim they know C. Well, it has the most famous syntax, it has been there for 44 years, and it’s not cluttered with obscure features. It’s easy! I mean, it’s easy to claim that you know C. You probably learned it in college or on the go, you probably had some experience with it, you probably think that you know it through and through, because there’s not much to know. Well,…
View On WordPress
0 notes
Text
Measure function execution performance in nanosecs, in MS Visual Studio (x64)
Code snippet showing how to get a more accurate approximation (in nanoseconds instead of milliseconds) on the time required by a function to run on a CPU. You can get the Evernote link here.
View On WordPress
0 notes
Text
Include, link and compile an external .dll library to MS Visual Studio project (2013)
You can see how to manually include, add, link and compile a shared dynamic library (.dll) in a MVS project as an Evernote link here
View On WordPress
0 notes
Text
About me

I was born in Iraklion, Crete, Greece in 1983. I received my B.Sc. degree in Physics in 2006, M.Sc. degree in Electronics and Computer Science in 2008 (with Honors) all from the Electronics Laboratory (ELLAB), Department of Physics at the University of Patras (UoP), Greece. Since June 2013, I hold a Ph.D. (with Honors) in the area of Computer Arithmetic Circuit Design by the same…
View On WordPress
0 notes