For this exercise it is required that you design using a semi-custom design style based around a standard cell library provided by the foundry. More advanced designs may also make use of foundry macrocells such as RAMs and ROMs. All designs must be synchronous to the rising edge of a global clock. All designs should have a single active-low reset line to clear all internal flip-flops. All designs should use scan path testability for the isolation of errors following fabrication and to help in the production of test vectors.
It is possible to solve this problem using either with a hardware-only design, or a hardware/software System-on-Chip (SoC) design.
To avoid problems later in the design process, files should be located as follows:
~/design/chip/behavioural
This directory should contain the SystemVerilog files that make up the behavioural model for your design.
~/design/chip/software
This directory will contain the source code (usually written in 'C') and the compiled code (usually in the form of a code.hex or code.vmem file readable by SystemVerilog) for any system-on-chip design which makes use of a compiler/assembler.
Note that this directory should not exist for non-SoC designs and will probably not be needed for SoC designs based around simple custom designed processors unless they rely on a code.hex/code.vmem file in order to initialise their program memory.
~/design/chip/system ~/design/chip/system2
These directories should contain the SystemVerilog files that make up the testbench for your design. The contents of the first of these directories is fixed while the second contains custom designed testbench files.
~/design/chip/macro_models
This directory should contain the macro model files for designs that include foundry macrocells.
Note that this directory should not exist for designs that do not make use of foundry macrocells.
~/design/chip/padring
This directory should contain the pad ring definition files.
~/design/chip/synthesis
This directory should contain the hierarchy of files and directories that are created during synthesis with Synopsys Design Compiler.
~/design/chip/constraints
This directory should contain the constraints files used during synthesis with Synopsys Design Compiler.
~/design/chip/gate_level
This directory should contain the post-synthesis gate-level verilog netlist and the associated files required for its simulation.
~/design/chip/place_and_route
This directory should contain the hierarchy of files and directories that are created during place and route with Cadence Encounter.
~/design/chip/extracted
This directory should contain the post-layout extracted verilog netlist and the associated files required for its simulation.
~/design/chip/post_process
This directory should contain the Cadence Virtuoso layout files of the full chip design after abstract replacement and correction of outstanding DRC errors. It should also contain a GDS II file ready for fabrication.
The design exercise is to be tackled in groups of between three and six. The group may divide the work as it sees fit, but all members of the group should be kept active at all stages of the project.
The deliverables for the project are:
Further details of these deliverables are (or will be)
available on the Web.
While a well documented design using AMS 0.35um CMOS and meeting the simpler specification
will be sufficient for a distinction mark, higher marks can be achieved for:
Please note that some of these goals may be contradictory.
For example an advanced design making use of SoC techniques may be significantly larger
(and more expensive) than a simpler design.
On the other hand the use of macrocells may result in a significantly smaller
(and cheaper) design.
Iain McNally
8-2-2024
Marking