\"Introduction to CPU DIY\" teaches readers how to make original computer systems. Chapter 1 mainly introduces the CPU, and also introduces how to make memory for storing programs and data, I/O for input and output, and the bus that connects these modules. These modules can be combined into a simple computer system. In order to make this computer system run, Chapter 2 introduces the design and production of circuit boards. Chapter 3 writes programs for this computer system and tests it on the computer. \"Introduction to CPU DIY\" can help software engineers understand hardware and the underlying layer and develop efficient code. Hardware engineers can design customized hardware based on this book and develop high-speed computer systems. I believe that readers can experience the fun of making their own computer systems while reading \"Introduction to CPU DIY\". Chapter 1 Design and Implementation of CPU 1 1.1 Sequence 2 1.2 Computer System 4 1.2.1 What is a Computer 4 1.2.2 What is a CPU 5 Column CPU Bit Width 8 1.2.3 What is Memory 8 1.2.4 What is I/O 9 Column Byte Order 10 1.2.5 What is a Bus 12 Column Advantages and Disadvantages of a Bus 14 1.2.6 Summary 14 Column Computer-Related Books 14 1.3 Digital Circuit Basics 15 1.3.1 What is a Digital Circuit 15 1.3.2 Numerical Expression 15 1.3.3 Signed Binary Numbers 16 Column Bits and Bytes 17 Column How Big is 1K Byte 17 1.3.4 MOSFET Structure 17 1.3.5 Logical Operation 19 1.3.6 CMOS Basic Logic Gate Circuit 20 1.3.7 Storage Elements 21 Column Setup Time and Hold Time 24 1.3.8 Combinational Circuits and Sequential Circuits 25 1.3.9 Clock Synchronization Design 25 1.3.10 Summary 25 Column Books Related to Digital Circuits 25 1.4 Verilog HDL Language 26 1.4.1 What is Verilog HDL 26 1.4.2 Circuit Description 27 Column Default Network Type 32 Column Inference and Don\'t Care of Latches in Combinational Circuit Description 37 Column Positive Logic and Negative Logic 42 1.4.3 Circuit Simulation 43 Column Timing of Signal Changes in Synchronous Circuits 45 1.4.4 Verilog HDL Simulation Environment 50 1.4.5 Summary 56 Column Books Related to Verilog HDL 56 1.5 System Blueprint 57 1.5.1 Overall Introduction to the Target System 57 1.5.2 About the Code in This Chapter 58 Column Word Addressing and Byte Shift 62 1.6 Bus Design and Implementation 63 1.6.1 Bus Design 63 1.6.2 Bus Implementation 66 1.6.3 Summary 78 1.7 Memory Design and Implementation 79 1.7.1 FPGA RAM Area 79 1.7.2 ROM Design and Implementation 81 1.7.3 Summary 83 Column Memory Related Books 83 1.8 AZ Processor Design and Implementation 84 1.8.1 About CPU 84 Column CPI and MIPS Value 93 1.8.2 AZ Processor Design 93 Column Instruction Set Architecture and Microarchitecture 105 1.8.3 AZ Processor Implementation 106 1.8.4 Summary 159 Column Computer Architecture Related Books 159 1.9 I/O Design and Implementation 162 1.9.1 Timer 162 1.9.2 UART 167 Column UART Example 168 1.9.3 GPIO 181 1.9.4 Summary 188 Column I/O Related Books 188 1.10 AZPR 1.10.1 Connection of each module 189 1.10.2 Implementation of clock module 191 1.10.3 Implementation of top-level module 193 1.10.4 Summary 193 1.11 Simulation of AZPR SoC 194 1.11.1 Writing simulation model 194 1.11.2 Writing testbench 197 1.11.3 Executing simulation 200 1.11.4 Summary 201 1.12 Summary of this chapter 202 Chapter 2 Design and production of circuit boards 203 2.1 Sequence 204 2.2 Circuit board specifications 206 2.2.1 Circuit board name 206 2.2.2 Circuit board composition 206 2.2.3 Circuit board size 206 2.2.4 Number of circuit board layers 207 2.2.5 FPGA selection 207 2.2.6 2.4.3 Peripheral Circuits 228 2.4.4 Power Supply Circuits 232 2.4.5 PCB Design Environment 234 2.4.6 Designing Circuit Diagrams with Eagle 236 Column on ULP 241 Column on Books/Instructions for Using Eagle 241 2.4.7 Completed Circuit Diagrams 241 2.5 Layout Design 247 2.5.1 PCB Design Constraints and Routing Strategies 247 2.5.2 FPGA Board Layout Design 248 2.5.3 Layout Design of Power Board 252 2.5.4 Layout Using Eagle 254 2.5.5 Completed Layout 259 2.6 Making Component Library 261 2.6.1 Making Symbol 261 2.6.2 Making Package 263 2.6.3 Making Device 264 2.7 PCB 3D Model 269 2.7.1 Software Instructions 269 2.7.2 Preparing 3D Model Library 271 Column on 3D Model Library Management 278 2.7.3 Making PCB Model 279 2.8 Making Photosensitive Board PCB 280 2.8.1 Overall Process 280 2.8.2 Making Photomask 282 2.8.3 Gluing Photomask 284 2.8.4 Exposure 285 2.8.5 Developing 288 2.8.6 2.8.8 Drilling 296 2.8.9 Handling VPort Connectors on the Backside 298 2.8.10 Making Through Holes 299 2.8.11 Flying Leads 300 2.9 Using PCB Manufacturing Services 302 2.9.1 PCB Manufacturing Services 302 2.9.2 DRC 302 2.9.3 Outputting Gerber Data 305 2.9.4 Checking Gerber Data 306 Column How to Perform DFM Checks 309 Column Printing Settings for Solder Masks 312 2.9.5 Placing an Order for PCB Manufacturing from P-Board.com 312 Column Preparing Panelization Data 314 2.9.6 Placing an Order for PCB Manufacturing from OLIMEX 318 2.10 Assembling PCBs 321 2.10.1 Power Board 321 2.10.2 2.11 Functional Test 323 2.11.1 Identify FPGA 323 2.11.2 Diagnose Program 323 2.12 Summary of this Chapter 326 Chapter 3 Programming 327 3.1 Sequence 328 3.2 Development Environment 329 3.2.1 Preparation 329 3.2.2 FPGA Development Environment 330 3.2.3 ISE WebPACK 331 3.2.4 UrJTAG 359 Column cblsrv-0.1_ft2232 370 3.2.5 Cross Assembler 370 3.2.6 The First Program 376 3.3 Serial Communication 381 3.3.1 Install Tera Term 381 3.3.2 Write Program 382 Column Subroutine 388 Column ASCII Code 389 3.3.3 Execute Program 390 3.4 Program Loader 391 3.4.1 XMODEM Protocol 391 3.4.2 Programming 393 3.4.3 Programming a Load Test Program 402 3.4.4 Executing a Program 403 3.5 Interrupts and Exceptions 406 3.5.1 What is an Interrupt 406 3.5.2 Programming 410 3.5.3 Executing a Program 414 3.5.4 What is an Exception 415 3.5.5 Programming 415 3.5.6 Executing a Program 419 3.6 Seven-Segment Digital Tube 420 3.6.1 What is a Seven-Segment Digital Tube 420 3.6.2 Seven-Segment Digital Tube Control 420 3.6.3 Overview of Seven-Segment Digital Tube Counter 422 3.6.4 Programming 423 3.6.5 Executing a Program 428 3.7 Making a Utility 429 3.7.1 Overview of Functions 429 3.7.2 Making a Program 433 3.7.3 Executing a Program 446 3.8 Conclusion 447 Acknowledgements 448 Postscript 449 Copyright Statement 450
You Might Like
Recommended ContentMore
Open source project More
Popular Components
Searched by Users
Just Take a LookMore
Trending Downloads
Trending ArticlesMore