Point of View
I was caught of guard when someone commented: "when a FIR filter is full of multiple loops and complex code, something is wrong" The comment was made during an informal discussion on alternative...
View ArticleI don’t often convert VHDL to Verilog but when I do ...
VHDL to Verilog I don’t often convert VHDL to Verilog but when I do it is not the most exciting task in the world (that is an understatement). For the most part I am HDL agnostic. Well that is not...
View ArticleUse Microprogramming to Save Resources and Increase Functionality
Introduction Microprogramming is a design approach that every FPGA designer should have in their bag of tricks. I subscribe to the concept that microprogramming is a structured approach to the design...
View ArticleFit Sixteen (or more) Asynchronous Serial Receivers into the Area of a...
Introduction This article will describe a technique, available in many current FPGA architectures, to fit a large amount of logic into a small area. About ten years ago now (Feb/Mar 2005), I helped...
View ArticleUse a Simple Microprogram Controller (MPC) to Speed Development of Complex...
Introduction This article will describe a synthesizable HDL-based microprogram controller (MPC), or microprogram sequencer (MPS), that can be used to provide the control of a microprogrammed state...
View ArticleMakefiles for Xilinx Tools
Building a bitstream from an HDL is a complicated process that requires the cooperation of a lot of tools. You can hide behind an IDE or grow a pair and use command line tools and a makefile to tie...
View ArticleHomebrew CPUs: Messing around with a J1
In this article I will examine James Bowman's excellent J1 CPU; I will then proceed to mess around with various parts of it, making it smaller, more appropriate to my particular application, and...
View ArticleHomebrew CPUs: Color Languages
Color Languages Here on bizarro we program using -- get this – text! Our other senses - hearing, touch, smell, are not used at all. Even our visual perception is greatly underutilized - we just use...
View ArticleInside the Spartan-6: Using LUTs to optimize circuits
While building a small CPU on a Spartan-6 chip I came across the same old problem: my Verilog was mapping to a lot of slices . Way more then seems reasonable. So let's dig in and see what's really...
View ArticleTools of the Trade: reading PDFs (and keeping bookmarks)
In this article I will take a look at the wonderful MuPDF viewer and present a small modification that saves bookmarks alongside the pdf files, making it infinitely more useful.Some days I sit down to...
View ArticleSummer of Gateware
This (last) summer the MyHDL project participated in the Google Summer of Code (GSoC) as a sub-organization under the Python Software Foundation (PSF). This was our first year participating - there was...
View ArticleRecruiting New Bloggers!
Previous calls for bloggers have been very successful in recruiting some great communicators - Rick Lyons, Jason Sachs, Victor Yurkovsky, Mike Silva, Markus Nentwig,
View ArticleWelcoming MANY New Bloggers!
The response to the latest call for bloggers has been amazing and I am very grateful. In this post I present to you the individuals who, so far (I am still receiving applications at an impressive rate...
View ArticlePolynomial Math
Elliptic Curve Cryptography is used as a public key infrastructure to secure credit cards, phones and communications links. All these devices use either FPGA's or embedded microprocessors to compute...
View ArticleHelping New Bloggers to Break the Ice: A New Ipad Pro for the Author with the...
Breaking the ice can be tough. Over the years, many individuals have asked to be given access to the blogging interface only to never post an article. Maybe they underestimated the time it takes to...
View ArticleAn absolute position encoder VHDL core
Introduction Let's consider motorized systems controlled by electronics. A closed loop architecture looks like this: The following components are involved: the motor itself (DC, stepper ...), the...
View ArticleElliptic Curve Cryptography
Secure online communications require encryption. One standard is AES (Advanced Encryption Standard) from NIST. But for this to work, both sides need the same key for encryption and decryption. This...
View ArticleOne Clock Cycle Polynomial Math
Error correction codes and cryptographic computations are most easily performed working with $GF(2^n)$ polynomials. By using very special values of $n$ we can build circuits which multiply and square...
View ArticlePolynomial Inverse
One of the important steps of computing point addition over elliptic curves is a division of two polynomials. When working in $GF(2^n)$ we don't have large enough powers to actually do a division, so...
View ArticleDiscrete-Time PLLs, Part 1: Basics
Design Files: Part1.slx Hi everyone, In this series of tutorials on discrete-time PLLs we will be focusing on Phase-Locked Loops that can be implemented in discrete-time signal proessors such as FPGAs,...
View ArticleElliptic Curve Key Exchange
Elliptic Curve Cryptography is used to create a Public Key system that allows two people (or computers) to exchange public data so that both sides know a secret that no one else can find in a...
View ArticleElliptic Curve Digital Signatures
A digital signature is used to prove a message is connected to a specific sender. The sender can not deny they sent that message once signed, and no one can modify the message and maintain the...
View ArticleMathematics and Cryptography
The mathematics of number theory and elliptic curves can take a life time to learn because they are very deep subjects. As engineers we don't have time to earn PhD's in math along with all the things...
View ArticleDealing With Fixed Point Fractions
Fixed point fractional representation always gives me a headache because I screw it up the first time I try to implement an algorithm. The difference between integer operations and fractional...
View ArticleAncient History
The other day I was downloading an IDE for a new (to me) OS. When I went to compile some sample code, it failed. I went onto a forum, where I was told "if you read the release notes you'd know that...
View ArticleRunning Average
The running average filter is a useful way to reduce noise in a system. One project I recently worked on required a 4 times frequency output from an encoder input. The problem was the encoder is...
View ArticleThe New Forum is LIVE!
After months of hard word, I am very excited to introduce to you the new forum interface. Here are the key features:1- Easily add images to a post by drag & dropping the images in the editor2-...
View ArticleGo Big or Go Home - Generating $500,000 for Contributors
In a Nutshell A new Vendors Directory has been created Vendors will be invited to pay a sponsorship fee to be listed in the directory 100% of the basic sponsorship fee will be distributed to the...
View Article3 Good News
Good News #1 Last week, I announced a new and ambitious reward program that will be funded by the new Vendors Directory. This week, I am happy to announce that we have our firsts two sponsors! Quantum...
View ArticleData Types for Control & DSP
There's a lot of information out there on what data types to use for digital signal processing, but there's also a lot of confusion, so the topic bears repeating.I recently posted an entry on PID...
View ArticleSummer of gateware is coming (again)
How time flies! I swear my last post was a summary of the 2015 summer of gateware. This year (2016) MyHDL is participating in the Google summer of code again, for the second year, continuing as a...
View ArticleUse DPLL to Lock Digital Oscillator to 1PPS Signal
Introduction There are occasions where it is desirable to lock a digital oscillator to an external time reference such as the 1PPS (One Pulse Per Second) signal output from a GPS receiver. One approach...
View ArticleNew Comments System (please help me test it)
I thought it would take me a day or two to implement, it took almost two weeks...But here it is, the new comments systems for blogs, heavily inspired by the forum system I developed earlier this year....
View ArticleLaunch of Youtube Channel: My First Videos - Embedded World 2017
I went to Embedded World 2017 in Nuremberg with an ambitious plan; I would make video highlights of several exhibits (booths) to be presented to the *Related sites audience. I would try to make the...
View ArticleBack from ESC Boston
NOT going to ESC Boston would have allowed me to stay home, in my comfort zone. NOT going to ESC Boston would have saved me from driving in the absolutely horrible & stressful Boston traffic1. NOT...
View ArticleESC Boston's Videos are Now Up
In my last blog, I told you about my experience at ESC Boston and the few videos that I was planning to produce and publish. Here they are, please have a look and any feedback (positive or negative)...
View ArticleGoing back to Germany!
A couple of blog posts ago, I wrote that the decision to go to ESC Boston ended up being a great one for many different reasons. I came back from the conference energized and really happy that I went....
View ArticleWent 280km/h (174mph) in a Porsche Panamera in Germany!
Those of you who've been following my blog lately already know that I am going through some sort of mid-life crisis that involves going out there to meet people and make videos. It all started with...
View ArticleLinear Feedback Shift Registers for the Uninitiated, Part I: Ex-Pralite Monks...
Later there will be, I hope, some people who will find it to their advantage to decipher all this mess. — Évariste Galois, May 29, 1832 I was going to call this short series of articles “LFSRs for...
View ArticleLinear Feedback Shift Registers for the Uninitiated, Part 2: libgf2 and...
Last time, we looked at the basics of LFSRs and finite fields formed by the quotient ring \( GF(2)[x]/p(x) \). LFSRs can be described by a list of binary coefficients, sometimes referred as the...
View ArticleSEGGER's 25th Anniversary Video
Chances are you will find this video more interesting to watch if you take five minutes to first read the story of the week I spent at SEGGER's headquarters at the end of June. The video is only a...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part I. Introduction
Introduction to the topic This is the 1st in a series of articles looking at how we can use DSP and Feedback Control Sciences along with some mixed-signal electronics and number-crunching capability...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 2. Ideal Model...
Developing and Validating Simulation Models This article will describe models for simulating the systems and controllers for the hardware emulation application described in Part 1 of the series. The...
View ArticleFinally got a drone!
As a reader of my blog, you already know that I have been making videos lately and thoroughly enjoying the process. When I was in Germany early this summer (and went 280 km/h in a porsche!) to produce...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 3. Sampled Data...
Some Design and Simulation Considerations for Sampled-Data Controllers This article will continue to look at some aspects of the controllers and electronics needed to create emulated physical circuits...
View ArticleLinear Feedback Shift Registers for the Uninitiated, Part III: Multiplicative...
Last time we talked about basic arithmetic operations in the finite field \( GF(2)[x]/p(x) \) — addition, multiplication, raising to a power, shift-left and shift-right — as well as how to determine...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 4. Engineering of...
Following on from the previous abstract descriptions of an arbitrary circuit emulation application for low-latency feedback controllers, we now come to some aspects in the hardware engineering of an...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 5. Some FPGA Aspects.
This part of the on-going series of articles looks at a variety of aspects concerning the FPGA device which provides the high-speed maths capability for the low-latency controller and the arbitrary...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 6....
This article will consider the engineering of a self-calibration & self-test capability to enable the project hardware to be configured and its basic performance evaluated and verified, ready for...
View ArticleFeedback Controllers - Making Hardware with Firmware. Part 7. Turbo-charged...
This article will look at some DSP Sine-wave oscillators and will show how an FPGA with limited floating-point performance due to latency, can be persuaded to produce much higher sample-rate sine-waves...
View Article
More Pages to Explore .....