Technology Blogs

We play with technology. Sometimes we discover things we think are worth sharing.
AXI Data Stream Width Conversion
VHDL

AXI Data Stream Width Conversion

Example code to convert 16-bit data to 8-bits in an AXI Data Stream.
Monkey C In Application Logging
Garmin-ConnectIQ

Monkey C In Application Logging

A simple method to replace Monkey C's System.println() for use in application executing on a watch.
Taking Xilinx's Advice on Reducing Routing Congestion
FPGA

Taking Xilinx's Advice on Reducing Routing Congestion

I've been faced with the situation where the tools fail to create an image that meets timing, complaining about routing congestion. Here are some anecdotes about trying to follow Xilinx's advice.
Extracting Setup and Hold Times from Devices for Out of Context Synthesis
TCL

Extracting Setup and Hold Times from Devices for Out of Context Synthesis

The present method of constraining the inputs and outputs of a design for out of context synthesis requires knowledge of the chosen devices timing characteristics. Previously these have been extracted from a timing report, and the build re-run. This…
Determining Port Clock Domains for Automating Input and Output Constraints
TCL

Determining Port Clock Domains for Automating Input and Output Constraints

When initially looking at setting up out of context synthesis, one of the early goals was to automate the discovery of which clock domain each input and output port is in. Sadly, it got complicated and then bogged down until it became a hindrance to…
Managing Mean Time Between Failure in Xilinx Devices
FPGA

Managing Mean Time Between Failure in Xilinx Devices

The choice of synchroniser chain length is fundamental to any design including clock domain crossings, and directly affects the Mean Time Between Failure (MTBF). Xilinx does support determining the MTBF of your design but does little to assist in…
TCL/TK Graphical Display Driven By A VHDL Test Bench
TCL

TCL/TK Graphical Display Driven By A VHDL Test Bench

An example TCK/TK graphical display driven by VHDL such that as signals change, the display reflects the new values.
VHDL-2008 Packages
VHDL

VHDL-2008 Packages

Simple examples of working with VHDL-2008 packages. How close to inheritance-like properties do the new VHDL features get us? Protected types are class-like but how close?
Getting Started with FPGA and VHDL
FPGA

Getting Started with FPGA and VHDL

I've been asked a few times how one gets started with FPGA design? Here are a few notes on the tools you can download for free and the existing websites that already cater for teaching VHDL.