Skip to main content

FPGA stuff

Learning VHDL

A nice free book about VHDL is Free Range VHDL

Other site to learn VHDL I recently spotted is surf-vhdl.com

 Learning TCL 

Check out www.tcl.tk

Use Atom for VHDL editing

Check out this post https://aebtb.blogspot.com/2020/02/atom-vhdl-editing-with-syntax-checking.html

Or if you really have to, VS code does support VHDL syntax checkin after installing this as well. 

Vivado Tip

Working with IPs and version control is a bit challenging. One really should not want to check in those large XCI files, which are actually some archive of quite a bit of generated files.
Instead of archiving the XCI, one can export the IP to a small script with the configuration in use with this simple TCL command:

write_ip_tcl [get_ips ip_name_here] file_name_there.tcl

To load the file, simply type on the TCL command line, or as part of a project setup script:

source file_name_there.tcl


Vivado Quircks

Abnormal program terminations:
https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Vivado-Synthesis-Crash-Debugging-Guide/ba-p/946862

Huge Internationalisation bug in Ubuntu 18.04 that Xilinx support tries to ignore in all possible ways. Very annoying. Either set system language to US English OR overrule the Numeric locale to (US) English in your startup script to open Vivado. E.g.

#!/bin/bash
export LC_NUMERIC=en_US.UTF-8
source /opt/Xilinx/Vivado/2018.3/settings64.sh
/opt/Xilinx/Vivado/2018.3/bin/vivado &

Example startup script and Desktop launcher can be found on Eli Billauer excellent site: http://billauer.co.il/blog/2014/07/gnome-xilinx-desktop-icons-launcher/

Vivado things to consider

Block level synthesis options per XDC constraints:
https://blog.hackster.io/microzed-chronicles-block-synthesis-465f872d5b4e

Reporting control sets.

When having a troubles getting a design through place and route and achieve timing closure, it could be you are running into problems with either too many resources in use or a too high number of control sets.

This report can be quite large, and if you use an UltraScale device, by default the command will not report the control sets by Super Logic Region (SLR). The following TCL command does achieve that:

Get control sets in a specific SLR: e.g.
first run get_slrs (returns a list of possible SLRs)
report_control_sets -cells [get_cells -of_objects [get_slrs SLR0]] -verbose

Get control sets in a specific clock region: e.g
first run get_clock_regions (returns a list of possible clock regions)

report_control_sets -cells [get_cells -of_objects [get_clock_regions X6Y4]] -verbose  

With get_tiles and get_sites you could zoom in even further to problem or congested areas.

The UltraFast method will guide you through some of the most important issues as well. It is usually a good starting point to get to the bottom of such problems.


AXI protocol
An excellent explanation of the AXI protocol, right here on blogspot!


Quartus Quircks

Running Modelsim ASE on Linux, the same solution worked for Quartus 15.0 on Ubuntu 18.04 :
http://mattaw.blogspot.com/2014/05/making-modelsim-altera-starter-edition.html

Nice new stuff from Microchip/Microsemi, the Polarfire SoC with Risc-V core!

https://youtu.be/BwpUz9nwm8c


Git version control

Are you an FPGA engineer having some difficulties with Git, because of it's learning curve? Read on!
Git is maybe not the easiest or most entry level version control system, though in it's core it is not extremely complicated.
Most FPGA engineers should be able to learn it quite easily.

First of all, I highly recommend using a decent GUI for Git, like SmartGit to ease the initial user experience.
It provides various views and visual clues by colour encoding for altered files in the working directory.
Remote repo changes can be polled (or fetched manually) and indicated with an incoming arrow, unpushed changes are indicated by an outgoing arrow icon.
Quite easy and clear.

SmartGit is also a great cross-platform solution. Just works on any OS.
SmartGit takes the pain out of creating SSH connections from a Windows machine, since it comes with built in SSH support.
Alternatives are gitk or others, but may be more platform dependent.

Some nice visual Git cheatsheets:
A nice Git cheatsheet from GitLab, take special note of the Zoo of Working Areas on page 2!
https://about.gitlab.com/images/press/git-cheat-sheet.pdf

A Visual Git Reference, makes it very clear how Git works in just a few diagrams.
https://marklodato.github.io/visual-git-guide/index-en.html

Of one does choose to use Git on the command line, it is also vital to understand how to deal with SSH connections.
A nice introduction to SSH can be found here
Understanding the SSH Encryption and Connection Process https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process

When using a GitLab server, it provides some clear documentation on where to store your public key for the various machines you're using.
https://docs.gitlab.com/ee/ssh/README.html#adding-an-ssh-key-to-your-gitlab-account

Comments

Popular posts from this blog

ADR modules part 1

This is a restoration project I’ve been procrastinating around since about 2015. This will be quite some work, but then if one doesn’t start at least it will not happen at all. This will be a step by step project, and see how far we get with this Kaizen like approach. So first a short intro of the four audio modules made by Audio & Design (Recording) Ltd, in the mid 70s based in Shinfield Green, Reading, Berkshire UK. The company still exists to this date and is still active in pro-audio and is now in a different location but still in Reading. These modules can be dated to the mid 1970s, more precisely found the E900 Equaliser unit quality checklists to be dated 12 November 1976. There are two E900 equaliser modules, and two F760N Compressor/Limiters. A picture of the now dismantled mixing desk with the four modules. The mixing desk was in a quite dusty and sorry state. The desk was too space consuming and heavy to keep and many other parts were sold as separate items. ...

A Story of Repair (SoR): Electric Kettle

One or two weeks ago, during the day, the RCCD (residual-current circuit breaker) tripped. The root cause was very unclear at first since no equipment was switched on or off during the event. Also the weather was quite humid and sticky after a thunderstorm, so that could be a factor as well. By unplugging some usual suspects one at a time, we could trace it to the culprit. First I unplugged the coffee maker from the mains, but again the RCCD tripped after some minutes. Next the electric kettle was unplugged, and bingo! The RCCD did not trip again. This Kettle, a Tristar HL-108B, has a base piece. This base did have my suspicion, since the inner wires became visible from where there should be a cable strain relief. Opening the base required special spanner or ‘fork’ style screws. Somehow they want to discourage repair, but they are wrong. With a suitable long bit style drivers it was fairly easy to get access to the wire terminals. The multimeter did not show any problems, but these kin...

More cheap trick tool alternatives (Remove Stuck/Seized/Frozen Bottom Bracket Fixed Cup)

Many bicycle tools can be quite expensive for an average tinkerer. On the other end some parts can be so hard to remove, that they do require some investment in tools to get the job done. E.g. to remove the fixed cup of an old road bike. Found this neat trick on Youtube for that exact problem, by "RJ The Bike Guy". Note he starts with an expensive electric impact wrench which works wonders if you own such a thing, but watch the video to the end where he shows a bit cheaper way where he uses some long breaker bar.