0% found this document useful (0 votes)
77 views

Rapid Protyping of Digital Systems SPOC Edition

This document provides tutorials and information for designing digital systems using FPGAs. It covers topics such as rapid prototyping of digital designs using schematic entry or HDLs, downloading designs to FPGA boards, FPGA architecture, VHDL and Verilog synthesis, state machine design, a simple CPU design, and VGA video generation. The document includes tutorials to design basic systems demonstrating concepts like sequential logic, hierarchy and buses. It also provides details of FPGAcore library components and example designs for applications like a train controller.

Uploaded by

shail1707
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

Rapid Protyping of Digital Systems SPOC Edition

This document provides tutorials and information for designing digital systems using FPGAs. It covers topics such as rapid prototyping of digital designs using schematic entry or HDLs, downloading designs to FPGA boards, FPGA architecture, VHDL and Verilog synthesis, state machine design, a simple CPU design, and VGA video generation. The document includes tutorials to design basic systems demonstrating concepts like sequential logic, hierarchy and buses. It also provides details of FPGAcore library components and example designs for applications like a train controller.

Uploaded by

shail1707
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

RAPID PROTOTYPING

O F D I G I TA L S Y S T E M S
SOPC EDITION
Table of Contents
1 Tutorial I: The 15 Minute Design______________________________ 2
1.1

Design Entry using the Graphic Editor _______________________________________ 9

1.2

Compiling the Design ____________________________________________________ 16

1.3

Simulation of the Design __________________________________________________ 17

1.4

Testing Your Design on an FPGA Board ____________________________________ 18

1.5

Downloading Your Design to the DE1 Board _________________________________ 19

1.6

Downloading Your Design to the DE2 Board _________________________________ 22

1.7

Downloading Your Design to the UP3 Board _________________________________ 25

1.8

Downloading Your Design to the UP2 or UP1 Board __________________________ 27

1.9

The 10 Minute VHDL Entry Tutorial _______________________________________ 29

1.10

Compiling the VHDL Design ______________________________________________ 32

1.11

The 10 Minute Verilog Entry Tutorial ______________________________________ 34

1.12

Compiling the Verilog Design______________________________________________ 36

1.13

Timing Analysis _________________________________________________________ 38

1.14

The Floorplan Editor_____________________________________________________ 39

1.15

Symbols and Hierarchy ___________________________________________________ 40

1.16

Functional Simulation ____________________________________________________ 41

1.17

Laboratory Exercises_____________________________________________________ 42

2 FPGA Development Board Hardware and I/O Features____________ 46


2.1

FPGA and External Hardware Features_____________________________________ 47

2.2

The FPGA Boards Memory Features_______________________________________ 48

2.3

The FPGA Boards I/O Features ___________________________________________ 49

2.4

Obtaining an FPGA Development Board and Cables __________________________ 53

3 Programmable Logic Technology______________________________ 56


3.1

CPLDs and FPGAs ______________________________________________________ 59

3.2

Altera MAX 7000S Architecture A Product Term CPLD Device _______________ 60

vi

Rapid Prototyping of Digital Systems


3.3

Altera Cyclone Architecture A Look-Up Table FPGA Device _________________ 62

3.4

Xilinx 4000 Architecture A Look-Up Table FPGA Device ____________________ 65

3.5

Computer Aided Design Tools for Programmable Logic _______________________ 67

3.6

Next Generation FPGA CAD tools _________________________________________ 68

3.7

Applications of FPGAs ___________________________________________________ 69

3.8

Features of New Generation FPGAs________________________________________ 69

3.9

For additional information _______________________________________________ 70

3.10

Laboratory Exercises ____________________________________________________ 71

4 Tutorial II: Sequential Design and Hierarchy ____________________ 74


4.1

Install the Tutorial Files and FPGAcore Library for your board ________________ 74

4.2

Open the tutor2 Schematic _______________________________________________ 75

4.3

Browse the Hierarchy____________________________________________________ 76

4.4

Using Buses in a Schematic _______________________________________________ 78

4.5

Testing the Pushbutton Counter and Displays _______________________________ 79

4.6

Testing the Initial Design on the Board _____________________________________ 80

4.7

Fixing the Switch Contact Bounce Problem__________________________________ 81

4.8

Testing the Modified Design on the FPGA Board _____________________________ 82

4.9

Laboratory Exercises ____________________________________________________ 83

5 FPGAcore Library Functions _________________________________ 88


5.1

FPGAcore LCD_Display: LCD Panel Character Display ______________________ 90

5.2

FPGAcore DEC_7SEG: Hex to Seven-segment Decoder _______________________ 92

5.3

FPGAcore Debounce: Pushbutton Debounce ________________________________ 94

5.4

FPGAcore OnePulse: Pushbutton Single Pulse ______________________________ 95

5.5

FPGAcore Clk_Div: Clock Divider_________________________________________ 96

5.6

FPGAcore VGA_Sync: VGA Video Sync Generation _________________________ 97

5.7

FPGAcore Char_ROM: Character Generation ROM_________________________ 99

5.8

FPGAcore Keyboard: Read Keyboard Scan Code ___________________________ 100

5.9

FPGAcore Mouse: Mouse Cursor _________________________________________ 102

5.10

For additional information ______________________________________________ 103

6 Using VHDL for Synthesis of Digital Hardware _________________ 106


6.1

VHDL Data Types _____________________________________________________ 106

6.2

VHDL Operators ______________________________________________________ 107

6.3

VHDL Based Synthesis of Digital Hardware ________________________________ 108

6.4

VHDL Synthesis Models of Gate Networks _________________________________ 108

Table of Contents

vii

6.5

VHDL Synthesis Model of a Seven-segment LED Decoder_____________________ 109

6.6

VHDL Synthesis Model of a Multiplexer ___________________________________ 111

6.7

VHDL Synthesis Model of Tri-State Output_________________________________ 112

6.8

VHDL Synthesis Models of Flip-flops and Registers __________________________ 112

6.9

Accidental Synthesis of Inferred Latches ___________________________________ 114

6.10

VHDL Synthesis Model of a Counter ______________________________________ 114

6.11

VHDL Synthesis Model of a State Machine _________________________________ 115

6.12

VHDL Synthesis Model of an ALU with an Adder/Subtractor and a Shifter ______ 117

6.13

VHDL Synthesis of Multiply and Divide Hardware __________________________ 118

6.14

VHDL Synthesis Models for Memory ______________________________________ 119

6.15

Hierarchy in VHDL Synthesis Models _____________________________________ 123

6.16

Using a Testbench for Verification ________________________________________ 125

6.17

For additional information _______________________________________________ 126

6.18

Laboratory Exercises____________________________________________________ 126

7 Using Verilog for Synthesis of Digital Hardware ________________ 130


7.1

Verilog Data Types _____________________________________________________ 130

7.2

Verilog Based Synthesis of Digital Hardware ________________________________ 130

7.3

Verilog Operators ______________________________________________________ 131

7.4

Verilog Synthesis Models of Gate Networks _________________________________ 132

7.5

Verilog Synthesis Model of a Seven-segment LED Decoder ____________________ 132

7.6

Verilog Synthesis Model of a Multiplexer ___________________________________ 133

7.7

Verilog Synthesis Model of Tri-State Output ________________________________ 134

7.8

Verilog Synthesis Models of Flip-flops and Registers _________________________ 135

7.9

Accidental Synthesis of Inferred Latches ___________________________________ 136

7.10

Verilog Synthesis Model of a Counter ______________________________________ 136

7.11

Verilog Synthesis Model of a State Machine_________________________________ 137

7.12

Verilog Synthesis Model of an ALU with an Adder/Subtractor and a Shifter _____ 138

7.13

Verilog Synthesis of Multiply and Divide Hardware __________________________ 139

7.14

Verilog Synthesis Models for Memory _____________________________________ 140

7.15

Hierarchy in Verilog Synthesis Models _____________________________________ 143

7.16

For additional information _______________________________________________ 144

7.17

Laboratory Exercises____________________________________________________ 144

8 State Machine Design: The Electric Train Controller_____________ 148


8.1

The Train Control Problem ______________________________________________ 148

viii

Rapid Prototyping of Digital Systems

8.2

Train Direction Outputs (DA1-DA0, and DB1-DB0) _________________________ 149

8.3

Switch Direction Outputs (SW1, SW2, and SW3) ____________________________ 150

8.4

Train Sensor Input Signals (S1, S2, S3, S4, and S5) __________________________ 150

8.5

An Example Controller Design ___________________________________________ 151

8.6

VHDL Based Example Controller Design __________________________________ 154

8.7

Verilog Based Example Controller Design__________________________________ 157

8.8

Automatically Generating a State Diagram of a Design _______________________ 160

8.9

Simulation Vector file for State Machine Simulation _________________________ 161

8.10

Running the Train Control Simulation ____________________________________ 162

8.11

Running the Video Train System (After Successful Simulation) ________________ 162

8.12

A Hardware Implementation of the Train System Layout_____________________ 164

8.13

Laboratory Exercises ___________________________________________________ 166

9 A Simple Computer Design: The P 3 _________________________ 170


9.1

Computer Programs and Instructions _____________________________________ 171

9.2

The Processor Fetch, Decode and Execute Cycle_____________________________ 172

9.3

VHDL Model of the P 3 ________________________________________________ 179

9.4

Verilog Model of the P 3 _______________________________________________ 182

9.5

Automatically Generating a State Diagram of the P3________________________ 186

9.6

Simulation of the P3 Computer__________________________________________ 187

9.7

Laboratory Exercises ___________________________________________________ 188

10 VGA Video Display Generation using FPGAs ___________________ 192


10.1

Video Display Technology _______________________________________________ 192

10.2

Video Refresh _________________________________________________________ 192

10.3

Using an FPGA for VGA Video Signal Generation __________________________ 195

10.4

A VHDL Sync Generation Example: FPGAcore VGA_SYNC _________________ 196

10.5

Final Output Register for Video Signals ___________________________________ 198

10.6

Required Pin Assignments for Video Output _______________________________ 198

10.7

Video Examples________________________________________________________ 199

10.8

A Character Based Video Design _________________________________________ 200

10.9

Character Selection and Fonts ___________________________________________ 200

10.10 VHDL Character Display Design Examples ________________________________ 203


10.11 A Graphics Memory Design Example _____________________________________ 206
10.12 Video Data Compression ________________________________________________ 207
10.13 Video Color Mixing using Dithering_______________________________________ 207

Table of Contents

ix

10.14 VHDL Graphics Display Design Example __________________________________ 208


10.15 Higher Video Resolution and Faster Refresh Rates ___________________________ 209
10.16 Laboratory Exercises____________________________________________________ 210

11 Interfacing to the PS/2 Keyboard and Mouse ___________________ 214


11.1

PS/2 Port Connections___________________________________________________ 214

11.2

Keyboard Scan Codes ___________________________________________________ 215

11.3

Make and Break Codes __________________________________________________ 215

11.4

The PS/2 Serial Data Transmission Protocol ________________________________ 216

11.5

Scan Code Set 2 for the PS/2 Keyboard_____________________________________ 218

11.6

The Keyboard FPGAcore ________________________________________________ 220

11.7

A Design Example Using the Keyboard FPGAcore ___________________________ 223

11.8

Interfacing to the PS/2 Mouse ____________________________________________ 224

11.9

The Mouse FPGAcore ___________________________________________________ 226

11.10 Mouse Initialization _____________________________________________________ 226


11.11 Mouse Data Packet Processing ____________________________________________ 227
11.12 An Example Design Using the Mouse FPGAcore_____________________________ 228
11.13 For Additional Information ______________________________________________ 229
11.14 Laboratory Exercises____________________________________________________ 229

12 Legacy Digital I/O Interfacing Standards ______________________ 232


12.1

Parallel I/O Interface____________________________________________________ 232

12.2

RS-232C Serial I/O Interface _____________________________________________ 233

12.3

SPI Bus Interface _______________________________________________________ 235

12.4

I2C Bus Interface _______________________________________________________ 237

12.5

For Additional Information ______________________________________________ 239

12.6

Laboratory Exercises____________________________________________________ 239

13 FPGA Robotics Projects ____________________________________ 242


13.1

The FPGA-bot Design ___________________________________________________ 242

13.2

FPGA-bot Servo Drive Motors____________________________________________ 242

13.3

Modifying the Servos to make Drive Motors ________________________________ 243

13.4

VHDL Servo Driver Code for the FPGA-bot ________________________________ 244

13.5

Low-cost Sensors for an FPGA Robot Project _______________________________ 246

13.6

Assembly of the FPGA-bot Body __________________________________________ 259

13.7

I/O Connections to the boards Expansion Headers __________________________ 266

13.8

Robot Projects Based on R/C Toys, Models, and Robot Kits ___________________ 267

Rapid Prototyping of Digital Systems


13.9

For Additional Information ______________________________________________ 275

13.10 Laboratory Exercises ___________________________________________________ 277

14 A RISC Design: Synthesis of the MIPS Processor Core ___________ 284


14.1

The MIPS Instruction Set and Processor ___________________________________ 284

14.2

Using VHDL to Synthesize the MIPS Processor Core ________________________ 287

14.3

The Top-Level Module __________________________________________________ 288

14.4

The Control Unit_______________________________________________________ 291

14.5

The Instruction Fetch Stage______________________________________________ 293

14.6

The Decode Stage ______________________________________________________ 296

14.7

The Execute Stage______________________________________________________ 298

14.8

The Data Memory Stage ________________________________________________ 300

14.9

Simulation of the MIPS Design ___________________________________________ 301

14.10 MIPS Hardware Implementation on the FPGA Board _______________________ 302


14.11 For Additional Information ______________________________________________ 303
14.12 Laboratory Exercises ___________________________________________________ 304

15 Introducing System-on-a-Programmable-Chip __________________ 310


15.1

Processor Cores________________________________________________________ 310

15.2

SOPC Design Flow _____________________________________________________ 311

15.3

Initializing Memory ____________________________________________________ 313

15.4

SOPC Design versus Traditional Design Modalities __________________________ 315

15.5

An Example SOPC Design _______________________________________________ 316

15.6

Hardware/Software Design Alternatives ___________________________________ 317

15.7

For additional information ______________________________________________ 317

15.8

Laboratory Exercises ___________________________________________________ 318

16 Tutorial III: Nios II Processor Software Development ____________ 322


16.1

Install the DE board files ________________________________________________ 322

16.2

Starting a Nios II Software Project ________________________________________ 322

16.3

The Nios II IDE Software________________________________________________ 324

16.4

Generating the Nios II System Library ____________________________________ 325

16.5

Software Design with Nios II Peripherals __________________________________ 326

16.6

Starting Software Design main() ________________________________________ 329

16.7

Downloading the Nios II Hardware and Software Projects ____________________ 330

16.8

Executing the Software__________________________________________________ 331

16.9

Starting Software Design for a Peripheral Test Program _____________________ 331

Table of Contents

xi

16.10 Handling Interrupts_____________________________________________________ 334


16.11 Accessing Parallel I/O Peripherals_________________________________________ 335
16.12 Communicating with the LCD Display (DE2 only) ___________________________ 336
16.13 Testing SRAM _________________________________________________________ 339
16.14 Testing Flash Memory___________________________________________________ 340
16.15 Testing SDRAM ________________________________________________________ 341
16.16 Downloading the Nios II Hardware and Software Projects ____________________ 346
16.17 Executing the Software __________________________________________________ 347
16.18 For additional information _______________________________________________ 347
16.19 Laboratory Exercises____________________________________________________ 348

17 Tutorial IV: Nios II Processor Hardware Design ________________ 352


17.1

Install the DE board files ________________________________________________ 352

17.2

Creating a New Project __________________________________________________ 352

17.3

Starting SOPC Builder __________________________________________________ 353

17.4

Adding a Nios II Processor _______________________________________________ 355

17.5

Adding UART Peripherals _______________________________________________ 358

17.6

Adding an Interval Timer Peripheral ______________________________________ 359

17.7

Adding Parallel I/O Components __________________________________________ 360

17.8

Adding an SRAM Memory Controller _____________________________________ 361

17.9

Adding an SDRAM Memory Controller ____________________________________ 362

17.10 Adding the LCD Module (DE2 Board Only) _________________________________ 362
17.11 Adding an External Bus _________________________________________________ 363
17.12 Adding Components to the External Bus ___________________________________ 364
17.13 Global Processor Settings ________________________________________________ 364
17.14 Finalizing the Nios II Processor ___________________________________________ 365
17.15 Add the Processor Symbol to the Top-Level Schematic _______________________ 366
17.16 Create a Phase-Locked Loop Component___________________________________ 367
17.17 Complete the Top-Level Schematic ________________________________________ 368
17.18 Design Compilation _____________________________________________________ 368
17.19 Testing the Nios II Project _______________________________________________ 369
17.20 For additional information _______________________________________________ 370
17.21 Laboratory Exercises____________________________________________________ 370

18 Operating System Support for SOPC Design ____________________ 374


18.1

Nios II OS Support _____________________________________________________ 376

xii

Rapid Prototyping of Digital Systems

18.2

eCos _________________________________________________________________ 377

18.3

C/OS-II _____________________________________________________________ 378

18.4

Clinux ______________________________________________________________ 379

18.5

Implementing the Clinux on the DE Board ________________________________ 380

18.6

Hardware Design for Clinux Support ____________________________________ 380

18.7

Configuring the DE Board_______________________________________________ 382

18.8

Exploring Clinux on the DE Board_______________________________________ 385

18.9

PS/2 Device Support in Clinux __________________________________________ 386

18.10 Video Display in Clinux ________________________________________________ 386


18.11 USB Devices in Clinux (DE2 Board Only) _________________________________ 387
18.12 Network Communication in Clinux (DE2 Board Only) ______________________ 387
18.13 For additional information ______________________________________________ 388
18.14 Laboratory Exercises ___________________________________________________ 388

Appendix A: Generation of Pseudo Random Binary Sequences _______ 391


Appendix B: Quartus II Design and Data File Extensions ____________ 393
Appendix C: Common FPGA Pin Assignments _____________________ 394
Appendix D: ASCII Character Code______________________________ 396
Appendix E: Common I/O Connector Pin Assignments ______________ 397
Glossary ____________________________________________________ 399
Index ______________________________________________________ 407
About the Accompanying DVD__________________________________ 411

http://www.springer.com/978-0-387-72670-0

You might also like