VLSI Design Project 2013/2014

Full Custom Design Exercise


Aim

The aim of this exercise is to design a novel microprocessor unit in full custom 0.35um CMOS, using Magic (or L-Edit) for layout and SystemVerilog for simulation. In addition, L-Edit may optionally be used for automated place and route while Cadence will be used for design sign-off procedures. A specification for the microprocessor unit is attached.

Design Style

For this exercise it is required that you design using a standard cell library (which you have created). 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.

Internal Tri-state Buses

Although your design will have an external tri-state bus, there is in fact no requirement for an internal tri-state bus. Should you decide to use such a bus, your cell library includes a tri-state buffer for this purpose. Note that an internal tri-state bus should be driven by exactly one driver in every cycle. This should be true even during scan path testing when the controller may enter unexpected states.

Design and Simulation with SystemVerilog HDL

As well as the simulation of transistor netlists, SystemVerilog can be used in the specification and initial simulation of your design using a behavioural description. SystemVerilog will also allow you to perform a system simulation using a transistor netlist for your processor and behavioural models for the other system components. For the purpose of pre-layout and post-layout simulation I have prepared the a number of SystemVerilog system files which have behavioural models for the system components except the CPU itself.

Further details of the simulation environment are available on the Web.

To help you get started with pre-layout simulation, I have prepared further SystemVerilog example files which include the behavioural model for a simple CPU. A simple program is loaded into RAM which illustrates the processor operation. These files should provide the basis for a behavioural model of your CPU.

Further details of this example CPU are available on the Web.

File Location

To avoid problems later in the design process, files should be located as follows:

A script has been written to create these directories, to add the .magic file and to include the pre-defined pad library cells. Simply type

    init_fcde_directories

Groups

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.

Deliverables

The deliverables for the project are:

Further details of these deliverables are (or will be) available on the Web.

Marking & Report Writing

Marks will be awarded for the following:

The report should clearly document all of the above, further marks will be available for the quality of the documentation.

An appendix to the report should indicate how the project was managed and how the tasks were divided amongst the members of the group. This will aid in the adjustment of marks for the different group members. The appendix should also include a standard division of labour form which provides a quantitative measure of the contribution from each group member.

This is essentially a group project, all group members must share responsibility for the results, comments such as the following will not be well received:

``I only designed it. If it doesn't work then it's his fault, he was responsible for testing.''

``She didn't understand the interface we agreed upon.''

Further deails of the requirements for the final report can be found on line.


Additional Documentation


Iain McNally

28-1-2014