Christmas present: an early access release

About three weeks ago I shared an update of what we had been doing for about a month. Last week, I wrote a page that lists the new features coming in version 2 of Cx. Today I'm happy to announce that it is our Christmas present to everyone that is interested by a hands-on experience of these new features that we will be making an "early access" release soon!

What does "early access" mean?

It means that this release is quite rough around the edges. We have concentrated our efforts on making a minimal subset of features work again. Here is a list of what works and what does not work yet.

Cx compiler

  • Type checking is temporarily disabled. Changes to the underlying intermediate representation of the type system to support generic entities (task and networks) will require a rewrite of the type checking system. This is expected to be back in the next release, with type checking of generic entities (should be awesome!)
  • Generic entities can be instantiated, but the types of ports in the generated code still refer the generic parameters rather than their actual value. This is easy to correct, and will be in the next release.
  • Network descriptions are supported and should work as expected, but there are no checks whatsoever related to ports and connections. Basically you can connect ports of different types together, multiple times, whether that makes sense or not. Validation of networks should be relatively easy to implement and will be available in the next release.

Code generators

  • Verilog generator passes 95% tests, it currently lacks conversion from unsigned to signed, but overall it is supposed to work well.
  • VHDL generator is broken, not tested and probably crashes.
  • Simulation (based on Java code generator) is broken, not tested and probably crashes.

IDE

  • The IDE does not rely on the Java Development Tools anymore. This makes it much, much simpler with fewer menus and no extra dialogs or anything. It has kind of a "bare" feeling though, as the project explorer misses error indicators and a wizard for new packages. These are easy to fix and will be present in the next release.
  • The project explorer shows an additional small icon on top of Cx files that contain networks. This is just an indication that helps distinguishing between files that contain networks and files that don't.
  • The outline works for networks, too. The editor is currently unavailable for now, we will bring it back in a future release. We aim to allow a mix of text and graphical editing, which if done correctly should appeal to everybody. We expect that the graphical editor will be used for higher level of descriptions (sub-system and system level) and textual for lower level (below sub-system, for the heart of IP cores).
  • To export simulation scripts and synthesis projects, you must now select an individual entity (task or network) in the project explorer on the left. This is because a Cx file can now contain any number of entities, whereas before a Cx file was a single entity.

If you're interested in trying out this early access release, contact us and we'll send you the download link!