We may earn an affiliate commission when you visit our partners.
Course image
SKY SiliconThink

This chapter is foundation of design SOC and FPGA, that's bricks of skyscrapers. Contents in chapter 1:

1: Behavior and characteristics of CMOS gate: switch model, transition time, delay time, PVT corner.

2: Using CMOS gate to build basic logic function gates:

3: Build arithmetic datapth using basic logic gates: adder, subtractor, multiplier and divider. Learning the HW architecture ideas behind them, and use them to optimize your design.

Once enrolled, you can get technic support through the Q&A system of Udemy.

Let’s cooperate and success.

Note:

Read more

This chapter is foundation of design SOC and FPGA, that's bricks of skyscrapers. Contents in chapter 1:

1: Behavior and characteristics of CMOS gate: switch model, transition time, delay time, PVT corner.

2: Using CMOS gate to build basic logic function gates:

3: Build arithmetic datapth using basic logic gates: adder, subtractor, multiplier and divider. Learning the HW architecture ideas behind them, and use them to optimize your design.

Once enrolled, you can get technic support through the Q&A system of Udemy.

Let’s cooperate and success.

Note:

This is chapter 1 of the whole Digital IC and FPGA design course.

In the whole course, I will introduce fundamentals of digital IC and FPGA design, with 12+ coding exercises and 3 course projects.

Theory part: MOS transistor -> logic cells -> arithmetic data path -> Verilog language -> common used HW function blocks and architecture -> STA -> on-chip-bus(APB/AHB-Lite/AXI4) -> low power design -> DFT -> SOC(MCU level).

Function blocks and architecture: FSM, pipeline, arbiter, CDC, sync_fifo, async_fifo, ping-pong, pipeline with control, slide window, pipeline hazard and forward path, systolic.

Project: SHA-256 algorithm with simple interface, SHA-256 with APB/AXI interface, 2D DMA controller with APB/AXI interface.

After explaining of each HW architecture, I will give you a coding exercise, with reference code. Coding difficulty will begin from several lines to fifty lines, more than 100 lines, then around 200 lines. While the final big project will be 1000+ lines.

I suppose these should be essential knowledge and skills you need master to enter this area.

I will try my best to explain what-> how-> why and encourage you to do it better in this course.

Please browse to my homepage on Udemy to obtain information about each chapter of this course.

Enroll now

What's inside

Learning objectives

  • Basic theory of cmos gates
  • Use cmos transistor to build any logic gates
  • Factors affect cell delay(pvt)
  • Behavior of latch and dff
  • Deep understanding for setup/hold time
  • Architecture of adder(ripple, carry-select, carry look ahead, tree adders)
  • Using architecture ideal of adders to optimize your design
  • Arithmetic operation on real number and any mathematic function
  • Technic support through q&a system of udemy

Syllabus

Introduction
Introduction of the whole course(all parts)
Glossary
Conventions
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers CMOS gate characteristics like transition time and delay, which are crucial for understanding integrated circuit performance
Explores arithmetic datapath design, including adders, subtractors, multipliers, and dividers, which are essential components in digital systems
Examines the architecture of various adders, such as ripple, carry-select, carry lookahead, and tree adders, providing a comprehensive understanding of adder design
Requires knowledge of MOS transistors, logic cells, and basic digital design concepts, suggesting it's best suited for learners with some prior experience
Focuses on fundamental concepts, which may not be suitable for experienced designers seeking advanced topics or specialized techniques
Teaches concepts applicable to optimizing designs, which is a valuable skill for improving the performance and efficiency of digital circuits

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Solid fundamentals for digital ic/fpga design

According to learners, this course provides a largely positive introduction to fundamental concepts in digital IC/FPGA design. Students particularly appreciate the detailed explanations covering core topics like CMOS gates, timing analysis (setup/hold time), and arithmetic datapath architectures. The instructor's expertise and ability to explain complex ideas are frequently highlighted as a major strength. While it focuses heavily on theory and architecture as the first part of a larger series, many find it lays a strong foundation necessary for further study or a career in the field. Some note the content is challenging but ultimately rewarding.
Focuses on theory before practical coding.
"This part is more theoretical, laying the groundwork before moving to coding."
"It's good for understanding the 'why' behind the hardware before jumping into Verilog."
"While some wish for more immediate coding, this theoretical depth is essential."
Complex topics explained well, requires focus.
"The content is challenging at times, but the clear explanations make it manageable."
"Pushing through the difficult concepts provides a very rewarding understanding."
"It's not a light course, requires dedication, but worth the effort for the knowledge gained."
Instructor's knowledge and clarity appreciated.
"The instructor is highly knowledgeable and explains concepts very clearly."
"I really appreciate the detailed explanations given by the instructor."
"The way the material is explained is very easy to follow and understand."
Detailed coverage of core digital design.
"It provides a deep understanding of CMOS gates and arithmetic datapath architectures."
"The course covers the fundamentals of CMOS gates, timing, and datapath in detail."
"I gained a solid understanding of the basic building blocks and their behavior."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Digital IC/FPGA Design P1: CMOS Gates & Arithmetic Datapath with these activities:
Review Digital Logic Fundamentals
Reinforce your understanding of fundamental digital logic concepts. This will provide a solid foundation for understanding CMOS gate behavior and arithmetic datapath design.
Show steps
  • Review textbooks or online resources on digital logic.
  • Practice solving problems related to logic gate implementation.
  • Familiarize yourself with Boolean algebra and Karnaugh maps.
Follow Online Tutorials on Verilog Coding
Improve your Verilog coding skills by following online tutorials. This will help you implement and simulate your designs more effectively.
Show steps
  • Search for online tutorials on Verilog coding for digital design.
  • Follow the tutorials and practice coding examples.
  • Focus on tutorials that cover CMOS gate implementation and arithmetic circuits.
Study 'Digital Design and Computer Architecture'
Expand your knowledge of digital design beyond CMOS gates. This book provides a broader context for understanding how these gates are used in larger systems.
Show steps
  • Read the sections on arithmetic logic units (ALUs) and memory systems.
  • Understand how CMOS gates are used to implement these components.
  • Relate the concepts to the course material.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'CMOS VLSI Design: A Circuits and Systems Perspective'
Gain a deeper understanding of CMOS circuit design principles. This book provides a comprehensive overview of the subject and complements the course material.
Show steps
  • Read the chapters related to CMOS logic gates and arithmetic circuits.
  • Work through the examples and exercises in the book.
  • Compare the book's approach to the course's approach.
Implement Basic Logic Gates in Verilog
Solidify your understanding of CMOS gates by implementing them in Verilog. This will help you translate theoretical knowledge into practical skills.
Show steps
  • Write Verilog code for AND, OR, NOT, NAND, NOR, and XOR gates.
  • Simulate the gates to verify their functionality.
  • Experiment with different CMOS gate implementations.
Create a Presentation on Adder Architectures
Deepen your understanding of adder architectures by creating a presentation. This will require you to research different architectures and explain their advantages and disadvantages.
Show steps
  • Research different adder architectures (ripple carry, carry lookahead, etc.).
  • Prepare slides explaining the architecture, advantages, and disadvantages.
  • Present the material to a peer or record a video presentation.
Design a Simple 4-bit Adder/Subtractor
Apply your knowledge of arithmetic datapaths by designing a 4-bit adder/subtractor. This project will reinforce your understanding of adder architectures and optimization techniques.
Show steps
  • Choose an adder architecture (e.g., ripple carry, carry lookahead).
  • Design the adder/subtractor using CMOS gates in Verilog.
  • Simulate and test the design thoroughly.
  • Optimize the design for speed and power consumption.

Career center

Learners who complete Digital IC/FPGA Design P1: CMOS Gates & Arithmetic Datapath will develop knowledge and skills that may be useful to these careers:
Digital Design Engineer
A Digital Design Engineer specializes in creating and testing digital circuits and systems. This course provides a very relevant introduction to the basic principles of digital circuit design with its focus on CMOS gates, logic functions, and arithmetic datapath structures. This course helps build an understanding of how these fundamental elements can be used to construct more complex digital systems. The course's exploration of arithmetic datapaths such as adders, subtractors, multipliers, and dividers are essential knowledge for a digital design engineer. The course gives hands on exercises that help solidify this knowledge.
FPGA Engineer
An FPGA Engineer develops and implements designs on Field-Programmable Gate Arrays. This course, with its focus on the foundational aspects of digital logic and arithmetic datapath, is highly beneficial for anyone hoping to work with FPGAs. The course's coverage of CMOS gates and their use in building logic functions and arithmetic datapaths provides the fundamental knowledge required for FPGA design. The course helps learners understand how to translate high-level designs into low-level hardware implementations, which is central to the role of an FPGA engineer. The course may also help with the understanding of how to optimize designs.
Hardware Engineer
A Hardware Engineer designs, develops, and tests computer hardware components. This course, focusing on digital integrated circuit and FPGA design, builds a strong foundation for understanding the fundamental building blocks of hardware. It delves into CMOS gates, logic functions, and arithmetic datapath design, essential knowledge for any hardware engineer. The detailed exploration of CMOS gates, logic functions, and arithmetic datapath design provided in the course is directly applicable to this field. This course helps build a foundation in understanding the behavior of circuits, which is critical for developing functional, efficient hardware systems.
Circuit Design Engineer
A Circuit Design Engineer focuses on designing electronic circuits, including integrated circuits. This course's focus on CMOS gates and arithmetic datapaths is very relevant and helpful to any circuit design engineer. The course content introduces key concepts such as the behavior of CMOS gates, how they are used to build basic logic functions, and how they form crucial arithmetic blocks. This course may help a circuit design engineer in understanding and designing complex digital integrated circuits. The course gives learners a strong grasp of the behavior of circuits and their components.
ASIC Design Engineer
An ASIC Design Engineer designs Application-Specific Integrated Circuits, which are custom-made integrated circuits. With its focus on CMOS gates, logic functions, and arithmetic datapath, this course provides a good starting point for aspiring ASIC design engineers. The course builds a foundational understanding in digital circuit design, which may be useful for anyone in this field. An ASIC Design Engineer will be tasked with designing these systems, and a strong grasp of the underlying structure and behavior of the circuit elements is critical. This course may help with this effort.
System on a Chip Engineer
A System on a Chip Engineer, often referred to as SOC Engineer, works on integrating various components into a single integrated circuit. This course builds a strong foundation for the design of these complex systems. This course may help an SOC engineer understand the components of a SOC, with its study of CMOS gates, basic logic functions, and arithmetic datapaths. The course may be useful to understand how these components work, which is critical for an SOC engineer's role. The course gives an overview of crucial aspects of digital design knowledge.
Microelectronics Engineer
A Microelectronics Engineer works on the design and development of microelectronic devices and circuits. This course, with its focus on the fundamental aspects of CMOS gates and circuit design, may be helpful for a aspiring Microelectronics Engineer. The course explores how CMOS gates are used to build logic functions and arithmetic logic, providing a helpful basic understanding of the building blocks used in microelectronic devices. This knowledge may help students understand the behavior and functionality of circuits. This course may help aspiring microelectronics engineers.
Verification Engineer
A Verification Engineer is responsible for verifying the functionality and performance of hardware designs. While this course does not explicitly focus on verification, it may provide a helpful grounding in the fundamental concepts of digital hardware design, which is beneficial for verification work. A strong understanding of the underlying hardware architecture, such as CMOS gates, logic functions, and arithmetic data paths, is helpful for identifying verification requirements. The course may be useful to understand the design intent of digital circuits, allowing a Verification Engineer the ability to write effective test cases.
Embedded Systems Engineer
An Embedded Systems Engineer designs and develops hardware and software for embedded systems. The course may be helpful for any aspiring embedded systems engineer, as these systems often rely on digital hardware components. While the course does not cover software aspects, the course content, with its focus on CMOS gates, basic logic function and arithmetic datapath, this course helps build a fundamental understanding of the hardware that they may interact with in the field. This course may provide a helpful starting point for anyone interested in the hardware aspects of embedded systems.
Computer Architect
A Computer Architect designs the overall structure and organization of computer systems, including the CPU, memory, and peripheral devices. While this course doesn't cover the entire scope of computer architecture, it may be helpful for one interested in this field. The course focuses on low-level building blocks, including CMOS gates, logic blocks, and arithmetic units. These concepts, while not at a high level, may help a Computer Architect approach their work. The course may help establish knowledge of some of the core foundational elements that make up computer systems.
Hardware Validation Engineer
A Hardware Validation Engineer is responsible for ensuring that hardware designs meet their specifications and perform as expected. Although this course does not delve into validation techniques, it may be useful because it gives knowledge of basic digital logic and arithmetic blocks. The course's focus on CMOS gates, basic logic functions, and arithmetic datapaths provides foundational knowledge that is helpful for understanding hardware behavior. This course may help hardware validation engineers develop effective tests for digital circuits. This course focuses on digital circuits, and may help in understanding digital circuit validation.
Research Scientist
A Research Scientist in the field of hardware may focus on the cutting edge of hardware design. This course may be useful for those pursuing research in digital circuit design due to the detailed exploration of CMOS gates, logic blocks, and arithmetic datapaths. The course's emphasis on understanding how these components are built and behave may help a Research Scientist when doing research about how to optimize or develop better hardware systems. The course may help build foundational knowledge, and may be useful for future research.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots. This course may be helpful for a robotics engineer interested in the low level architecture of the robots they design. The course focuses on digital logic and arithmetic operations, which may be useful for the digital control systems of robots. With its focus on CMOS gates and how they combine for logic and arithmetic, the course may help build a better understanding. While the course does not go into detail about robotics applications, it may build critical foundational understanding for a robotics engineer.
Electrical Engineer
An Electrical Engineer designs, develops, and tests electrical equipment and systems. This course, focusing on digital circuits, particularly CMOS gates and arithmetic data paths, may be helpful for an Electrical Engineer who wants a better understanding of digital design. The course provides a good foundation in understanding how basic electrical circuit components can be used to build more complex systems. The concepts of CMOS gates and data path design may be helpful for anyone interested in digital aspects of electrical engineering. This course could help an electrical engineer interested in digital design.
Physics Researcher
A Physics Researcher may study the underlying physical principles of electronic components. This course may be helpful for those in this role who seek a basic understanding of electronic circuits. Understanding how CMOS gates operate and how they are used to construct digital circuits may be helpful for a physics researcher studying solid-state physics. The course may help the Physics Researcher by providing practical knowledge of digital circuit design. This course may give helpful context to those with a physics background.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Digital IC/FPGA Design P1: CMOS Gates & Arithmetic Datapath.
Comprehensive guide to CMOS VLSI design. It covers everything from basic circuit concepts to advanced system-level design techniques. It is commonly used as a textbook in universities and provides a deeper understanding of the concepts covered in the course, especially regarding CMOS gate characteristics and datapath implementation.
Provides a broad overview of digital design principles and computer architecture. It covers topics such as logic gates, arithmetic circuits, and memory systems. It useful reference for understanding the context in which CMOS gates and arithmetic datapaths are used in larger digital systems. It is also commonly used as a textbook.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser