[ Content | Sidebar ]

VHDL Code Coverage

November 24th, 2013

I recently added a code coverage option to the VHDL compiler, nvc, I’m working on. I tend to find code coverage a really useful tool when I’m writing RTL, especially the sort of control-dominated designs I do in my day job. I find Modelsim’s HTML coverage reports a bit frustrating so I’m trying to do something more user-friendly in my simulator.

If you elaborate your design with the --cover option the generated code will be annotated to gather the following kinds of coverage:

  • Statement – A counter is added for each executable statement in the design. A statement must be executed at least once to be “covered”.
  • Branch – A branch is covered if it is both taken and not-taken at least once during execution
  • Condition – A condition here is a Boolean sub-expression of branch test and it is covered by evaluating to both TRUE and FALSE at least once. For example if A and B then contains one branch but two sub-conditions.

After a run with coverage enabled the statistics are automatically reported:

** Note: coverage report generated in /tmp/work/WORK.TEST.cover/
            282/289 statements covered
            71/94 branches covered
            85/108 conditions covered

A HTML report is then generated which contains a top-level summary and a detailed report for each source file:


You can mouse over a non-covered branch or condition to get a hint as to why it was not covered.

The implementation is currently a work-in-progress but functions well enough for light usage. The biggest limitation at the moment is that the report only contains aggregated statistics per-file rather than per-instance statistics.

Henley to Oxford (Almost)

October 30th, 2013

Walking from Henley to Oxford has been something I wanted to try for ages, so having a day off this Tuesday I thought I’d give it a go. It’s about 25 or so miles if you take the scenic route. Unfortunately I think this should have been a summer project as despite setting off at 8am I ran out of day light around 5:30 a few miles short in a village called Marsh Baldon and had to escape via a well-timed bus. I’ll blame the amount of debris from Monday’s storm for slowing me down.

Some photos from epic adventure below:

Available for a While Longer

October 30th, 2013

Sometimes the single week programmes are on iPlayer is a little too short:


(On this. Really good documentary BTW, no hurry to watch it…)

Improved Waveform Output

October 27th, 2013

I’ve spent a lot of time recently improving the waveform output of my VHDL compiler / simulator. Previously only the simple VCD format was supported: this only allows Verilog-style 4-value logic types to be dumped so doesn’t map very well onto VHDL types. The implementation was also very inefficient resulting in a 3-4x slowdown in simulation speed.

After experimenting with LXT for a while, NVC now uses GtkWave’s FST format by default. With some help from GtkWave’s author it can now dump full 9-value logic as well as most common VHDL types (enumerations, strings, integers, etc.).

I’ve put some work into improving the performance of waveform output and now dumping every signal to a FST incurs around 30% overhead. The VCD dumper has also been rewritten giving around 90% overhead. This format should generally be avoided unless you do not have access to GtkWave.

The screen shot below shows some of the new features:



October 23rd, 2013

I was visiting my friend Winni in St Albans last weekend. On Sunday afternoon we went to the nearby Butterfly World. It was very very very wet. Which was a bit unfortunate as a lot of it was outside.

For somewhere so butterfly-themed there is a surprising amount of ant-based exhibits. Including a rather scary giant ant in the outside play area.


A factoid I learnt: these leaf cutter ants are the only animals beside humans that grow their own food! Apparently they take these leafs back home and use them to grow edible fungus.


This daft but strong ant has picked up a stick instead of a leaf.


An actual butterfly (or is it a moth?), in the butterfly house.


Transparent wings! Drinking the nectar from the flower. Followed by an upside down butterfly.



October 6th, 2013

Yesterday I headed to Swindon to finish off the remaining 16 or so miles of the Ridgeway path that I’ve been doing recently. While waiting for the bus I explored Swindon town centre a bit: it wasn’t really worth the effort, although there was a cool building with minis on the side (they’re produced in Swindown).

The Ridgeway eventually ends up near the Wiltshire village of Avebury. Averybury is somewhat unusual in that it’s surrounded by the largest ancient stone circle in Europe.


There are some small pointed stones around (although you can’t see them in the photos) that are the result of a reprehensible act of 19th century cultural vandalism, referred to locally as The Shame, where villagers broke up some of the stones to use as building materials. These modern stones mark the place where the original ones stood.

The site is impressively large and much quieter and less commercialised than Stone Henge but the placement of the stones seem a bit haphazard: perhaps I’m missing the mystical significance. It’s apparently a focal point for modern pagans but the only other people I saw around were clearly tourists.

In The Dark

October 4th, 2013

It gets dark early in October eh?!


On the way back home when I went walking in the Chilterns last weekend. Hambledon lock near Henley.


Not to worry though as I have this super-awesome LED Lenser torch. It’s pocket-sized, all-metal, German-made, and even comes with a handy carry case. Buy one now!

Garden Train Fully Operational

September 15th, 2013

After having fallen into disrepair my parents’ garden train is now up and running!


Unfortunately since this photo was taken the viaduct was attacked by a mob of Luddite snails. Said snails became rather ill afterwards. Serves them right.

Sock Disaster

September 14th, 2013

I have previously congratulated running sock manufacturers on their clear labelling of left and right socks. However, I unfortunately managed to bring two right running socks back home to Hastings which I can assure you is much worse than having two ambiguous unlabelled socks.


September 8th, 2013

Ah, Swindon. Who hasn’t dreamed of visiting that mythical Wiltshire town? I know I certainly have since I started walking along the ridgeway last week. So armed with maps and ample supplies I returned by bus to where I’d left off last time and headed west.

It’s a primal landscape dotted with iron age hill forts and ancient burial mounds. In places fire and brimstone bursts forth from the earth:


At one point I came across hundreds of people milling about in a field. Turns out this was a metal detecting convention. Occasionally they would stop and poke at the dirt a bit, but no treasure was forthcoming while I was there.


To the north of the path is the “Vale of White Horse”, named after a giant white horse carved into the hillside by some iron age folk. For a local landmark it took quite some finding, and only onced I’d struggled up the hill did I notice the conveniently placed ancient viewing platform. So this photo doesn’t really demonstrate its horsey qualities:


One of the highlights of the trip was this 5000 year old burial mound in a glade just off the path. It’s called Wayland’s Smithy and was honestly a little bit creepy. Especially as I was the only one in the area.


After 20 or so miles I arrived on the edge of Swindon in a village called Wanborough. I didn’t fancy dashing over the dual carriageway and trudging through the outskirts of the town so instead I waited for a bus. Alarmingly a poster at the bus stop announced the imminent withdrawal of service. However the bus did eventually turn up and I was the only passenger for the entire trip, which perhaps explains its unprofitability.

On the way into Swindon the bus traversed one of the towns major landmarks: the Magic Roundabout. Now it wasn’t quite exciting as I’d expected, but that didn’t stop me taking a few snaps from the bus. I thought I heard the driver sniggering. If I were on Swindon council I would be promoting this as a tourist attraction, like Slough should have done with its bus station. There’s already a roundabout appreciation society who produce a mouse mat of this very junction so there is interest out there.


Speaking of bus stations, Swindon’s bears an uncanny resemblance to Slough’s former, much maligned, Brunel bus station.


Fun day out! Below are some more photos from my adventuring.