Skip to main content

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...

ARM Assembly Language Practice Question And Answer Part-4

 Hello Dear Readers, 

Today in this post I will provide some basics to advanced ARM's assembly language practice QA part-4, I have used the Keil tool for code writing.

Q-1). Write an assembly language program that performs a mode change by modifying the contents of the CPSR. 

  a. The mode you should change to is user mode, and you have to modify the mode field of CPSR by the value of 0x10. 

  b. This assumes that the current mode is a privileged mode such as supervisor mode.

Code:

; program which changes the microprocessor mode 

masking equ 0x1f 

user_mode equ 0x10 

 area change, code, readonly

entry 

 MRS R0,CPSR; read the status of the microprocessor 

 BIC R0, R0,#masking; apply the masking bit 

 ORR R0,R0,#user_mode ; set the mode user_mode 

 MSR CPSR_C,R0 ; written back with control_field_mask 

 END 

Output:


Q-2). 
Write an assembly language program that generates Software Interrupt (SVC) to perform an operation either addition or multiplication of 3 registers based on value passed to SVC Number. Store result at memory location 0x5000.

Code:

; program to implement SWI for the two operation 

 area intruppt, code, readonly 

entry 

LDR PC,=Reset_Handler 

LDR PC,=Udef_Addr 

LDR PC,=SVC_Handler 

LDR PC,=PAbt_Addr 

LDR PC,=DAbt_Addr 

NOP ; reserved vector 

LDR PC,=IRQ_Addr 

LDR PC,=FIQ_Addr 

Reset_Handler 

  LDR R0,=0 

  LDR SP,=0X8000 

   B main 

SVC_Handler

  STMFD SP!,{R0-R12,LR} 

   LDR R10,[LR,#-4] ; FETCH OPCODE OF THE SWI 

   BIC R10,R10,#0XFF000000 

   CMP R10,#01 

   BLEQ SWI_ADD ; call subroutinue 

   CMP R10,#02 

   BLEQ SWI_MUL 

main 

    LDR R0,=2 

    LDR R1,=2 

    LDR R2,=2 

    SWI 02 

STOP B STOP 

SWI_ADD 

    ADD R3,R1,R2 

    ADD R4,R0,R3 

    LDR R5,=0X5000 

    STR R4,[R5] 

    LDMFD SP!,{R0-R12,PC} 

    stop B stop 

SWI_MUL 

   MUL R3,R1,R2 

   MUL R4,R0,R3 

    LDR R5,=0X5000 

    STR R4,[R5] 

    LDMFD SP!,{R0-R12,PC} 

    EXIT B EXIT 

Udef_Addr 

PAbt_Addr 

DAbt_Addr 

IRQ_Addr 

FIQ_Addr 

 END

Output:


Q-3). 
Write an assembly language program for the sorting (Ascending Order) of five numbers stored at 0x4000 using subroutine.

Code:

; program of the wring subroutinue for the sorting 5 numbers

loc EQU 0X4000 

loc1 EQU 0X5000 ; here i have used another memory location just for calculation 

 AREA sort, CODE ,READONLY 

ENTRY 

START 

  LDR SP, =0X4100 

  LDR R0, =loc

  LDR R1, =loc1 

  LDMIA R0!, {R2-R6}

  STMIA R1!, {R2-R6} 

   BL num_asc 

   LDMDB R1!, {R2-R6} 

   STMDB R0!, {R2-R6} 

   STOP B STOP 

num_asc 

  STMIA SP!, {LR} 

  LDR R3, =0X6 

AGAIN 

  SUBS R3, R3, #1

  BEQ OVER

   LDMDB R1!, {R5} 

   LDR R4, =0X6 

   MOV R2, R1 

DO 

   SUBS R4, R4, #1 

    BEQ AGAIN 

    LDMDB R2!, {R6}

    CMP R5, R6 

     BMI DO 

     STR R5, [R2] 

     STR R6, [R1] 

     MOV R5, R6 

      B DO 

OVER 

     LDMDB SP!, {PC} 

 END

Output:


Q-4). 
Write an assembly language program that generates Software Interrupt (SVC) to perform an operation GCD or LCM of 2 registers based on the value passed to SVC Number. Store result at memory location 0x4fff.

Code:

area gcd_lcm, CODE, READONLY 

ENTRY 

ldr pc,=main 

ldr pc,=SVC_Handler 

SVC_Handler 

   stmfd sp!,{r0-r12,lr}

   ldr r10,[lr,#-4] 

    bic r10,r10,#0xff000000 

    cmp r10,#01 

    bleq gcd 

    cmp r10,#02 

    bleq lcm 

main 

    ldr sp,=0x4000 

    ldr r0,=8 

    ldr r1,=2 

    mov r2,r1 

    mov r3,r0 

    swi 02 

   STOP B STOP 

gcd 

   CMP R1, R0 

   SUBSGT R1, R1, R0 

   SUBSLT R0, R0, R1 

   bne gcd 

   ldr r5,=0x4fff 

   strb r0,[r5] 

   ldmfd sp!,{r0-r12,pc} 

   stop B stop 

lcm 

    CMP R1, R0 

     SUBSGT R1, R1, R0 

     SUBSLT R0, R0, R1 

     bne lcm 

     muls r4,r2,r3 

     ldr r6,=0x0

label 

    subs r4,r4,r0 

    add r6,r6,#1 

     bgt label 

      ldr r5,=0x4fff

      strb r6,[r5] 

      ldmfd sp!,{r0-r12,pc} 

 exit b exit 

end

Output:


Q-5). 
Translate each of the following pseudo-code statements into a sequence of ARM assembly language instructions. Assume x and y are integers and x is in R1 and y is in R2.

Code:

AREA pseudo,CODE,READONLY 

ENTRY 

  ldr r0,data 

  ldr r1,[r0] 

  ldr r2,[r0,#4] 

  cmp r1,#9 

   bls loop_1 

   mov r1,#0 

    cmp r2,#9

    bls loop_2 

    mov r2,#0

    b nr

 loop_2 

    adds r2,r2,#1 

    stop b stop

loop_1 

    adds r1,r1,#1

nr 

data dcd 0X4000 

END 

Output:


Connect with me 






Comments

Post a Comment

Popular posts from this blog

Exploring the Role of LEF Files in VLSI Chip Design: A Beginner's Guide

Hello Dear Readers,   Today in this post, I will provide some deep insight into the LEF file role during the VLSI Chip Design process. In VLSI (Very Large Scale Integration) design, a LEF file is a file that contains information about the physical geometry of the standard cells used in a circuit. LEF stands for Library Exchange Format. A standard cell is a pre-designed logic cell that contains a specific function, such as a flip-flop or an AND gate. Standard cells are designed to be easily combinable and scalable to create more complex circuits. The physical geometry of each standard cell is defined in the LEF file. The LEF file contains information such as the width, height, and position of the pins and metal layers of each standard cell. It also contains information about the physical design rules that govern the placement of these cells on the chip. LEF files are important in VLSI design because they enable the interoperability of different design tools from different vend...

Best Book for Designing Microarchitecture of Microprocessor Using Verilog HDL

  Hello Dear Readers, Currently, after succeeding in many topics now I starting to provide technical book reviews which were I have completed and still read books always. So let us start today's book review. Book Name:   Computer Principles and Design in Verilog  HDL Description:  Uses Verilog HDL to illustrate computer architecture and microprocessor design, allowing readers to readily simulate and adjust the operation of each design, and thus build industrially relevant skills Introduces the computer principles, computer design, and how to use Verilog HDL (Hardware Description Language) to implement the design Provides the skills for designing processor/arithmetic/cpu chips, including the unique application of Verilog HDL material for CPU (central processing unit) implementation Despite the many books on Verilog and computer architecture and microprocessor design, few, if any, use Verilog as a key tool in helping a student to understand these design techniques...

RTL Design Engineer at Skyroot Aerospace

Hello, Dear Readers, Skyroot Aerospace has a vacancy for the RTL Design Engineer role. About Skyroot Aerospace: A cutting-edge startup founded by ex-ISRO scientists. Dedicated to affordable space access, we're rewriting aerospace technology rules. Our dynamic team fosters inventiveness, collaboration, and relentless excellence. Join us on a transformative journey to redefine space possibilities. Welcome to the forefront of space innovation with Skyroot Aerospace! Purpose of role: Understand architectural requirements and Design micro-architecture, implement design blocks using VHDL/Verilog for FPGA based Avionics packages for orbital launch vehicles and ground infrastructure. Job Requirements: 2+ Years of RTL and system design experience. Strong knowledge on Digital System Design (DSD). Strong knowledge of RTL/SoC design/integration with VHDL/Verilog. Strong knowledge in problem solving and debugging skills. Ability to understand architectural requirements and Design micro-archite...