Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
This textbook arose out of my experiences teaching computer engineering and elec trical engineering courses at Montana State University (MSU). Field Programmable Gate Arrays (FPGAs) are digital devices that have been around since the 1980s and are accessible to students, allowing them to create their own custom hardware without the prohibitive expense of creating a custom ASIC or digital chip. FPGAs started as tiny devices where they functioned as “glue” logic, but they have grown to be among the largest digital devices today. As FPGAs grew larger, they started absorbing all sorts of logic functions, including a complete ARM based computer system, i.e., a System-on-Chip (SoC). SoC FPGAs are ideal devices for teachingcomputer engineering since in the same chip you can create custom hardware in the FPGA fabric and develop software that runs on the ARM CPUs. This allows students to gain a system level understanding of how computers work. They gain this system level knowledge by first creating their own custom hardware in the FPGA fabric and then controlling their hardware by writing a Linux device driver and associated application software. It has been quite satisfying seeing the excitement in student’s faces when they finally understand how hardware and software interact.
Part I Introductions
1 Preliminaries
2 Introduction to System-on-Chip Field Programmable Gate Arrays
3 Introduction to the SoC FPGA Boot Process
4 Introduction to the DE10-Nano Board
5 Introduction to the Audio Mini Board
6 Introduction to Intel Quartus Prime
7 Introduction to Memory Addressing
8 Introduction to Verification
9 Introduction to Linux
10 Introduction to Digital Signal Processing
Part II SoC FPGA System Development
11 Development Environment Setup
12 Creating a LED Pattern Generator System
Part III SoC FPGA System Examples
Example 1 Audio FPGA Passthrough
Example 2 Feedforward Comb Filter System
Example 3 FFT Analysis Synthesis System
Part IV Labs
1 Setting Up the Ubuntu Virtual Machine
2 Hardware Hello World
3 Developer’s Setup
4 LED Patterns
5 Signal Tap
6 Creating a Custom Hardware Component in Platform Designer
7 Verifying Your Custom Component Using System Console and/dev/mem
8 Creating LED Patterns with a C Program Using /dev/mem in Linux
9 Linux Kernel Module Hello World
10 Modifying the Linux Device Tree
11 Creating a Platform Device Driver for the HPS_LED_Patterns Component
12 Implementing the Passthrough Project
13 Implementing the Comb Filter Project
14 Implementing the FFT Analysis Synthesis Project
15 Creating Your Sound Effect in Simulink
16 Implementing Your Sound Effect in the FPGA Fabric
17 Writing a Linux Device Driver to Control Your Sound Effect Processor