Ah, the humble can of compressed air: is there any problem it can’t solve? Just now with his sidekick Henry he managed to repair my dead CPU fan!
December 16th, 2013
December 15th, 2013
Almost a year since I released the last one, there’s a new lander-0.6.5.tar.gz package available. Nothing exciting: just fixing bit rot and some FreeBSD build fixes Dmitry Marakasov. Glad someone’s using it!
December 14th, 2013
November 30th, 2013
I Went exploring in Wantage, Oxfordshire today. It’s a nice little market town that’s apparently the birth place of Alfred the Great.
The local museum was unexpectedly brilliant. My favourite bit was this replica of a Wantage tram carriage complete with dead mice:
Predictably everything hereabouts is named after Alfred. Here’s King Alfred’s school which is a rather attractive building:
Afterwards I went for a semi-circular walk back to Didcot through the Lambourn Downs and Ridgeway that I’ve visited before. I stopped for lunch here by this huge hill.
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 thencontains 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.
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:
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…)
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.