This comprehensive, hands-on course equips learners with the practical skills needed to design real hardware using SystemVerilog. Through a structured four-module progression, you will master the fundamentals of RTL development starting from basic modules and data types, moving into advanced constructs like structs, enums, and generate blocks, and culminating in the design of a fully functional digital calculator. Each module includes hands-on exercises, simulation-based assignments and guided coding practice
This course is designed for engineering students, FPGA beginners, RTL designers, and software developers transitioning into hardware design. It is also ideal for embedded engineers, verification interns, and anyone preparing for digital logic, FPGA, or ASIC roles that require SystemVerilog proficiency.
Learners should have a basic understanding of logic gates and binary arithmetic, along with some familiarity with digital circuits or introductory HDL concepts. No prior SystemVerilog experience is required, but comfort with technical problem-solving will help accelerate learning.
By the end of the course, learner will be able to analyze how to model combinational and sequential logic, construct reusable parameterized modules, implement finite-state machines and write clean and scalable RTL. Along the way, you’ll apply real engineering practices such as hierarchical design, clean coding standards, testbench construction, and modular verification. By the end of the course, you will have built a complete modular calculator system designed, implemented, simulated, and tested entirely in SystemVerilog.
This module introduces the foundations of SystemVerilog RTL design, including how to write modules, use ports and parameters, work with common data types, and model fixed-size static arrays. Students will install the Quartus Prime software and build their first hardware blocks and begin implementing the arithmetic core of the calculator.
涵盖的内容
5个视频2篇阅读材料1次同伴评审
显示有关单元内容的信息
5个视频•总计37分钟
Quartus Prime Installation and Testing•2分钟
Understanding Modules, Ports, and Instantiation•9分钟
Introduction to SystemVerilog’s Data and Numeric Types•9分钟
Practical Guide to SystemVerilog Arrays for FPGA Design•7分钟
Learners explore dynamic arrays, queues, and associative arrays (testbench focus), create custom composite types using typedef, enum, and struct, and use SystemVerilog operators to implement logic and arithmetic. The calculator project is extended with an ALU and operation selector.
涵盖的内容
6个视频1篇阅读材料1次同伴评审
显示有关单元内容的信息
6个视频•总计51分钟
Dynamic Arrays, Queues & Associative Arrays•9分钟
SystemVerilog Operators•8分钟
Custom Types: Typedef, Enum, Struct•7分钟
Custom Data Types in SystemVerilog•12分钟
Combinational Logic: Continuous Assignment•9分钟
Continuous Assignments and Multiplexers in SystemVerilog•6分钟
1篇阅读材料•总计5分钟
Design and Verification of a Synchronus First In First Out (FIFO)•5分钟
1次同伴评审•总计20分钟
Hands-on-Learning: Arithmetic Datapath & Control Logic Foundations•20分钟
Sequential Logic and State Machine
第 3 单元•小时 后完成
单元详情
Students learn how to design combinational circuits using assign, build sequential circuits using always_ff (registers, counters, pipelines), and implement decision logic using if and case. They then build the calculator's state machine and control logic.
涵盖的内容
6个视频1篇阅读材料1个作业2次同伴评审
显示有关单元内容的信息
6个视频•总计52分钟
Sequential Logic: Modeling sequential logic•7分钟
Combinational Decision Logic, State Machines, and Priority Encoders•9分钟
Loops in SystemVerilog•14分钟
Functions in SystemVerilog•13分钟
SystemVerilog Functions and Recursion•8分钟
Course Wrap-Up•2分钟
1篇阅读材料•总计5分钟
Instruction-Level Abstraction (ILA): A Uniform Specification for System-on-Chip (SoC) Verification•5分钟
Coursera brings together a diverse network of subject matter experts who have demonstrated their expertise through professional industry experience or strong academic backgrounds. These instructors design and teach courses that make practical, career-relevant skills accessible to learners worldwide.
SystemVerilog RTL design in this course means describing how digital hardware behaves and connects using modules, signals, and control logic at the register-transfer level. The focus is on writing synthesizable RTL and then checking that behavior through simulation, debugging, and modular verification.
When would you use SystemVerilog RTL design?
You would use it when you need to turn digital logic ideas into hardware blocks that can be reused, connected, and tested as part of a larger subsystem. In this course, that includes modeling combinational and sequential logic, building parameterized modules, and controlling operation flow with finite-state machines.
How does SystemVerilog RTL design fit into a broader hardware workflow?
It sits in the build-and-test stage of hardware development, where a design idea becomes a set of connected modules with clear interfaces and behavior. In this course, that means defining structure and data handling, implementing the RTL, and then simulating and verifying how the full design behaves.
How is SystemVerilog RTL design different from writing software?
Writing software focuses on sequences of instructions, while SystemVerilog RTL design describes hardware structure, signal flow, and clocked behavior. That is why the course emphasizes modules, ports, combinational and sequential logic, and state machines rather than general-purpose program flow.
Do you need any prerequisites before learning SystemVerilog RTL design?
A basic understanding of logic gates, binary arithmetic, and digital circuits or introductory HDL concepts is helpful before starting. No prior SystemVerilog experience is required, but comfort with technical problem-solving will make the hands-on coding and debugging easier.
What tools, platforms, or methods are used in this course?
The course centers on SystemVerilog and uses Quartus Prime for hands-on coding and simulation practice. It mainly uses synthesizable RTL design and simulation-based verification with testbenches.
What specific tasks will you practice or complete in this course?
You practice defining modules and interfaces, choosing data types and arrays, building combinational and sequential logic, and organizing control with finite-state machines. You also simulate designs, write testbenches, debug behavior, and verify that connected hardware blocks work together as a digital subsystem.