How to get disassembled ELF file in Vivado/Vitis

Sometimes we need to debug a module containing a microprocessor implemented in FPGA. Often the program is enclosed in ELF file – leaving us with no access to the program source code. In these cases we can learn how the program functions by analyzing the machine code for the microprocessor. But first, the assembly code needs to be extracted from the ELF file. Let me show you how to get disassembled code from ELF file in Vivado/Vitis.

My article in Electronics Journal

I’m happy to announce that my first paper submitted to Electronics Journal has recently been published. The article entitled: “Relative Jitter Measurement Methodology and Comparison of Clocking Resources Jitter in Artix 7 FPGA” describes the concept and verification of jitter level comparison methodology. Also the measurements of multiple different Artix 7 FPGA configurations are also presented.

FPGA memory accessible from Vivado

The ability to easily access or modify the contents of a memory instantiated in FPGA chip via a computer can be very helpful during verification or debugging. In case of AMD/Xilinx chips and Vivado IDE, this can be achieved using a combination of several IPs and Tcl commands.

Sort, permute or remove duplicate lines in Sublime Text

For years I have not noticed a built-in feature of my favorite code editor – Sublime Text. I have recently needed to deduplicate lines in a file and though I will need an additional package. And that’s when I discovered it’s an existing feature in default Sublime Text configuration. So particularly for my future reference, I decided to create this post.

Alfred Workflow for calculating SI value inverse

Recently I have finally decided to try Alfred – a well known productivity tool for macOS. Especially with additional Powerpack it enables a ton of automation and customization. A lot of Alfred Workflows can be found on the internet, but I couldn’t find one for calculating an inverse of numbers containing SI prefix. So I have decided to create it by myself.

VHDL configuration

I have recently had a chance to briefly play with a feature of VHDL I have never used before – configuration. Here I’ve gathered my thoughts and findings in this topic. Partially as sort of ‘note to myself’ and hopefully in the future I will have time to get some more experience with this part of the VHDL language.

Insert Nums – my favorite code editor plugin

Any modern code editor supports plugins to extend its capabilities. Sometimes they are called “packages” or “extensions” etc. There is a plugin which greatly improved my workflow but I think it’s overlooked by many developers – Insert Nums. Since I started using this package, it became my favorite plugin. There are versions for at least two of the most popular code editors: Sublime Text and Visual Studio Code.