Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Building a Processor with Verilog HDL from Scratch
Rating: 4.4 out of 5(276 ratings)
2,370 students

Building a Processor with Verilog HDL from Scratch

Using Xilinx Vivado 2020.2
Created byKumar Khandagle
Last updated 10/2024
English
English

What you'll learn

  • Startegies to implement Verilog based CPU
  • Buliding Custom Intruction Set to meet resource utilizations
  • Strategies to add Program and Data Memory inside Processor
  • Strategies to add Jump and Branching Instructions inside Processor

Course content

5 sections64 lectures2h 59m total length
  • Understanding Processor architecture4:37

    Explore the processor architecture, detailing the control unit, instruction register, program memory, data memory, and input buffer that manage data flow and arithmetic and logical operations on 32 general-purpose registers.

  • Agenda0:54

    design and implement the instruction register and arithmetic unit in section one, exploring instruction types and addressing modes, then write testbench code to verify these components.

  • Types of Instructions8:41

    Explore how the instruction register defines operation type and data sources and destinations, and compare three-address, two-address, single-address, and zero-address instructions with examples.

  • Addressing Modes4:35

    Explore addressing modes in a processor, including register, immediate, direct, and indirect modes, with examples using move instructions and three-address instructions.

  • Understanding Intruction Register3:48

    Understand and implement the 32-bit instruction register with fields for operation type, destination and source registers, and a mode selector that switches between a second register source or immediate data.

  • Adding Instruction Register and GPR to Processor4:35

    Design and implement a 32-register Verilog processor core by adding an instruction register and a general-purpose register array, with op type, destination, source fields, addressing mode, and define directives.

  • Understanding Arithmetic and Move intructions of Processor4:59

    Learn how the processor performs add, subtract, and multiply in immediate and register modes, using move and move sgpr to handle a special register for 32-bit results.

  • Adding MOV Instructions3:57

    Assign unique 5-bit codes in the instruction register for move sgpr, move, add, subtract, and multiply; implement move and arithmetic via a case on operation type and support immediate addressing.

  • Adding Arithmetic Instructions3:48

    Develop arithmetic instructions for a Verilog processor, supporting immediate and register addressing for add, subtract, and multiply; results route to gpr and sgpr via a temporary.

  • Adding TB to verify Instructions P19:05

    Add and run a Verilog testbench to verify processor instructions incrementally, declare global defines, instantiate the RTL, initialize registers, and simulate immediate and register moves.

  • Adding TB to verify Instructions P21:02

    Verify instruction operations in a Verilog processor using a testbench, including add immediate, add register, move immediate, and move register, with results matching expectations.

  • Design Code0:36
  • Testbench Code0:38
  • OneNote Slides
  • A11 : Testing Multiplication operation

Requirements

  • Fundamentals of Digital Electronics

Description

Most of the 21st-century applications require powerful hardware but also along with the centralized controller allowing the development of complex algorithms. As we enter into the AI or Cloud-based devices and as systems complexity is growing daily, the need for incorporating multiple processor instances becomes mandatory as we progress in the AI era. Zynq and Microblaze are two popular alternatives that exist in the market suitable for almost any application requirements. The requirements of using Multiple instances of Processor viz. Multiple instances of Microblaze soft processor or using a hard processor such as Zynq Processor along with single or multiple instances of  Microblazer become necessary to independently handle both Data processing and control requirements. The fundamental challenge of incorporating multiple instances of Soft processors like Microblaze is the number of resources consumed for implementing Microblaze on the FPGA. Since FPGA consists of a limited amount of the FPGA resources, hardware and Software partition plays a prominent role in building complex systems. Another popular alternative approach followed by Embedded Engineers to build a Custom CPU /   Processor with the only required functionality thereby saving a large amount of the resources as compared to adding Microblaze instance. The course will discuss all the fundamentals required to build a simple processor/ CPU with Verilog HDL and strategies to test its functionality. After completing this course, you will understand all the necessary skills required to build Complex CPU architecture to meet requirements. Best wishes for crafting your own processor.

Who this course is for:

  • Anyone Interested to build Custom CPU on FPGA for Load Sharing