- What have we done before
- Who have we worked with before
- What have we got that works
- What we need to do and what we would like to do
- Cell library (we use the ST supplied one but there are others, Faraday for example)
- Two full custom ADCs for testing and evaluation
- A single core SoC to test our mixed signal integration and apply tests
- Simple connectivity to the SoC
In our case after some mulling over our experiences we decided on:
- ST Microelectronics via the Circuits Multi-Projets MPW broker
- Their HCMOS9 130nm process
- IP Blocks (see below)
- The flow, more on that later
As a university our access to IP is somewhat limited. Making a SoC requires quite a few modules like memory controllers etc.
However to the rescue rides Synopsys' DesignWare Library. It includes a basic selection of AMBA AHB/APB bus connected peripheral set and a memory controller which supports SDRAM and Flash.
To drive the the DesignWare library is the coreTools GUI (which is surprisingly hard to find) which in a nice graphical environment enables you to construct AMBA bus structures containing DesignWare peripherals. So this drives our choice of some of the tools (coreTools and DesignCompiler Ultra) as well as their DesignWare basic IP.
Onto a much more interesting question. What core to use? Considering our other IP is AMBA an ARM is the most likely choice however there are others we might use:
- The LEON3 from Aeroflex is a Opensource (GPL), VHDL 32 bit SPARCv8 CPU with an AMBA bus. It is, however, very much bound to its peripheral library and autoconfiguration so would take a lot of work. It would also need to be customised to use the HCMOS9 SRAM blocks
- The IBM PPC 405 is a 32 bit PowerPC core designed for embedding which is licensed to universities for teaching and education. It is the distribution created for the Synopsys flow which allows easy integration with AMBA peripherals. It is a softcore, i.e. it would need to be synthesised from RTL
The features of the ARM946E-S are:
- Excellent compiler/OS/application support. ARM is one of the best supported architectures in both Opensource and commercial software
- Small and quick, approximately 3mm2 and clocking at 200MHz (both of these are significantly derated estimates at this stage of the design
- MMU allowing full OS support
- A PLL - this is pretty much required for any SoC these days (available from CMP)
- Level shifters and isolators - needed to try advanced power saving strategies in digital logic
We will talk of flows and the analogue integration later.....