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 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.