Skip to main content

Posts

Showing posts from March, 2021

Signal Electromigration (Signal EM): Violations, Examples, and Practical Fixes

  Hello Dear Readers,   Today in this post, I will provide some deep insight into the Signal Electromigration (Signal EM): Violations, Examples, and Practical Fixes. 1. Introduction: As technology nodes shrink into the deep‑submicron and nanometer regime (7nm, 5nm, 3nm and beyond), electromigration (EM) has become a first‑order reliability concern—not only for power/ground (PG) networks but also for signal nets. Signal EM failures are often underestimated because signal currents are transient and bidirectional. However, with higher switching activity, tighter metal pitches, thinner wires, and aggressive timing closure, signal EM can cause latent or early‑life failures if not addressed properly. This article explains: What Signal EM is and how it differs from PG EM Typical Signal EM violation scenarios Detailed, practical examples Root causes behind each violation Proven solutions and best practices to fix and prevent Signal EM issues 2. What is Signal Electromigration: El...

Verilog Code of 4bit BCD Adder Using Full Adder

  Hello Dear Readers, Today in this post I will be providing you a complete Verilog code of 4 Bit BCD Adder using the Full Adder instant model. So before the start, the code keep in mind the algorithms for the BCD adder is if the additional sum is greater than 9 will become up then we add 6 on it to make a valid BCD number so here in my code I have used this algorithm so keep in mind. Verilog Code: module bcd_4bit(input [3:0] x,y,input cy_in,output [3:0] sum,output carry,output [4:0] bcd_sum); add4 a1 (carry,sum,x,y,cy_in); assign bcd_sum=carry==1?{carry,(sum+4'b0110)}:sum; endmodule module add4(cy4,sum,x,y,cy_in     ); input [3:0] x,y; input cy_in; output [3:0] sum; output cy4; wire [2:0] carry_out; add b0(carry_out[0],sum[0],x[0],y[0],cy_in); add b1(carry_out[1],sum[1],x[1],y[1],carry_out[0]); add b2(carry_out[2],sum[2],x[2],y[2],carry_out[1]); add b3(cy4,sum[3],x[3],y[3],carry_out[2]); endmodule module add(carry_out,sum,a,b,cy_in     ); input a,b,cy_in; outpu...