| Tutorial I: The 15 Minute Design | p. 2 |
| Design Entry using the Graphic Editor | p. 6 |
| Compiling the Design | p. 9 |
| Simulation of the Design | p. 10 |
| Downloading Your Design to the UP 1 or UP 1X Board | p. 12 |
| The 10 Minute VHDL Entry Tutorial | p. 14 |
| Compiling the VHDL Design | p. 17 |
| The 10 Minute Verilog Entry Tutorial | p. 17 |
| Compiling the Verilog Design | p. 21 |
| Timing Analysis | p. 22 |
| The Floorplan Editor | p. 23 |
| Symbols and Hierarchy | p. 24 |
| Functional Simulation | p. 24 |
| For additional information | p. 25 |
| Laboratory Exercises | p. 25 |
| The Altera UP 1 and UP 1X CPLD Boards | p. 30 |
| Programming Jumpers | p. 31 |
| MAX 7000 Device and UP 1 I/O Features | p. 31 |
| MAX and FLEX Seven-segment LED Displays | p. 31 |
| FLEX 10K Device and UP 1 I/O Features | p. 34 |
| Obtaining a UP 1 or UP 1X Board and Power Supply | p. 36 |
| Programmable Logic Technology | p. 38 |
| CPLDs and FPGAs | p. 41 |
| Altera MAX 7000S Architecture--A Product Term CPLD Device | p. 42 |
| Altera FLEX 10K Architecture--A Look-Up Table CPLD Device | p. 43 |
| Xilinx 4000 Architecture--A Look-Up Table FPGA Device | p. 47 |
| Computer Aided Design Tools for Programmable Logic | p. 49 |
| Next Generation FPLD CAD tools | p. 50 |
| Applications of FPLDs | p. 50 |
| Features of New Generation FPLDs | p. 50 |
| For additional information | p. 51 |
| Laboratory Exercises | p. 52 |
| Tutorial II: Sequential Design and Hierarchy | p. 54 |
| Install the Tutorial Files and UP1core Library | p. 54 |
| Open the tutor2 Schematic | p. 54 |
| Browse the Hierarchy | p. 56 |
| Using Buses in a Schematic | p. 57 |
| Testing the Pushbutton Counter and Displays | p. 58 |
| Testing the Initial Design on the UP 1 Board | p. 59 |
| Fixing the Switch Contact Bounce Problem | p. 60 |
| Testing the Modified Design on the UP 1 Board | p. 61 |
| Laboratory Exercises | p. 61 |
| UP1core Library Functions | p. 66 |
| UP1core DEC_7SEG: Hex to Seven-segment Decoder | p. 67 |
| UP1core Debounce: Pushbutton Debounce | p. 68 |
| UP1core OnePulse: Pushbutton Single Pulse | p. 69 |
| UP1core Clk_Div: Clock Divider | p. 70 |
| UP1core VGA_Sync: VGA Video Sync Generation | p. 71 |
| UP1core CHAR_ROM: Character Generation ROM | p. 73 |
| UP1core Keyboard: Read Keyboard Scan Code | p. 74 |
| UP1core Mouse: Mouse Cursor | p. 75 |
| Using VHDL for Synthesis of Digital Hardware | p. 78 |
| VHDL Data Types | p. 78 |
| VHDL Operators | p. 79 |
| VHDL Based Synthesis of Digital Hardware | p. 80 |
| VHDL Synthesis Models of Gate Networks | p. 80 |
| VHDL Synthesis Model of a Seven-segment LED Decoder | p. 81 |
| VHDL Synthesis Model of a Multiplexer | p. 83 |
| VHDL Synthesis Model of Tri-State Output | p. 84 |
| VHDL Synthesis Models of Flip-flops and Registers | p. 84 |
| Accidental Synthesis of Inferred Latches | p. 86 |
| VHDL Synthesis Model of a Counter | p. 86 |
| VHDL Synthesis Model of a State Machine | p. 87 |
| VHDL Synthesis Model of an ALU with an Adder/Subtractor and a Shifter | p. 89 |
| VHDL Synthesis of Multiply and Divide Hardware | p. 90 |
| VHDL Synthesis Models for Memory | p. 91 |
| Hierarchy in VHDL Synthesis Models | p. 94 |
| Using a Testbench for Verification | p. 96 |
| For additional information | p. 97 |
| Laboratory Exercises | p. 97 |
| State Machine Design: The Electric Train Controller | p. 102 |
| The Train Control Problem | p. 102 |
| Track Power (T1, T2, T3, and T4) | p. 104 |
| Track Direction (DA1-DA0, and DB1-DB0) | p. 104 |
| Switch Direction (SW1, SW2, and SW3) | p. 105 |
| Train Sensor Input Signals (S1, S2, S3, S4, and S5) | p. 105 |
| An Example Controller Design | p. 106 |
| VHDL Based Example Controller Design | p. 110 |
| Simulation Vector file for State Machine Simulation | p. 112 |
| Running the Train Control Simulation | p. 115 |
| Running the Video Train System (After Successful Simulation) | p. 116 |
| Laboratory Exercises | p. 117 |
| A Simple Computer Design: The [mu]P 1 | p. 122 |
| Computer Programs and Instructions | p. 123 |
| The Processor Fetch, Decode and Execute Cycle | p. 124 |
| VHDL Model of the [mu]P 1 | p. 131 |
| Simulation of the [mu]P1 Computer | p. 134 |
| Laboratory Exercises | p. 135 |
| VGA Video Display Generation | p. 140 |
| Video Display Technology | p. 140 |
| Video Refresh | p. 140 |
| Using a CPLD for VGA Video Signal Generation | p. 143 |
| A VHDL Sync Generation Example: UP1core VGA_SYNC | p. 144 |
| Final Output Register for Video Signals | p. 146 |
| Required Pin Assignments for Video Output | p. 146 |
| Video Examples | p. 147 |
| A Character Based Video Design | p. 147 |
| Character Selection and Fonts | p. 148 |
| VHDL Character Display Design Examples | p. 151 |
| A Graphics Memory Design Example | p. 153 |
| Video Data Compression | p. 154 |
| Video Color Mixing using Dithering | p. 155 |
| VHDL Graphics Display Design Example | p. 155 |
| Laboratory Exercises | p. 157 |
| Communications: Interfacing to the PS/2 Keyboard | p. 160 |
| PS/2 Port Connections | p. 160 |
| Keyboard Scan Codes | p. 161 |
| Make and Break Codes | p. 161 |
| The PS/2 Serial Data Transmission Protocol | p. 161 |
| Scan Code Set 2 for the PS/2 Keyboard | p. 164 |
| The Keyboard UP1core | p. 166 |
| A Design Example Using the Keyboard UP1core | p. 169 |
| For Additional Information | p. 170 |
| Laboratory Exercises | p. 170 |
| Communications: Interfacing to the PS/2 Mouse | p. 172 |
| The Mouse UP1core | p. 174 |
| Mouse Initialization | p. 174 |
| Mouse Data Packet Processing | p. 175 |
| An Example Design Using the Mouse UP1core | p. 176 |
| For Additional Information | p. 176 |
| Laboratory Exercises | p. 176 |
| Robotics: The UP1-bot | p. 178 |
| The UP1-bot Design | p. 178 |
| UP1-bot Servo Drive Motors | p. 178 |
| Modifying the Servos to make Drive Motors | p. 179 |
| VHDL Servo Driver Code for the UP1-bot | p. 180 |
| Sensors for the UP1-bot | p. 182 |
| Assembly of the UP1-bot Body | p. 190 |
| UP1-bot FLEX Expansion B Header Pins | p. 197 |
| An Alternative UP 1 Robot Project Based on an R/C Car | p. 198 |
| For Additional Information | p. 203 |
| Laboratory Exercises | p. 204 |
| A RISC Design: Synthesis of the MIPS Processor Core | p. 210 |
| The MIPS Instruction Set and Processor | p. 210 |
| Using VHDL to Synthesize the MIPS Processor Core | p. 213 |
| The Top-Level Module | p. 214 |
| The Control Unit | p. 217 |
| The Instruction Fetch Stage | p. 219 |
| The Decode Stage | p. 222 |
| The Execute Stage | p. 224 |
| The Data Memory Stage | p. 226 |
| Simulation of the MIPS Design | p. 227 |
| MIPS Hardware Implementation on the UP 1 or UP 1X Board | p. 228 |
| For Additional Information | p. 229 |
| Laboratory Exercises | p. 230 |
| Generation of Pseudo Random Binary Sequences | p. 235 |
| MAX+PLUS II Design and Data File Extensions | p. 237 |
| UP 1 and UP 1X Pin Assignments | p. 239 |
| The Wintim Meta Assembler | p. 243 |
| An Introduction to Verilog for VHDL users | p. 252 |
| Glossary | p. 259 |
| Index | p. 267 |
| About the Accompanying CD-ROM | p. 270 |
| Table of Contents provided by Syndetics. All Rights Reserved. |