Unit 1

Introduction to Mentor Graphics FPGA Advantage

The goal of this course is to learn about the tools and techniques of advanced digital design. A single design project will span the entire semester: the design of a modern  microprocessor based on the MIPS architecture (similar to the one described in your computer architecture textbook).

One of the fundamental notions of modern digital design is to describe the operation of the device as completely as possible and as early as possible in the design cycle. What may be lacking in detail from these descriptions will be easily made up for by the early detection of design errors. Thus, for much of this course you will describe your design in software, using a Hardware Description Language called VHDL. You will verify its operation using a VHDL simulator. Eventually you will implement the design in hardware using a device known as a Field Programmable Gate Array (FPGA).

A hardware description language is a textual programming language, which is used to describe the behavior of a digital device so that it may be simulated (tested) and eventually synthesized into a low-level logic design. Although this is textual programming language, you will not actually spend much time entering text. The tools that you will be using support graphical interfaces for design description that are automatically translated into VHDL text. These are commercial design tools from Mentor Graphics Inc. and are widely used in commercial design. We will use a packaged set of tools for FPGA design called FPGA Advantage.

Mentor Graphics FPGA Advantage is a collection of three tools:

  • HDL Designer is a graphical HDL design entry tool which will be used to create your design.
  • ModelSim is a simulator will be used to test your design.
  • Leonardo Spectrum is a synthesis tool which will be used to map your design into the FPGAs on the hardware boards.

  •  

    HDL Designer is a graphical HDL design entry tool which will automatically generate much of the raw code from higher level models that you create through block diagrams (similar to schematics design), state machine diagrams, truth tables, flow charts, and small segments of text code. The course will begin by showing you these different methods of entering your design data, giving you a brief refresher on digital logic and simulation techniques, and providing you with an overview of the design process which we we will be using in this class. We will start by walking you through the design of our Arithmetic Logic Unit (ALU) as a tutorial.

    The first several units are a tutorial to guide you through the basic operation of the Mentor Tools. During this tutorial, you will design and implement an integer ALU that you will eventually incorporate into your microprocessor design. Before we start the tools, the next page will provide you will a specification for the ALU.

    Click here to go to the ALU functional description.