Skip to main content

Command Palette

Search for a command to run...

100 Days of RTL

I think small thinks could solve complex problems in any domine

Updated
10 min readView as Markdown
100 Days of RTL

Introduction

Completing the #100DaysOfRTL challenge changed me a lot. When I started, my main goal was to better understand RTL design by practicing regularly. I didn't realize how much it would improve my skills, mindset, and career perspective.

RTL design isn’t just about coding in Verilog it’s about thinking in hardware. Once I understood this, my entire perspective on digital electronics changed. However, I struggled with maintaining consistency. While I understood the theory, applying it to create functional code and verified designs required discipline. This challenge pushed me to code daily, document my progress, and develop habits that would prepare me for the industry.

Throughout the 100 days,

DayTasklink
Day 1AND Gate using Verilog HDL.Click me for code capsule
Day 2OR Gate.Click me for code capsule
Day 3NOT Gate.Click me for code capsule
Day 4NAND Gate.Click me for code capsule
Day 5NOR Gate.Click me for code capsule
Day 6XOR Gate.Click me for code capsule
Day 7XNOR Gate.Click me for code capsule
Day 8Half Adder.Click me for code capsule
Day 9Full Adder.Click me for code capsule
Day 104-bit Full Adder using Verilog.Click me for code capsule
Day 11Ripple Carry Adder (4-bit).Click me for code capsule
Day 122:1 Multiplexer.Click me for code capsule
Day 13Half Subtractor using Verilog HDL.Click me for code capsule
Day 14Full Subtractor in Verilog HDL.Click me for code capsule
Day 154-bit Adder/Subtractor in Verilog HDL.Click me for code capsule
Day 16Carry Lookahead Adder (CLA) in Verilog HDL.Click me for code capsule
Day 174:1 Multiplexer using Verilog HDL.Click me for code capsule
Day 18Inverter using a 2:1 MUX.Click me for code capsule
Day 195:1 Multiplexer using only 2:1 MUXes.Click me for code capsule
Day 208:1 Multiplexer.Click me for code capsule
Day 21Full Subtractor using 8x1 MUX.Click me for code capsule
Day 22Full Subtractor using 4x1 Multiplexers in Verilog HDL.Click me for code capsule
Day 23Full Subtractor using only 2:1 Multiplexers.Click me for code capsule
Day 243-bit Gray to Binary Converter using 4:1 MUXes.Click me for code capsule
Day 2510x1 Multiplexer using 4x1 Multiplexers.Click me for code capsule
Day 261:2 Demultiplexer (DEMUX).Click me for code capsule
Day 271:4 Demux in Verilog today.Click me for code capsule
Day 28Full Adder using 1:4 Demux.Click me for code capsule
Day 291:2 Demux using a 1:4 Demux.Click me for code capsule
Day 304:1 MUX using 2:1 MUXes.Click me for code capsule
Day 311:4 DeMUX using 1:2 DeMUX.Click me for code capsule
Day 32Encoder vs Priority Encoder – Quick Difference.Click me for code capsule
Day 338:3 Encoder vs 8:3 Priority Encoder.Click me for code capsule
Day 343:8 Decoder using 2:4 Decoders.Click me for code capsule
Day 35Gray to Binary Converter using 3:8 Decoder.Click me for code capsule
Day 36N-bit Full Adder using Parameter Overriding.Click me for code capsule
Day 372-to-4 Decoder using 4:1 MUX.Click me for code capsule
Day 384-to-2 Encoder using 2:1 MUX.Click me for code capsule
Day 391-bit comparator in Verilog HDL.Click me for code capsule
Day 402-bit comparator in Verilog by instantiating and connecting multiple 1-bit comparator modules from the previous design.Click me for code capsule
Day 41N-bit comparator in Verilog using parameterized.Click me for code capsule
Day 42Binary-to-Gray Code Converter in Verilog HDL.Click me for code capsule
Day 43Gray-to-Binary code conversion in Verilog HDL.Click me for code capsule
Day 44N-bit Full AdderClick me for code capsule
Day 457:1 Multiplexer using 2:1 MultiplexersClick me for code capsule
Day 46Designed a 3-bit Operation ALU using Verilog HDL.Click me for code capsule
Day 47A deep dive into Verilog event scheduling and specifically what happens at the c (Non-Blocking Assignment region).Click me for code capsule
Day 48Simple 8x8 Synchronous RAM in Verilog HDL.Click me for code capsule
Day 49Prime number checking in Verilog.Click me for code capsule
Day 50Factorial module in Verilog HDL using a recursive function.Click me for code capsule
Day 51NOR latch (SR latch using cross-coupled NOR gates) in Verilog HDL.Click me for code capsule
Day 52Odd Parity Generator in Verilog HDL.Click me for code capsule
Day 53Verilog testbench to count the number of 1’s in a 32-bit vector using a parameterized function.Click me for code capsule
Day 54SR Latch using NAND Gates.Click me for code capsule
Day 55SR Latch using 4 NAND gates.Click me for code capsule
Day 56Examples of Compiler Directives.Click me for code capsule
Day 57Half Adder using a 2-to-4 Decoder.Click me for code capsule
Day 58Clock Generation (tp=10ns (100MHZ)-- and tp=5ns(200MHZ)).Click me for code capsule
Day 59Duty cycle generation using Verilog.Click me for code capsule
Day 60Understanding Jitter with Real Examples.Click me for code capsule
Day 61SR Latch with Enable using NAND gates.Click me for code capsule
Day 62D latch level-sensitive.Click me for code capsule
Day 63Positive level D latch using a 2:1 multiplexer.Click me for code capsule
Day 64Negative level-sensitive D latch using a 2:1 multiplexer.Click me for code capsule
Day 65A Positive Edge-Triggered D Flip-Flop using two D latches in master–slave.Click me for code capsule
Day 66D Flip-Flop Negative edge in Verilog using the master–slave latch design.Click me for code capsule
Day 67D Flip-Flop in Verilog HDL.Click me for code capsule
Day 68SR Flip-Flop in Verilog HDL.Click me for code capsule
Day 69T Flip-Flop in Verilog HDL.Click me for code capsule
Day 70JK Flip-Flop in Verilog HDL.Click me for code capsule
Day 71JK Flip-Flop using an SR Flip-Flop.Click me for code capsule
Day 72D Flip-Flop using an SR Flip-Flop.Click me for code capsule
Day 73T Flip-Flop using an SR Flip-Flop.Click me for code capsule
Day 74SR Flip-Flop using a D Flip-Flop.Click me for code capsule
Day 75JK Flip-Flop using a D Flip-Flop using 2*1 mux.Click me for code capsule
Day 76T Flip-Flop using a D Flip-Flop.Click me for code capsule
Day 77SR Flip-Flop using a JK Flip-Flop.Click me for code capsule
Day 78D Flip-Flop using a JK Flip-Flop.Click me for code capsule
Day 79T Flip-Flop using a JK Flip-Flop.Click me for code capsule
Day 80SR Flip-Flop using a T Flip-Flop..Click me for code capsule
Day 81D Flip-Flop using a T Flip-Flop.Click me for code capsule
Day 82JK Flip-Flop using a T Flip-Flop.Click me for code capsule
Day 833-bit asynchronous ripple counter using T flip-flops.Click me for code capsule
Day 843-bit Up Counter using JK Flip-Flops.Click me for code capsule
Day 853-bit Down Counter using JK Flip-Flops.Click me for code capsule
Day 863-bit sequence counter using T flip-flops (0 → 1 → 2 → 3 → 4 → 5 → 7 → 0 →)Click me for code capsule
Day 87mod5 synchronous counter using behavioral modeling.Click me for code capsule
Day 883-bit synchronous counterClick me for code capsule
Day 89decade counter.Click me for code capsule
Day 904-bit ring counter using behavioral modeling.Click me for code capsule
Day 914-bit Parallel In Parallel Out (PIPO) registerClick me for code capsule
Day 924-bit Serial In Parallel Out (SIPO) registerClick me for code capsule
Day 934-bit Serial In Serial Out (SISO) registerClick me for code capsule
Day 94Melay Sequence Detector (Non-Overlapping)Click me for code capsule
Day 95Melay Sequence Detector 1101 (Overlapping)Click me for code capsule
Day 96Moore Sequence Detector (Overlapping)101.Click me for code capsule
Day 97Moore Sequence Detector (Non-Overlapping)101.Click me for code capsule
Day 98Mealy Sequence Detector to detect the pattern 1110.Click me for code capsule
Day 99Memory ProjectClick me for code capsule
Day 100FIFO: Synchronous & AsynchronousClick me for code capsule

Some days were smooth, while others involved hours of debugging. These challenges taught me invaluable lessons.

Key Learnings:

  1. Consistency Over Motivation: Discipline was more crucial than motivation. Consistent effort, even for short periods, built momentum.

  2. Thinking in Hardware: My perspective shifted from coding to understanding hardware behavior, which is vital for an RTL engineer.

  3. Debugging as a Skill: I embraced errors as learning opportunities. Debugging became a crucial part of understanding my designs.

  4. Sharing Builds Confidence: Documenting my progress helped simplify concepts, benefiting both myself and others.

  5. Building a Portfolio: I now have a comprehensive portfolio of modules, designs, and verification approaches to showcase.

Why #100DaysOfRTL Matters:

For students and freshers in RTL/VLSI, this challenge offers hands-on practice beyond textbooks, demonstrates commitment to recruiters, helps build a visible portfolio, and shifts learning from passive theory to active design and verification.

Completing #100DaysOfRTL was about more than just writing Verilog or debugging waveforms. It was about developing habits, thinking like an engineer, and pushing myself to grow. If you're considering a similar journey, whether in RTL, coding, or any other skill, I highly recommend it. The transformation is gradual, but after 100 days, you'll see significant growth.

Key Concepts and Components:

  • Combinational Circuits: Generate outputs based solely on current inputs, performing logical operations with components like adders and multiplexers.

  • Sequential Circuits: Have memory elements, with outputs depending on current inputs and past states, using components like flip-flops and counters.

Both are essential for designing complex digital systems.

Resources and Tools Used:

  • ModelSim: For simulating and checking HDL designs.

  • Quartus Prime: For developing FPGA and CPLD, providing a complete environment for RTL design.

  • Canva: Used for creating presentations, Posters and documents to showcase projects.

These tools were instrumental in designing, simulating, and presenting my RTL projects effectively.

Today marks the completion of my 100 days of RTL journey a path filled with challenges, learning, and growth.

I’m truly grateful for this experience and for the consistency it helped me build. A special thanks to

Chinna Venkata Narayana Reddy Seelam, who inspired me to start and stay consistent throughout this journey.

More from this blog

MahammadHussainShaik

12 posts