iverilog

This page is meant to be a living document that describes current thinking for what we want to do with Icarus Verilog development. We try to divide our intentions into a release schedule of sorts.

Note that there are no dates. It'll be ready when it's ready.

The Release Process

The release process for Icarus Verilog takes place in the git repository, and is managed by branches and tags.

Snapshots

Snapshots are tagged points on the master branch. Snapshot tags have the form sYYYYMMDD where YYYY is the year, MM the numeric month and DD the day. Keeping to this format for snapshot tags makes them easy to recognize.

Release Candidates

A release comes to existence as a branch in the git repository, so that all development on the master branch does not go into the release branch by default. A new branch format v0_X-branch starts the release candidates for the 0.X release series. Initially, there are no release tags on a release branch, and the release isn't really released yet. This is a release candidate branch. The actual candidates are managed in an ad hoc manner up to the first actual release. There may be non-release tags to mark potential releases.

Thus we create the branch for the release and put it into a feature freeze. We then have time to polish it up for the first proper release on the branch, and the master can in the mean time continue on with new development.

Released Releases

The first release will be tagged v0_X_1 for release 0.X.1 and marks the end of the release candidate phase. The next release will be tagged v0_X_2 for release 0.X.2, and so forth. Release tags all have the same format. We start the releases as .1 to leave .0 for the first release candidates.

Within a release branch, we try to assure that minimum standards of compatibility are met:

Version 0.8.7

We have released 0.8.7. We expect this to be the last release in the 0.8 branch. We will only do another release if we need to fix critical bugs in the simulator or significant bugs in the synthesis code.

Version 0.9.5

We released Icarus Verilog 0.9.5 on November 1st, 2011.

Next development snapshot (version 0.10.devel)

The last development snapshot was created on November 11th, 2011.

The following are some of the things we plan to work on for future snapshots:

Development After 0.9

The following list is for items that do not have a bug report. In general we plan to work on fixing some of the long standing bug reports and add some of the missing functionality for each release.

Notes For Planned Tasks

Verilog A/MS

The long-term plan is for Icarus Verilog to support Verilog-A/MS as completely as regular Verilog. That's a fairly large task and it needs a strategy for tackling it.

The first goal is to properly parse and elaborate a reasonable subset of Verilog-AMS language constructs. This gathers together enough compiler infrastructure for later steps.

Actually implementing the analog run-time can be put off by instead targeting gnucap. The idea here is to write a loadable code generator that emits models for gnucap, which can then simulate that model. This makes the Icarus Verilog analog support useful even at this early stage.

Add to the vvp runtime support for analog simulation kernels. This amounts to writing a new analog simulator, so this will take some real time. It is unlikely that this will be even started before the 0.9 release.