I have been coding a lot the last week, but other than coding, I have also been thinking about the ways in which to make use of the Virtual Circuit. Obviously, one way is to just write directly in the VC's native intermediate assembly language, but who wants to do that for a lot of code? What is needed is to be able to take all the major HDLs (Verilog, VHDL, SystemC and (for me) SpecC) and be able to compile them into VC IR assembly. For that, I need to use Icarus Verilog.
Icarus has a great inter-compiler approach to its architecture, which uses SystemVerilog 2005 as a base representation system and allows multiple languages (currently SystemVerilog and VHDL) to be compiled "through" it into a set of targets for various applications. One of the targets is called VVP, which is a representation system with nets, LUTs, threads, a routing hierarchy, table functions ("functors") and primitive system functions. I should be able to simply write VS IR assembly language for all of the VVP primitives to map it into the VC IR system, and presto! Instant support from Icarus.
I can even take my beloved SpecC and support it through the Icarus framework by compiling the intermediate C++ it generates through Inferno, an open source C++-to-Verilog translator utility. I intend to write the majority of Controlix in SpecC, because it allows me to migrate C code from the huge base of existing open source systems code out there, which will allow me to get up and running quickly without having to manually port all that driver and stack code out there to Verilog or VHDL.
Finally I have seen a way to make the Controlix system work as whole cloth. There is going to be a lot of adapter code will I have to write to glue it all together, but I think that it can be done. Onward!