SlideShare une entreprise Scribd logo
1  sur  89
Télécharger pour lire hors ligne
Application Specific Integrated Circuits
Design and Implementation



                            Maurizio Skerlj
                            mailto: maurizio.skerlj@alcatel.it
                                    maurizio.skerlj@ieee.org
AGENDA                                                        2




                       Efficient RTL;
                   ♦

                       Synthesis;
                   ♦

                       Static Timing Analysis;
                   ♦

                       Design for Testability and Fault Coverage.
                   ♦




ASIC, Design and Implementation - M. Skerlj
References                                                                           3




                      M. J. S. Smith: Application-Specific Integrated Circuits, Addison-
                      Wesley (1997).
                      K. K. Parhi: VLSI Digital Signal Processing Systems, John Wiley &
                      Sons, Inc. (1999).
                      R. Airiau, J. Berge, V. Olive: Circuit Synthesis with VHDL, Kluwer
                      Academic Publishers (1991).
                      D. L. Perry: VHDL (Computer Hardware Description Language),
                      McGraw Hill (1991).
                      P. Kurup, T. Abbasi: Logic Synthesis Using Synopsis, Kluwer
                      Academic Publishers (1997).
                      K. Rabia: HDL coding tips for multi-million gate ICs, EEdesign
                      (december 2002).



ASIC, Design and Implementation - M. Skerlj
Design Entry                                                                       4


                                                                         s tart

                                              prelayout
                                                                   design entry
                                              s im u l a t i o n
                                                                        (1)
                                                   (4)


                                                                        logic
                                                                     s y n t h e s is
                                                                          (2)

                                                                      system
                                                                   p a r titio n i n g
                                                                          (3)

                                              p o s tla y o u t        floor-
                                              s im u l a t i o n     p la n n i n g
                                                     (9)                  (5)


                                                                    placem ent
                                                                        (6)


                                                c ircuit
                                                                      r o u tin g
                                              e x t r a c tio n
                                                                          (7)
                                                     (8)

                                                                          end




ASIC, Design and Implementation - M. Skerlj
The Coding Style                                                       5




                                                 Simulation
                                                   Speed
              Readable                                        Verification




                                              MY_ASIC.vhd
                                                                 Synthesis
            Maintenance




                                                              Re-use
              Portability




ASIC, Design and Implementation - M. Skerlj
Readable VHDL                                                                 6




               • use consistent style for signal names, variables, functions,
               processes, etc. (e.g. DT_name_77, CK_125, START_L,
               I_instance_name, P_process_name,...)
               • use the same name or similar names for ports and signal that are
               connected to.
               • use a consistent ordering of bits (e.g. MSB downto LSB).
               • use indentation.
               • use comments.
               • use functions instead of repeating same sections of code.
               • use loops and arrays.
               • don’t mix component instantiation and RTL code.



ASIC, Design and Implementation - M. Skerlj
Simulation speed                                                            7




               It takes days to simulate few milliseconds of circuit real life!
               Therefore it is very important to write HDL code that doesn’t
               slow down the verification process.
               • use arrays as much as possible instead of loops.
               • priority on low frequency control signals.
               • avoid process with heavy sensitivity lists (each signal in the
               sensitivity list will trig the process).




ASIC, Design and Implementation - M. Skerlj
Verification                                                                      8



           The VHDL and the consequent inferred circuit architecture
           must be thought for a exhaustive verification.

           •Avoid architectures for which is not clear what is the worst case or will
           create difficult-to-predict problems (e.g. asynchronous clocking and
           latches).

           •Poor practices on clock generations (gated clocks, using both falling and
           rising clock edges in the design, etc.)

           •Never use clocks where generated.

           •Always double-check your design with a logic synthesis tool as early as
           possible. (VHDL compilers don’t check the sensitivity lists and don’t warn
           you about latches)`


ASIC, Design and Implementation - M. Skerlj
The VHDL - RTL Subset                                            9




             NO
             • Timing delays
             • Multidimensional arrays (latest l.s. tools allows it)
             • Implicit finite state machines

             YES
             • Combinatorial circuits
             • Registers



ASIC, Design and Implementation - M. Skerlj
Recommended Types                                                              10




                    YES
                    • std_ulogic for signals;
                    • std_ulogic_vector for buses;
                    • unsigned for buses used in circuits implementing arithmetic
                    functions.

                    NO
                    • bit and bit_vector: some simulators don’t provide
                    built-in arithmetic functions for these types and, however, is
                    only a two states signal (‘X’ state is not foreseen);
                    • std_logic(_vector): multiple drivers will be resolved for
                    simulation (lack of precise synthesis semantics).




ASIC, Design and Implementation - M. Skerlj
Design re-use                                                             11




                Nowadays, designs costs too much to use them for only one
                project. Every design or larger building block must be
                thought of as intellectual property (IP).

                Reuse means:
                • use of the design with multiple purposes;
                • design used by other designers;
                • design implemented in other technologies;

                Therefore, it is necessary to have strong coding style rules,
                coded best practices, architectural rules and templates.


ASIC, Design and Implementation - M. Skerlj
Maintenance                                                                    12




                 Design that are implemented following rules and coding styles
                 shared by the design community are easy to understand and to
                 upgrade, prolonging its life cycle.

                 For the same purposes a good documentation is a must. On the
                 other hand, the documentation itself can be shorter, dealing only
                 with the general description of the block, since most of the
                 details will be clear from the design practices and guidelines.




ASIC, Design and Implementation - M. Skerlj
Documentation                           13




ASIC, Design and Implementation - M. Skerlj
Some HDL guidelines and examples        14




ASIC, Design and Implementation - M. Skerlj
Combinatorial Processes                                                     15




                                  process(sensitivity list)
                                     begin
                                        statement_1;
                                           …
                                        statement_n;
                                  end process;

                ! Only signals in the sensitivity list activate the process. If
                  the list is not complete, the simulation will show poor
                  results;
                ! Not assigning signals in every branch of the concurrent
                  statements will lead to inferred latches.


ASIC, Design and Implementation - M. Skerlj
Concurrent Assignments Inside                             16
      Processes
         P_MUX1: process(sel,a,b)
         begin
            case sel is
                when ‘0’ =>
                    y <= a;
                                              a
                when others =>                          0
                    y < b;
                                                            y
               end case;
                                              b         1
         end process;

         P_MUX2: process(sel,a,b)
         begin
                                                  sel
            if SEL = ‘0’ then
                y <= a;
            else
                y <= b;
            end if;
          end process;

ASIC, Design and Implementation - M. Skerlj
Tips on Conditional Statements                           17




            EASY TO WRITE, DIFFICULT TO VERIFY AND MAINTAIN:

                  if cond1 then
                     …
                  elsif
                     …
                  else
                     …
                  end if;

            DIFFICULT TO WRITE, EASY TO VERIFY AND MAINTAIN:
               case sel is
                   when choice_1 => …
                   when choice_2 => …
                   when others => …
               end if;


ASIC, Design and Implementation - M. Skerlj
Frequent Errors                                                       18




                                 if a=“00” then
                                    y0 <= ‘0’;
                                 elsif a=“11” then
                                    y0 <= ‘1’;
                                    y1 <= ‘0’;
                                 else
                                    y0 <= ‘0’;
                                    y1 <= ‘1’;
                                 end if;

                                 y1 not always assigned => INFERRED LATCH




ASIC, Design and Implementation - M. Skerlj
The Use of ‘for loops’                                      19




           signal a,b,y: std_ulogic_vector(7 downto 0);

           for I in y’range loop
              y(I)<= a(I) and b(I);
           end loop;
                                              a(7)
                                                           y(7)
                                              b(7)


                                                     ...

                                              a(0)
                                                           y(0)
                                              b(0)




ASIC, Design and Implementation - M. Skerlj
Tips for ‘for loop’ Implementation                                   20




               The for loop statement is supported by synthesis tools
               when the range bounds in the loop are globally static.
               When the range is not static (e.g. when one of the bounds
               is a signal value), the synthesis result is not a simple
               hardware duplication.

               In other words, the for loop must be un-foldable.

               ! Often the use of for loop can be avoided using
               vectors.



ASIC, Design and Implementation - M. Skerlj
Avoiding for loops                                             21




                         signal a: std_ulogic_vector(15 downto 0);


                         P_SHIFT: process(a)
                         begin
                            for I in 0 to 14 loop
                                a(I) <= a(I+1);
                            end loop;
                            a(15) <= a(0);
                         end process;

                         OR

                         a(14 downto 0) <= a(15 downto 1);
                         a(15) <= a(0);




ASIC, Design and Implementation - M. Skerlj
The Edge Triggered Enabled flip flop                 22




    process(CK,STARTL)
                                              STARTL
      begin
        if STARTL = ‘0’ then
          Q <= ‘0’;
                                                   0
        elsif CK=‘1’ and CK’event then                 Q
          if EN = ‘1’ then                         1
                                              D
               Q <= D;
                                              EN
            end if;
        end if;                               CK
    end process;



ASIC, Design and Implementation - M. Skerlj
Finite State Machines                                                      23




            Only synchronous finite state machines are the only ones
            accepted by synthesis tools.

            Basics:
            • The automaton is always in one of its possible sates: the
            current state (stored in the state register).
            • The next state may be computed using the current state and the
            input values.
            • Output values are computed depending on either the current
            state or the transition between two states (Moore or Mealy).
            • During each clock period, the state register is updated with the
            previously computed state (next state)


ASIC, Design and Implementation - M. Skerlj
Moore and Mealy                                                  24


                               Moore



                                                                 OUT
                               IN
                                                         LOGIC
                                                 STATE
                                         LOGIC




                                    CK




                              Mealy




                                                                 OUT
                               IN
                                                         LOGIC
                                                 STATE
                                         LOGIC




                                    CK




ASIC, Design and Implementation - M. Skerlj
FSM template                                                25


               P_NXT_STATE: process(STATE, IN)
               begin
                  STATE_NXT <= … logic …
               end process;

               P_STORE: process(CK, STARTL)
                                                   PRESENT ONLY
               begin
                                                     IF MEALY
                  if STARTL = ‘0’ then
                      STATE <= (others => ‘0’);
                  elsif CK’event and CK=‘1’ then
                     STATE <= STATE_NXT;
                  end if;
               end process;

               P_OUT: process(STATE, IN)
               begin
                  OUT <= logic(STATE, IN)
               end process;

ASIC, Design and Implementation - M. Skerlj
One-hot vs binary coded                                                     26




                  One-hot encoding sets one bit in the state register for each
                  state. This seems wasteful (a FSM with N states requires
                  exactly N flip-flops instead of log2N with binary
                  encoding).
                  One-hot encoding simplifies the logic and the interconnect
                  between the logic resulting often in smaller and faster FSMs.
                  Especially in FPGAs, where routing resources are limited,
                  one-hot encoding is sometimes the best choice.




ASIC, Design and Implementation - M. Skerlj
The Metastability Phenomenon                                                27




                 Metastability may occur when the data input changes too
                 close to the clock edges (setup or hold violation). In such
                 cases the flip-flop cannot decide whether its output should
                 be a ‘1’ or a ‘0’ for a long time. This situation is called an
                 upset.
                 This cannot occur in fully synchronous design if timing
                 constraints were met. However it may rise the opportunity to
                 register signals that come from the outside world (or form
                 another clock domain).




ASIC, Design and Implementation - M. Skerlj
Metastability Theory                                                        28




           Experimentally was found that the probability of upset is:
                                                              − tr
                                                              τc
                                                  p = T0 e
           where tr is the time the flip-flop has to resolve the output, T0 and
           τc are flip-flop constant.
           The Mean Time Between Upsets (MTBU) is
                                                             1
                                              MTBU =
                                                       p ⋅ f CK ⋅ f DT

           Therefore even if the data is changing slowly, simple
           oversampling is not an error-free technique.

ASIC, Design and Implementation - M. Skerlj
Input Synchronisation                                                      29




                 Using two flip-flops in cascade greatly reduces the overall
                 value of τc and T0 and as a consequence the probability of
                 upset, p.
                 When the first flip-flop capture an intermediate voltage
                 level (‘X’) the flip-flop takes some time to resolve in a ‘0’
                 or ‘1’ level. The resolution time is usually several times
                 longer than the clock-to-out time of the flip-flop, but less
                 than the clock period. However the second flip-flop is
                 always capturing stable data.
                 The penalty is an extra clock cycle latency.



ASIC, Design and Implementation - M. Skerlj
Pipelining and Parallel Processing                                           30




        Pipelining transformation leads to a reduction in the critical path,
        which can be exploited to either increase the sample speed or to reduce
        power consumption at same speed.
        Pipelining reduces the effective critical path by introducing pipelining
        delays along the datapath.

        In parallel processing, multiple outputs are computed in a clock period.
        Parallel processing increase the sampling rate by replicating the
        hardware so that several inputs can be processed a the same time.

        Therefore, the effective sampling speed is increased by the level of
        parallelism.



ASIC, Design and Implementation - M. Skerlj
Pipelining                                                                           31



     The pipelining latches can only be placed across any feed-forward cutset of the
     graph. We can arbitrarily place latches on a feed-forward cutset without affecting
     the functionality of the algorithm.
                                      f.f. cutset       cutset




                                                    D


     In an M-level pipelined system, the number of delay elements in any path from
     input to output is (M-1) greater than that in the same path in the original system.

     The two main drawbacks of the pipelining are increase in the number of latches
     (area) and in system latency.


ASIC, Design and Implementation - M. Skerlj
Parallel Processing                                                    32




        To obtain a parallel processing system, the SISO (single input –
        single output) system must be converted into a MIMO (multiple
        input – multiple output).

        In a parallelized system the critical path remain the same. It is
        important to understand that in a parallel system the clock period
        Tck and the sample period TS are different. In an M-level
        parallelized system holds

                                              Tck=M TS


ASIC, Design and Implementation - M. Skerlj
Pipelining and Parallel Processing                                       33
      Dualism (1)



          Parallel processing and pipelining techniques are duals of each
          other. If a computation can be pipelined, it can also be processed
          in parallel and vice versa.

          While independent sets of computation are performed in an
          interleaved manner in a pipelined system, they are computed in
          parallel processing mode by means of duplicate hardware.




ASIC, Design and Implementation - M. Skerlj
Pipelining and Parallel Processing                                  34
      Dualism (2)




                                                           y[2n]
                                               x[2n]
                                        x[n]                       y[n]

                                                         y[2n+1]
                                               x[2n+1]




ASIC, Design and Implementation - M. Skerlj
Folding                                                                        35




          It is important to minimize the silicon area of the integrated circuits,
          which is achieved by reducing the number of functional units,
          registers, multiplexers, and interconnection wires.

          By executing multiple algorithm operations on a single functional unit,
          the number of functional units in the implementation is reduced,
          resulting in a smaller silicon area.

          Folding provides a means for trading area for time in a DSP
          architecture. In general, folding can be used to reduce the number of
          hardware functional units by a factor N at the expense of increasing the
          computation time by a factor of N.


ASIC, Design and Implementation - M. Skerlj
Folding Example                                                           36




                                              b(n)         c(n)


                                     a(n)                         y(n)
                                                  +          +



                                                      c(n)
                                      b(n)


                           a(n)
                                                                         y(n)
                                                       D
                                              +




ASIC, Design and Implementation - M. Skerlj
Case Study: Frame Aligner                                                      37




                                              payload
                                              FAW




                        N




                                                                       payload
                                                                                 N




                                              payload
                                                             Phase
                                                        2N
                        payload
             FAW                      FAW
                                                             Rotator




                                                                       FAW

                                              FAW

                                              payload




ASIC, Design and Implementation - M. Skerlj
Using for-loop                                                            38


                   entity ROT_FOR7 is
                     Port (PHASE     : In    std_ulogic_vector (6 downto 0);
                           STACK : In std_ulogic_vector (255 downto 0);
                           DT_OUT    : Out   std_ulogic_vector (127 downto 0)
                   );
                   end ROT_FOR7;

                   architecture BEHAVIORAL of ROT_FOR7 is
                   CONSTANT N : Integer :=7;
                   signal INT_PHASE :integer range 0 to 127;

                   begin
                      INT_PHASE <= conv_integer(unsigned(PHASE));

                      p1 : process(INT_PHASE, STACK)
                      begin
                         for i in 0 to (2**N-1) loop
                            DT_OUT(i) <= STACK(i+INT_PHASE+1);
                         end loop;
                      end process;
                   end BEHAVIORAL;




ASIC, Design and Implementation - M. Skerlj
Using a low level description                                                                            39


        architecture BEHAVIORAL of ROT_STK7 is
        CONSTANT N : Integer :=7;

        CONSTANT DIM0 : Integer := 2**(N+1) -1;     -- 255
        CONSTANT DIM1 : Integer := DIM0 - 2**(N-1); -- 191
         [ ... ]
        CONSTANT DIM7 : Integer := DIM6 - 2**(N-7); -- 128

        begin
           p1 : process(PHASE, STACK)
           VARIABLE stack0 : std_ulogic_vector(DIM0-1 downto 0);
                      [...]
           VARIABLE stack7 : std_ulogic_vector(DIM7-1 downto 0);
           begin
                stack0(DIM0-1 downto 0) := STACK(DIM0 downto 1);
                IF (PHASE(N-1) = '1') THEN stack1(DIM1-1 downto 0) := stack0(DIM0-1 downto DIM0-DIM1);
                                            ELSE stack1(DIM1-1 downto 0) := stack0(DIM1-1 downto 0); END IF;
                IF (PHASE(N-2) = '1') THEN stack2(DIM2-1 downto 0) := stack1(DIM1-1 downto DIM1-DIM2);
                                            ELSE stack2(DIM2-1 downto 0) := stack1(DIM2-1 downto 0); END IF;
                IF (PHASE(N-3) = '1') THEN stack3(DIM3-1 downto 0) := stack2(DIM2-1 downto DIM2-DIM3);
                                            ELSE stack3(DIM3-1 downto 0) := stack2(DIM3-1 downto 0); END IF;
                IF (PHASE(N-4) = '1') THEN stack4(DIM4-1 downto 0) := stack3(DIM3-1 downto DIM3-DIM4);
                                            ELSE stack4(DIM4-1 downto 0) := stack3(DIM4-1 downto 0); END IF;
                IF (PHASE(N-5) = '1') THEN stack5(DIM5-1 downto 0) := stack4(DIM4-1 downto DIM4-DIM5);
                                            ELSE stack5(DIM5-1 downto 0) := stack4(DIM5-1 downto 0); END IF;
                IF (PHASE(N-6) = '1') THEN stack6(DIM6-1 downto 0) := stack5(DIM5-1 downto DIM5-DIM6);
                                            ELSE stack6(DIM6-1 downto 0) := stack5(DIM6-1 downto 0); END IF;
                IF (PHASE(N-7) = '1') THEN stack7(DIM7-1 downto 0) := stack6(DIM6-1 downto DIM6-DIM7);
                                            ELSE stack7(DIM7-1 downto 0) := stack6(DIM7-1 downto 0); END IF;
                DT_OUT <= stack7;
         end process;



ASIC, Design and Implementation - M. Skerlj
Synthesis report: Area                                                                     40

                                              synthesis report: area

        90000


        80000


        70000


        60000


        50000                                                                            stack
                                                                                         for
        40000                                                                            bus


        30000


        20000


        10000


               0
                     2               3         4                 5      6        7
                     18             71.5      185               454    1087    2487.5
         stack
                    70.5            242.5     1249             4514    15767   88585.5
         for
                    30.5            117.5     391.5            1432    5550    21766.5
         bus



ASIC, Design and Implementation - M. Skerlj
Synthesis: CPU Time                                                                              41

                                              synthesis report: CPU time

         3:21:36



         2:52:48



         2:24:00



         1:55:12
                                                                                               STACK
                                                                                               FOR
                                                                                               BUS
         1:26:24



         0:57:36



         0:28:48



         0:00:00
                      1               2          3                4          5         6
                    0:00:20         0:00:08    0:00:09          0:00:14    0:00:24   0:00:48
         STACK
                    0:00:35         0:00:32    0:00:51          0:05:52    0:11:32   3:07:57
         FOR
                    0:00:19         0:00:13    0:00:13          0:00:36    0:02:34   0:17:03
         BUS



ASIC, Design and Implementation - M. Skerlj
Functional Verification                                                  42



                                                                 start

                                              p r e layout
                                                             design entry
                                              sim u lation
                                                                  (1)
                                                    (4)


                                                                logic
                                                              synthesis
                                                                  (2)

                                                                system
                                                             p a r titioning
                                                                    (3)

                                              postlayout        floor-
                                              sim u lation     planning
                                                  (9)             (5)


                                                              placem e n t
                                                                  (6)


                                               circuit
                                                               routing
                                              extraction
                                                                 (7)
                                                  (8)

                                                                  end




ASIC, Design and Implementation - M. Skerlj
Pre- and Post Layout Simulation         43




ASIC, Design and Implementation - M. Skerlj
Logic Synthesis                                                     44



                                                              start

                                              prelayout
                                                           design entry
                                              simulation
                                                                (1)
                                                  (4)


                                                              logic
                                                            synthesis
                                                                (2)

                                                             system
                                                           partitioning
                                                                (3)

                                              postlayout      floor-
                                              simulation    planning
                                                  (9)           (5)


                                                            placement
                                                                (6)


                                               circuit
                                                             routing
                                              extraction
                                                               (7)
                                                  (8)

                                                               end




ASIC, Design and Implementation - M. Skerlj
RTL Block Synthesis                                                                45



                               Rewrite
                                               Write RTL
                                               HDL Code

                                       N

                                                 Simulate
                                                   OK?
                      Y
                                                      Y
                                               Synthesize
                         Major             N                  Constraints & Attributes
                                               HDL Code
                      Violations?                             Area & Timing Goals
                                                To Gates




                                                  Met
                                           N
                      Analysis                 Constraints?


                                                          Y



ASIC, Design and Implementation - M. Skerlj
Technology Library                                                                     46




                                                                             Cell Name
    cell ( AND2_3 ) {
        area : 8.000 ;
                                                           Cell Area
        pin ( Y ) {
            direction : output;
            timing ( ) {
                related_pin : quot;Aquot; ;                                    t
                timing_sense : positive_unate ;
                rise_propagation (drive_3_table_1) {
                                                                           Y=A+B
                     values (quot;0.2616, 0.2608, 0.2831,..)
                }
                rise_transition (drive_3_table_2) {
                  values (quot;0.0223, 0.0254, ...)
                        ....
              }                                                 Nominal Delays
            function : quot;(A & B)quot;;
            max_capacitance : 1.14810 ;
                                                               Cell Functionality
            min_capacitance : 0.00220 ;
        }
        pin ( A ) {                                           Design Rules for
            direction : input;
                                                              Output Pin
            capacitance : 0.012000;
            }
                                                             Electrical Characteristics of
                        ....
                                                             Input Pins


ASIC, Design and Implementation - M. Skerlj
Wire-load Model                                                                        47




             With the shrinking of process geometries, the delays incurred by the
             switching of transistors become smaller. On the other hand, delays due to
             physical characteristics (R, C) connecting the transistors become larger.

             Logical synthesis tools do not take into consideration “physical” information
             like placement when optimizing the design. Further the wire load models
             specified in the technology library are based on statistical estimations.

             In-accuracies in wire-load models and the actual placement and routing can
             lead to synthesized designs which are un-routable or don’t meet timing
             requirements after routing.




ASIC, Design and Implementation - M. Skerlj
Post layout timing analysis (FPGA)      48




ASIC, Design and Implementation - M. Skerlj
Timing Analysis                                                     49



                                                               start

                                              prelayout
                                                           design entry
                                              simulation
                                                                (1)
                                                  (4)


                                                              logic
                                                            synthesis
                                                                (2)

                                                             system
                                                           partitioning
                                                                (3)

                                              postlayout      floor-
                                              simulation    planning
                                                  (9)           (5)


                                                            placement
                                                                (6)


                                               circuit
                                                             routing
                                              extraction
                                                               (7)
                                                  (8)

                                                               end




ASIC, Design and Implementation - M. Skerlj
Timing Goals: Synchronous Designs                                       50




          Synchronous Designs:
      •
               Data arrives from a clocked device
           •
               Data goes to a clocked device
           •




          Objective:
      •
               Define the timing constraints for all paths within a design:
           •
                  all input logic paths
                •
                • the internal (register to register) paths, and
                • all output paths




ASIC, Design and Implementation - M. Skerlj
Constraining the Input Paths                                                                   51




                                                                  TO_BE_SYNTHESIZED
                                    External Logic
Launch edge                                      M                      N
                                                          A
  triggers                          D      Q                                     D    Q
    data

                                                          Clk                               Next edge
                     Clk
                                                                                          captures data
                                                                                TSETUP
                                  TClk-q             TM            TN


                    Clk

                                                                     Valid new data
                    A

                                        (TClk-q + TM)           (TN + TSETUP)
                                         (Input Delay)


ASIC, Design and Implementation - M. Skerlj
Constraining Output Paths of a                                                                     52
      Design
                                                                           External Logic         External
                          TO_BE_SYNTHESIZED
U3 Launches
                                                                                                  Flip-Flop
    Data                              U3                          B             T
                                                     S
                                                                                                  captures
                                  D        Q                                           D      Q
                                                                                                     data
             Clk




                                                      Ts                   TT        TSETUP
                                 TClk-q
                                       Launch Edge               Capture Edge

                            Clk

                                                                  Valid new data
                            B


                                               TClk-q + TS   TT + TSETUP
                                                             (Output Delay)

ASIC, Design and Implementation - M. Skerlj
Static Timing Analysis                                                             53



           Static Timing Analysis can determine if a circuit meets timing constraints
       •
           without dynamic simulation
           This involves three main steps:
       •
                Design is broken down into sets of timing paths
            •
                The delay of each path is calculated
            •
                All path delays are checked to see if timing constraints have been met
            •

                                              Path 2
                   Path 1

                            A                 D   Q                                 Z

                         CLK


                Path 3



ASIC, Design and Implementation - M. Skerlj
Calculating a Path Delay                                                            54




            To obtain the path delay you have to add all the net and cell
            timing arcs along the path.

                                          0.54
                                                        0.66
                                    1.0                               0.43
                          D1
                                                 0.32          0.23
                                                                                    U33
                                                                             0.25



          path_delay = (1.0 + 0.54 + 0.32 + 0.66 + 0.23 + 0.43 + 0.25) = 3.43 ns




ASIC, Design and Implementation - M. Skerlj
Post synthesis timing (FPGA)            55




ASIC, Design and Implementation - M. Skerlj
Test for Manufacturing Defects                                                 56




             The manufacturing test is created to detect manufacturing defects and
         •
             reject those parts before shipment
             Debug manufacturing process
         •

             Improve process yield
         •




ASIC, Design and Implementation - M. Skerlj
The importance of Test                                                       57




                      Cost                      Operation description
                       $1            to fix an IC (throw it away)
                      $10            to find and replace a bad IC on a board
                      $100           to find a bad board in a system
                     $1000           to find a bad component in a fielded system




ASIC, Design and Implementation - M. Skerlj
Test Case Study                                                                                      58




             ASIC defect            Defective         Total PCB            Defective   Total repair cost
                level                ASICs            repair cost           boards     at a system level
                  5%                  5000            $1million               500        $5million
                  1%                  1000            $200,000                100        $1milion
                 0.1%                 100              $20,000                 10        $100,000
                0.01%                  10              $2,000                   1         $10,000

          Assumptions
          • the number of part shipped is 100,000;
          • part price is $10;
          • total part cost is $1million;
          • the cost of a fault in an assembled PCB is $200;
          • system cost is $5000;
          •the cost of repairing or replacing a system due to failure is $10,000.




ASIC, Design and Implementation - M. Skerlj
Manufacturing Defects                                                        59




                                                    Electrical Effects
             Physical Defects
                                                Shorts (Bridging Faults)
        Silicon Defects                       l
      l
                                              l Opens
      l Photolithography Defects
                                              l Transistor Stuck On/Open
      l Mask Contamination
                                              l Resistive Short/Open
      l Process Variations
                                              l Changes in Threshold Voltage
      l Defective Oxide




                                                      Logical Effects
                                                Logic Stuck-at-0/1
                                              l

                                              l Slower Transitions (Delay Fault)

                                              l AND-bridging, OR-bridging




ASIC, Design and Implementation - M. Skerlj
Fault models                                                                            60




                                                                     Logical fault
     Fault                    Physical fault             Degradation Open-circuit Short-circuit
     level                                                  fault       fault        fault
     Chip
              Leakage or short between package leads          *                         *
              Broken, misaligned, or poor wire bonding                     *
              Surface contamination                           *
              Metal migration, stress, peeling                             *            *
              Metallization (open/short)                                   *            *
     Gate
              Contact opens                                                *
              Gate to S/D junction short                      *                         *
              Field-oxide parasitic device                    *                         *
              Gate-oxide imperfection, spiking                *                         *
              Mask misalignement                              *                         *



ASIC, Design and Implementation - M. Skerlj
How is Manufacturing Test                                                                 61
      Performed?

           Automatic Test Equipment (ATE) applies input stimulus to the Device Under Test
       •
           (DUT) and measures the output response




                                                                    Outputs
                                     Inputs     DUT



           If the ATE observes a response different from the expected response, the DUT fails
       •
           manufacturing test
           The process of generating the input stimulus and corresponding output response is
       •
           known as Test Generation




ASIC, Design and Implementation - M. Skerlj
ATE                                     62




ASIC, Design and Implementation - M. Skerlj
Stuck-at Fault Model                                                                 63




      The single stuck-at fault (SSF) model assumes that there is just one fault in the
      logic we are testing.

      We use a SSF model because a multiple stuck-at fault model is too complicated
      to implement.

      In the SSF model we further assume that the effect of the physical fault is to
      create only two kinds of logical fault (SA1 and SA0). The place where we inject
      faults is called the fault origin (net/input/output faults).

      When a fault changes the circuit behaviour, the change is called the fault effect.
      Fault effects travel through the circuit to other logic cells causing other fault
      effects (fault propagation).



ASIC, Design and Implementation - M. Skerlj
Single “Stuck-at” Fault Model:                        64
      Example

      Model manufacturing defects with a “Stuck-at” Fault



                                        SA0




ASIC, Design and Implementation - M. Skerlj
Controllability                                                  65




                   Ability to set internal nodes to a specific value



                                          1/0
     0




ASIC, Design and Implementation - M. Skerlj
Observability                                                  66




    Ability to propagate the fault effect from an internal node to
    a primary output port


       1                                        1/0
                                          1/0
                                                           0/1
       0

       1
                                                 1
       -


ASIC, Design and Implementation - M. Skerlj
Fault collapsing                                                                   67




       Stuck-at faults attached to different points may produce identical fault
       effects.
       Using fault collapsing we can group these equivalent faults into a fault-
       equivalent class (representative fault).

       If any of the test that detect a fault B also detects fault A, but only some of
       the the test for fault A also detect fault B, we say that A is a dominant
       fault (some texts uses the opposite definition). To reduce the number of
       tests we will pick the test for the dominated fault B (dominant fault
       collapsing).

       Example: output SA0 for a two-input NAND dominates either input SA1
       faults.


ASIC, Design and Implementation - M. Skerlj
Fault Simulation and Fault Coverage                                                      68


     We use fault simulation to see what happens in a design when deliberately introduce
     faults. In a production test we only have access to the package pins: primary
     inputs/outputs (PI/PO).

     To test an ASIC we must devise a series of sets of input patterns that will detect any
     faults.

     If the simulation shows that th POs of the faulty circuit are different than the PIs of
     the good circuit at any strobe time, then we have a detected fault; otherwise we have
     an undetected fault. At the end of the simulation we can find the fault coverage



                                                 detected faults
                               fault coverage =
                                                detectable faults

ASIC, Design and Implementation - M. Skerlj
Fault Coverage and Defect Coverage                                           69




          Fault Coverage Average defect level Average Quality Level (AQL)
               50%               7%                      93%
               90%               3%                      97%
               95%               1%                      99%
               99%              0.1%                    99.9%
              99.9%            0.01%                   99.99%


      These results are experimental and they are the only justification for our
      assumptions in adopting the SSF model.




ASIC, Design and Implementation - M. Skerlj
Quiescent Leakage Current                                                           70




        A CMOS transistor in never completely off because of subthreshold and
        leakage current.
        • Subthreshold current: VGS = 0 but trough the transistor a current of few
        pA/µm is flowing.
        • Leakage current: The sources and drains of every transistor and the junctions
        between the wells and substrate form parasitic diodes. Reverse-biased diodes
        conducts a very small leakage current.
        The quiescent leakage current (IDDQ) is the current measured when we test an
        ASIC with no signal activity and must have the same order of magnitude than
        the sum of the subthreshold and leakage current.
        A measurement of more current than this in a non-active CMOS ASIC indicates
        a problem with the chip manufacture (or the design).



ASIC, Design and Implementation - M. Skerlj
Measuring the IDDQ Externally                        71




          ♦ With specific ATE (Automatic Test Equipment)
                • no dedicated circuits on chip;
                • no impact on chip performance;
                • external ad-hoc ATPG;
                • time consuming.




ASIC, Design and Implementation - M. Skerlj
Measuring the IDDQ on Chip                                           72




       ♦ With a current sensor (BICM)
             • dedicated circuitry;
             • internal ATPG or scan to lead the device in the quiescent
             mode;
             • impact on chip due to voltage drop over the BICM;
                                              Vdd

                                                        Idd

                                                     BICM




                                                In            Out
                                                     CUT


                                              Vss




ASIC, Design and Implementation - M. Skerlj
IDDQ Test                                                                   73




                  • The IDDQ test reveals shorts but not opens;
                  • A 100% coverage may be expensive;
                  • Multiple samples of the current are necessary for a meaning
                  test.
                  • Quiescent IDD depends from the design but also mainly
                  from process and package;




ASIC, Design and Implementation - M. Skerlj
Testing a Multistage, Pipelined                                                                    74
      Design
                                                                        Need to observe results at the
                                              Test for SA0 fault here
                                                                        output of the design.
                                              1

                                              0

                                              0

                                              1



     Need to set input pins to specific values so that
     nets within pipeline can be set to values which test
     for a fault



      Each fault tested requires a predictive means for both controlling the input and
      observing the results downstream from the fault.



ASIC, Design and Implementation - M. Skerlj
Scan Chains                                                                    75




        Gains:
        l Scan chain initializes nets within the design (adds controllability);
        l Scan chain captures results from within the design (adds observability).


        Paid price:
        l Inserting a scan chain involves replacing all Flip-Flops with scannable
          Flip-Flops;
        l Scan FF will affect the circuit timing and area.




ASIC, Design and Implementation - M. Skerlj
Inaccuracy Due to Scan Replacements                                      76




     Larger area than non-scan registers;              Additional fanout and
                                                       capacitive loading


                                                              TI
   Larger setup time                                               1
                                              1
                                     TI
   requirement                                    DO          DI
                                                                   0
                                              0
                                     DI

                                     TE
                                                        CLK
                                   CLK




ASIC, Design and Implementation - M. Skerlj
Testability Violation: Example                                                       77




                                                    D                   N
                                                          Q
                                                    SI


                                                    SE
                                 SE




        What would happen if, during test, a ‘1’ is shifted into the FF? We would
        never be able to “clock” the Flip-Flop!
        Therefore, the FF cannot be allowed to be part of a scan chain. Logic in the net
        ‘N’ cannot be tested.
        The above circuit
        l violates good ‘DFT’ practices;
        l reduces the fault coverage.


ASIC, Design and Implementation - M. Skerlj
Synthesizing for Test Summary                                             78




                  Test is a design methodology: it has its own testability
              •
                  design rules.


                  Most problems associated with test can be anticipated and
              •
                  corrected in advance, during the initial compile of the HDL
                  code.




ASIC, Design and Implementation - M. Skerlj
Built-in Self-test                                                                       79



      Built-in Self-test (BIST) is a set of structured-test techniques for combinatorial and
      sequential logic, memories, etc.

      The working principle is to generate test vectors, apply them to the circuit under
      test (CUT) and then check the response. In order to produce long test vectors linear
      feedback shift register (LFSR) are used. By correctly choosing the points at which
      we take the feedback form an n-bit SR we can produce a pseudo random binary
      sequence (PRBS) of a maximal length (2n-1).




                                              CK        CK
                                   CK




ASIC, Design and Implementation - M. Skerlj
Signature Analysis                                                                                80




                                                                  Q1               Q2
                                                   Q0

                            IN

                                                    CK                 CK
                                              CK




        If we apply a binary input sequence to IN, the shift register will perform data compression
        on the input sequence. At the end of the input sequence the shift-register contents,
        Q0Q1Q2, will form a pattern called signature.

        If the input sequence and the serial-input signature register are long enough, it is
        unlikely that two different input sequences will produce the same signature.

         If the input sequence comes form logic under test, a fault in the logic will cause the input
        sequence to change. This causes the signature to change from a known value and we
        conclude that the CUT is bad.


ASIC, Design and Implementation - M. Skerlj
The IEEE 1149.1 Standard                                                                  81



    In 1985 a group of European manufacturers formed the Joint European Test Action
    Group, later renamed in JTAG (1986). The JTAG 2.0 test standard formed the basis
    of the IEEE Standard 1149.1 Test Port and Boundary-Scan Architecture (1990).

    Boundary-Scan test (BST) is a method for testing boards using a four-wire interface
    (with a fifth optional master reset signal). The BST standard was designed to test
    boards , but it’s also useful to test ASICs.

    We can automatically generate test vectors for combinational logic, but ATPG
    (Automatic Test Pattern Generation) is much harder to sequential logic.

    In full scan design we replace every sequential element with a scan flip-flop. The result
    is an internal form of boundary scan and we can use the IEEE 1149.1 TAP to access an
    internal scan chain.



ASIC, Design and Implementation - M. Skerlj
Boundary Scan Chain                                                             82




          Each IO pin is replaced with a multi-purpose element called Boundary Scan
          cell.
                                                 scan out


                                       scan in

                              PINs
                                                            CORE




                           BS cell




ASIC, Design and Implementation - M. Skerlj
The BS Architecture                                                     83




                                          TDI   TCK TMSTRST TDO


                                                   TAP CONTROLLER       MUX

                                                INSTRUCTION REGISTERS

                                                 TEST DATA REGISTERS




                                                     CORE




ASIC, Design and Implementation - M. Skerlj
The BS Cell                                                                                      84




                                                                         SERIAL OUT
                         DATAIN




                                                                                             DATAOUT

                                              D    Q            D    Q



                                              CK                CK

                      SERIALIN
                                                                                      MODE

                    SHIFT/LOAD




                           CLOCK
                                                       UPDATE




ASIC, Design and Implementation - M. Skerlj
BISR: Increasing the Process Yield                                              85




             Increasing size, density and complexity in memory technologies
             lead to higher defect density and, consequently, a decrease in
             process yield.
             A cost- and time-effective solution is built-in self-repair (BISR). It
             consists of replacing, on silicon, the defective memory columns by
             spare columns available next to the functional memory. BISR is
             implemented at the column, row, block or bit level. Using non-
             volatile blocks to store the memory reconfiguration improves the
             memory production yield.




ASIC, Design and Implementation - M. Skerlj
BISR: Increasing Reliability                                               86




            Reliability aspect is also considered by chip manufacturers. High
            memory size and high-end memory technologies often lead to an
            increasing number of defects that happen during the product life.
            BISR solutions allow the memory to be tested in the filed and the
            defective memory blocks to be replaced by redundant blocks that
            are not defective. If the memory contains critical contents,
            transparent BISR allows defective blocks to be tested and replaced
            without losing the original memory content.




ASIC, Design and Implementation - M. Skerlj
Layout (ASICs)                                                       87




                                                  Placement
                                              •

                                                  Clock Tree Synthesis
                                              •

                                                  Routing
                                              •

                                                  Netlist Optimisation
                                              •

                                                  Physical Analysis
                                              •
                                                       Cross Talk
                                                   •

                                                       Signal Integrity
                                                   •

                                                       Electro Migration
                                                   •

                                                       IR Drop
                                                   •




ASIC, Design and Implementation - M. Skerlj
Layout & Floorplan (FPGAs)              88




ASIC, Design and Implementation - M. Skerlj
ASIC Design and Implementation

Contenu connexe

Tendances

1 introduction to vlsi physical design
1 introduction to vlsi physical design1 introduction to vlsi physical design
1 introduction to vlsi physical design
sasikun
 
Introduction to VLSI
Introduction to VLSI Introduction to VLSI
Introduction to VLSI
illpa
 
Introduction to VLSI
Introduction to VLSIIntroduction to VLSI
Introduction to VLSI
Shams Tabrej
 

Tendances (20)

Vlsi circuit design
Vlsi circuit designVlsi circuit design
Vlsi circuit design
 
Inputs of physical design
Inputs of physical designInputs of physical design
Inputs of physical design
 
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
 
1 introduction to vlsi physical design
1 introduction to vlsi physical design1 introduction to vlsi physical design
1 introduction to vlsi physical design
 
VLSI routing
VLSI routingVLSI routing
VLSI routing
 
Introduction to VLSI
Introduction to VLSI Introduction to VLSI
Introduction to VLSI
 
Presentation on Industrial training in VLSI
Presentation on Industrial training in VLSI Presentation on Industrial training in VLSI
Presentation on Industrial training in VLSI
 
Vlsi physical design-notes
Vlsi physical design-notesVlsi physical design-notes
Vlsi physical design-notes
 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
 
Pd flow i
Pd flow iPd flow i
Pd flow i
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Vlsi
VlsiVlsi
Vlsi
 
Asic pd
Asic pdAsic pd
Asic pd
 
Low power vlsi design ppt
Low power vlsi design pptLow power vlsi design ppt
Low power vlsi design ppt
 
Standard-Cells.pdf
Standard-Cells.pdfStandard-Cells.pdf
Standard-Cells.pdf
 
Vlsi Synthesis
Vlsi SynthesisVlsi Synthesis
Vlsi Synthesis
 
ASIC Design Flow
ASIC Design FlowASIC Design Flow
ASIC Design Flow
 
Introduction to VLSI
Introduction to VLSIIntroduction to VLSI
Introduction to VLSI
 
Formal Verification - Formality.pdf
Formal Verification - Formality.pdfFormal Verification - Formality.pdf
Formal Verification - Formality.pdf
 
ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI
 

En vedette

Asic design lect1 2 august 28 2012
Asic design lect1 2 august 28 2012Asic design lect1 2 august 28 2012
Asic design lect1 2 august 28 2012
babak danyal
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flow
Anish Gupta
 
Embedded system
Embedded systemEmbedded system
Embedded system
12lakshmi
 
Companies handling VLSI and ASIC design
Companies handling VLSI and ASIC designCompanies handling VLSI and ASIC design
Companies handling VLSI and ASIC design
Subash John
 

En vedette (20)

ASIC
ASICASIC
ASIC
 
ASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENTASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENT
 
Asics Final Presentation
Asics Final PresentationAsics Final Presentation
Asics Final Presentation
 
Asic backend design
Asic backend designAsic backend design
Asic backend design
 
Asic design lect1 2 august 28 2012
Asic design lect1 2 august 28 2012Asic design lect1 2 august 28 2012
Asic design lect1 2 august 28 2012
 
Swindon the making of an asic
Swindon the making of an asicSwindon the making of an asic
Swindon the making of an asic
 
Triad Semiconductor Analog and Mixed Signal ASIC Company Overview
Triad Semiconductor Analog and Mixed Signal ASIC Company OverviewTriad Semiconductor Analog and Mixed Signal ASIC Company Overview
Triad Semiconductor Analog and Mixed Signal ASIC Company Overview
 
Fpga asic technologies_flow
Fpga asic technologies_flowFpga asic technologies_flow
Fpga asic technologies_flow
 
FCB Planning Project
FCB Planning ProjectFCB Planning Project
FCB Planning Project
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flow
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
 
Images in matlab
Images in matlabImages in matlab
Images in matlab
 
Gray Coded Grayscale Image Steganoraphy using Hufman Encoding
Gray Coded Grayscale Image Steganoraphy using Hufman EncodingGray Coded Grayscale Image Steganoraphy using Hufman Encoding
Gray Coded Grayscale Image Steganoraphy using Hufman Encoding
 
Programmable asic i/o cells
Programmable asic i/o cellsProgrammable asic i/o cells
Programmable asic i/o cells
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Asic
AsicAsic
Asic
 
Companies handling VLSI and ASIC design
Companies handling VLSI and ASIC designCompanies handling VLSI and ASIC design
Companies handling VLSI and ASIC design
 
image theory
image theoryimage theory
image theory
 
Ubuntu linux introduction
Ubuntu linux introductionUbuntu linux introduction
Ubuntu linux introduction
 
VLSI Training Course in Chandigarh (Front End Design, Back End CMOS Design)
VLSI Training Course in Chandigarh (Front End Design, Back End CMOS Design)VLSI Training Course in Chandigarh (Front End Design, Back End CMOS Design)
VLSI Training Course in Chandigarh (Front End Design, Back End CMOS Design)
 

Similaire à ASIC Design and Implementation

Unit 5_Realizing Applications in FPGA.pdf
Unit 5_Realizing Applications in FPGA.pdfUnit 5_Realizing Applications in FPGA.pdf
Unit 5_Realizing Applications in FPGA.pdf
kanyaakiran
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
ijceronline
 
Hari Krishna Vetsa Resume
Hari Krishna Vetsa ResumeHari Krishna Vetsa Resume
Hari Krishna Vetsa Resume
Hari Krishna
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
Crypto Cg
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
Marisa Paryasto
 

Similaire à ASIC Design and Implementation (20)

NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)
 
Unit 5_Realizing Applications in FPGA.pdf
Unit 5_Realizing Applications in FPGA.pdfUnit 5_Realizing Applications in FPGA.pdf
Unit 5_Realizing Applications in FPGA.pdf
 
CV-A Naeem
CV-A NaeemCV-A Naeem
CV-A Naeem
 
EFFICIENT VLSI IMPLEMENTATION OF THE BLOCK CIPHER RIJNDAEL ALGORITHM
EFFICIENT VLSI IMPLEMENTATION OF THE BLOCK CIPHER RIJNDAEL ALGORITHMEFFICIENT VLSI IMPLEMENTATION OF THE BLOCK CIPHER RIJNDAEL ALGORITHM
EFFICIENT VLSI IMPLEMENTATION OF THE BLOCK CIPHER RIJNDAEL ALGORITHM
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
 
Hari Krishna Vetsa Resume
Hari Krishna Vetsa ResumeHari Krishna Vetsa Resume
Hari Krishna Vetsa Resume
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Phd Defense 2007
Phd Defense 2007Phd Defense 2007
Phd Defense 2007
 
VLSI
VLSIVLSI
VLSI
 
Learning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method NamesLearning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method Names
 
Exploring NISC Architectures for Matrix Application
Exploring NISC Architectures for Matrix ApplicationExploring NISC Architectures for Matrix Application
Exploring NISC Architectures for Matrix Application
 
Review paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmeticReview paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmetic
 
VLSI
VLSIVLSI
VLSI
 
Ramesh resume
Ramesh resumeRamesh resume
Ramesh resume
 
Simple AEAD Hardware Interface SAEHI in a SoC: Implementing an On-Chip Keyak/...
Simple AEAD Hardware Interface SAEHI in a SoC: Implementing an On-Chip Keyak/...Simple AEAD Hardware Interface SAEHI in a SoC: Implementing an On-Chip Keyak/...
Simple AEAD Hardware Interface SAEHI in a SoC: Implementing an On-Chip Keyak/...
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
 
PERFORMANCE ANALYSIS OF SYMMETRIC KEY CIPHERS IN LINEAR AND GRID BASED SENSOR...
PERFORMANCE ANALYSIS OF SYMMETRIC KEY CIPHERS IN LINEAR AND GRID BASED SENSOR...PERFORMANCE ANALYSIS OF SYMMETRIC KEY CIPHERS IN LINEAR AND GRID BASED SENSOR...
PERFORMANCE ANALYSIS OF SYMMETRIC KEY CIPHERS IN LINEAR AND GRID BASED SENSOR...
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

ASIC Design and Implementation

  • 1. Application Specific Integrated Circuits Design and Implementation Maurizio Skerlj mailto: maurizio.skerlj@alcatel.it maurizio.skerlj@ieee.org
  • 2. AGENDA 2 Efficient RTL; ♦ Synthesis; ♦ Static Timing Analysis; ♦ Design for Testability and Fault Coverage. ♦ ASIC, Design and Implementation - M. Skerlj
  • 3. References 3 M. J. S. Smith: Application-Specific Integrated Circuits, Addison- Wesley (1997). K. K. Parhi: VLSI Digital Signal Processing Systems, John Wiley & Sons, Inc. (1999). R. Airiau, J. Berge, V. Olive: Circuit Synthesis with VHDL, Kluwer Academic Publishers (1991). D. L. Perry: VHDL (Computer Hardware Description Language), McGraw Hill (1991). P. Kurup, T. Abbasi: Logic Synthesis Using Synopsis, Kluwer Academic Publishers (1997). K. Rabia: HDL coding tips for multi-million gate ICs, EEdesign (december 2002). ASIC, Design and Implementation - M. Skerlj
  • 4. Design Entry 4 s tart prelayout design entry s im u l a t i o n (1) (4) logic s y n t h e s is (2) system p a r titio n i n g (3) p o s tla y o u t floor- s im u l a t i o n p la n n i n g (9) (5) placem ent (6) c ircuit r o u tin g e x t r a c tio n (7) (8) end ASIC, Design and Implementation - M. Skerlj
  • 5. The Coding Style 5 Simulation Speed Readable Verification MY_ASIC.vhd Synthesis Maintenance Re-use Portability ASIC, Design and Implementation - M. Skerlj
  • 6. Readable VHDL 6 • use consistent style for signal names, variables, functions, processes, etc. (e.g. DT_name_77, CK_125, START_L, I_instance_name, P_process_name,...) • use the same name or similar names for ports and signal that are connected to. • use a consistent ordering of bits (e.g. MSB downto LSB). • use indentation. • use comments. • use functions instead of repeating same sections of code. • use loops and arrays. • don’t mix component instantiation and RTL code. ASIC, Design and Implementation - M. Skerlj
  • 7. Simulation speed 7 It takes days to simulate few milliseconds of circuit real life! Therefore it is very important to write HDL code that doesn’t slow down the verification process. • use arrays as much as possible instead of loops. • priority on low frequency control signals. • avoid process with heavy sensitivity lists (each signal in the sensitivity list will trig the process). ASIC, Design and Implementation - M. Skerlj
  • 8. Verification 8 The VHDL and the consequent inferred circuit architecture must be thought for a exhaustive verification. •Avoid architectures for which is not clear what is the worst case or will create difficult-to-predict problems (e.g. asynchronous clocking and latches). •Poor practices on clock generations (gated clocks, using both falling and rising clock edges in the design, etc.) •Never use clocks where generated. •Always double-check your design with a logic synthesis tool as early as possible. (VHDL compilers don’t check the sensitivity lists and don’t warn you about latches)` ASIC, Design and Implementation - M. Skerlj
  • 9. The VHDL - RTL Subset 9 NO • Timing delays • Multidimensional arrays (latest l.s. tools allows it) • Implicit finite state machines YES • Combinatorial circuits • Registers ASIC, Design and Implementation - M. Skerlj
  • 10. Recommended Types 10 YES • std_ulogic for signals; • std_ulogic_vector for buses; • unsigned for buses used in circuits implementing arithmetic functions. NO • bit and bit_vector: some simulators don’t provide built-in arithmetic functions for these types and, however, is only a two states signal (‘X’ state is not foreseen); • std_logic(_vector): multiple drivers will be resolved for simulation (lack of precise synthesis semantics). ASIC, Design and Implementation - M. Skerlj
  • 11. Design re-use 11 Nowadays, designs costs too much to use them for only one project. Every design or larger building block must be thought of as intellectual property (IP). Reuse means: • use of the design with multiple purposes; • design used by other designers; • design implemented in other technologies; Therefore, it is necessary to have strong coding style rules, coded best practices, architectural rules and templates. ASIC, Design and Implementation - M. Skerlj
  • 12. Maintenance 12 Design that are implemented following rules and coding styles shared by the design community are easy to understand and to upgrade, prolonging its life cycle. For the same purposes a good documentation is a must. On the other hand, the documentation itself can be shorter, dealing only with the general description of the block, since most of the details will be clear from the design practices and guidelines. ASIC, Design and Implementation - M. Skerlj
  • 13. Documentation 13 ASIC, Design and Implementation - M. Skerlj
  • 14. Some HDL guidelines and examples 14 ASIC, Design and Implementation - M. Skerlj
  • 15. Combinatorial Processes 15 process(sensitivity list) begin statement_1; … statement_n; end process; ! Only signals in the sensitivity list activate the process. If the list is not complete, the simulation will show poor results; ! Not assigning signals in every branch of the concurrent statements will lead to inferred latches. ASIC, Design and Implementation - M. Skerlj
  • 16. Concurrent Assignments Inside 16 Processes P_MUX1: process(sel,a,b) begin case sel is when ‘0’ => y <= a; a when others => 0 y < b; y end case; b 1 end process; P_MUX2: process(sel,a,b) begin sel if SEL = ‘0’ then y <= a; else y <= b; end if; end process; ASIC, Design and Implementation - M. Skerlj
  • 17. Tips on Conditional Statements 17 EASY TO WRITE, DIFFICULT TO VERIFY AND MAINTAIN: if cond1 then … elsif … else … end if; DIFFICULT TO WRITE, EASY TO VERIFY AND MAINTAIN: case sel is when choice_1 => … when choice_2 => … when others => … end if; ASIC, Design and Implementation - M. Skerlj
  • 18. Frequent Errors 18 if a=“00” then y0 <= ‘0’; elsif a=“11” then y0 <= ‘1’; y1 <= ‘0’; else y0 <= ‘0’; y1 <= ‘1’; end if; y1 not always assigned => INFERRED LATCH ASIC, Design and Implementation - M. Skerlj
  • 19. The Use of ‘for loops’ 19 signal a,b,y: std_ulogic_vector(7 downto 0); for I in y’range loop y(I)<= a(I) and b(I); end loop; a(7) y(7) b(7) ... a(0) y(0) b(0) ASIC, Design and Implementation - M. Skerlj
  • 20. Tips for ‘for loop’ Implementation 20 The for loop statement is supported by synthesis tools when the range bounds in the loop are globally static. When the range is not static (e.g. when one of the bounds is a signal value), the synthesis result is not a simple hardware duplication. In other words, the for loop must be un-foldable. ! Often the use of for loop can be avoided using vectors. ASIC, Design and Implementation - M. Skerlj
  • 21. Avoiding for loops 21 signal a: std_ulogic_vector(15 downto 0); P_SHIFT: process(a) begin for I in 0 to 14 loop a(I) <= a(I+1); end loop; a(15) <= a(0); end process; OR a(14 downto 0) <= a(15 downto 1); a(15) <= a(0); ASIC, Design and Implementation - M. Skerlj
  • 22. The Edge Triggered Enabled flip flop 22 process(CK,STARTL) STARTL begin if STARTL = ‘0’ then Q <= ‘0’; 0 elsif CK=‘1’ and CK’event then Q if EN = ‘1’ then 1 D Q <= D; EN end if; end if; CK end process; ASIC, Design and Implementation - M. Skerlj
  • 23. Finite State Machines 23 Only synchronous finite state machines are the only ones accepted by synthesis tools. Basics: • The automaton is always in one of its possible sates: the current state (stored in the state register). • The next state may be computed using the current state and the input values. • Output values are computed depending on either the current state or the transition between two states (Moore or Mealy). • During each clock period, the state register is updated with the previously computed state (next state) ASIC, Design and Implementation - M. Skerlj
  • 24. Moore and Mealy 24 Moore OUT IN LOGIC STATE LOGIC CK Mealy OUT IN LOGIC STATE LOGIC CK ASIC, Design and Implementation - M. Skerlj
  • 25. FSM template 25 P_NXT_STATE: process(STATE, IN) begin STATE_NXT <= … logic … end process; P_STORE: process(CK, STARTL) PRESENT ONLY begin IF MEALY if STARTL = ‘0’ then STATE <= (others => ‘0’); elsif CK’event and CK=‘1’ then STATE <= STATE_NXT; end if; end process; P_OUT: process(STATE, IN) begin OUT <= logic(STATE, IN) end process; ASIC, Design and Implementation - M. Skerlj
  • 26. One-hot vs binary coded 26 One-hot encoding sets one bit in the state register for each state. This seems wasteful (a FSM with N states requires exactly N flip-flops instead of log2N with binary encoding). One-hot encoding simplifies the logic and the interconnect between the logic resulting often in smaller and faster FSMs. Especially in FPGAs, where routing resources are limited, one-hot encoding is sometimes the best choice. ASIC, Design and Implementation - M. Skerlj
  • 27. The Metastability Phenomenon 27 Metastability may occur when the data input changes too close to the clock edges (setup or hold violation). In such cases the flip-flop cannot decide whether its output should be a ‘1’ or a ‘0’ for a long time. This situation is called an upset. This cannot occur in fully synchronous design if timing constraints were met. However it may rise the opportunity to register signals that come from the outside world (or form another clock domain). ASIC, Design and Implementation - M. Skerlj
  • 28. Metastability Theory 28 Experimentally was found that the probability of upset is: − tr τc p = T0 e where tr is the time the flip-flop has to resolve the output, T0 and τc are flip-flop constant. The Mean Time Between Upsets (MTBU) is 1 MTBU = p ⋅ f CK ⋅ f DT Therefore even if the data is changing slowly, simple oversampling is not an error-free technique. ASIC, Design and Implementation - M. Skerlj
  • 29. Input Synchronisation 29 Using two flip-flops in cascade greatly reduces the overall value of τc and T0 and as a consequence the probability of upset, p. When the first flip-flop capture an intermediate voltage level (‘X’) the flip-flop takes some time to resolve in a ‘0’ or ‘1’ level. The resolution time is usually several times longer than the clock-to-out time of the flip-flop, but less than the clock period. However the second flip-flop is always capturing stable data. The penalty is an extra clock cycle latency. ASIC, Design and Implementation - M. Skerlj
  • 30. Pipelining and Parallel Processing 30 Pipelining transformation leads to a reduction in the critical path, which can be exploited to either increase the sample speed or to reduce power consumption at same speed. Pipelining reduces the effective critical path by introducing pipelining delays along the datapath. In parallel processing, multiple outputs are computed in a clock period. Parallel processing increase the sampling rate by replicating the hardware so that several inputs can be processed a the same time. Therefore, the effective sampling speed is increased by the level of parallelism. ASIC, Design and Implementation - M. Skerlj
  • 31. Pipelining 31 The pipelining latches can only be placed across any feed-forward cutset of the graph. We can arbitrarily place latches on a feed-forward cutset without affecting the functionality of the algorithm. f.f. cutset cutset D In an M-level pipelined system, the number of delay elements in any path from input to output is (M-1) greater than that in the same path in the original system. The two main drawbacks of the pipelining are increase in the number of latches (area) and in system latency. ASIC, Design and Implementation - M. Skerlj
  • 32. Parallel Processing 32 To obtain a parallel processing system, the SISO (single input – single output) system must be converted into a MIMO (multiple input – multiple output). In a parallelized system the critical path remain the same. It is important to understand that in a parallel system the clock period Tck and the sample period TS are different. In an M-level parallelized system holds Tck=M TS ASIC, Design and Implementation - M. Skerlj
  • 33. Pipelining and Parallel Processing 33 Dualism (1) Parallel processing and pipelining techniques are duals of each other. If a computation can be pipelined, it can also be processed in parallel and vice versa. While independent sets of computation are performed in an interleaved manner in a pipelined system, they are computed in parallel processing mode by means of duplicate hardware. ASIC, Design and Implementation - M. Skerlj
  • 34. Pipelining and Parallel Processing 34 Dualism (2) y[2n] x[2n] x[n] y[n] y[2n+1] x[2n+1] ASIC, Design and Implementation - M. Skerlj
  • 35. Folding 35 It is important to minimize the silicon area of the integrated circuits, which is achieved by reducing the number of functional units, registers, multiplexers, and interconnection wires. By executing multiple algorithm operations on a single functional unit, the number of functional units in the implementation is reduced, resulting in a smaller silicon area. Folding provides a means for trading area for time in a DSP architecture. In general, folding can be used to reduce the number of hardware functional units by a factor N at the expense of increasing the computation time by a factor of N. ASIC, Design and Implementation - M. Skerlj
  • 36. Folding Example 36 b(n) c(n) a(n) y(n) + + c(n) b(n) a(n) y(n) D + ASIC, Design and Implementation - M. Skerlj
  • 37. Case Study: Frame Aligner 37 payload FAW N payload N payload Phase 2N payload FAW FAW Rotator FAW FAW payload ASIC, Design and Implementation - M. Skerlj
  • 38. Using for-loop 38 entity ROT_FOR7 is Port (PHASE : In std_ulogic_vector (6 downto 0); STACK : In std_ulogic_vector (255 downto 0); DT_OUT : Out std_ulogic_vector (127 downto 0) ); end ROT_FOR7; architecture BEHAVIORAL of ROT_FOR7 is CONSTANT N : Integer :=7; signal INT_PHASE :integer range 0 to 127; begin INT_PHASE <= conv_integer(unsigned(PHASE)); p1 : process(INT_PHASE, STACK) begin for i in 0 to (2**N-1) loop DT_OUT(i) <= STACK(i+INT_PHASE+1); end loop; end process; end BEHAVIORAL; ASIC, Design and Implementation - M. Skerlj
  • 39. Using a low level description 39 architecture BEHAVIORAL of ROT_STK7 is CONSTANT N : Integer :=7; CONSTANT DIM0 : Integer := 2**(N+1) -1; -- 255 CONSTANT DIM1 : Integer := DIM0 - 2**(N-1); -- 191 [ ... ] CONSTANT DIM7 : Integer := DIM6 - 2**(N-7); -- 128 begin p1 : process(PHASE, STACK) VARIABLE stack0 : std_ulogic_vector(DIM0-1 downto 0); [...] VARIABLE stack7 : std_ulogic_vector(DIM7-1 downto 0); begin stack0(DIM0-1 downto 0) := STACK(DIM0 downto 1); IF (PHASE(N-1) = '1') THEN stack1(DIM1-1 downto 0) := stack0(DIM0-1 downto DIM0-DIM1); ELSE stack1(DIM1-1 downto 0) := stack0(DIM1-1 downto 0); END IF; IF (PHASE(N-2) = '1') THEN stack2(DIM2-1 downto 0) := stack1(DIM1-1 downto DIM1-DIM2); ELSE stack2(DIM2-1 downto 0) := stack1(DIM2-1 downto 0); END IF; IF (PHASE(N-3) = '1') THEN stack3(DIM3-1 downto 0) := stack2(DIM2-1 downto DIM2-DIM3); ELSE stack3(DIM3-1 downto 0) := stack2(DIM3-1 downto 0); END IF; IF (PHASE(N-4) = '1') THEN stack4(DIM4-1 downto 0) := stack3(DIM3-1 downto DIM3-DIM4); ELSE stack4(DIM4-1 downto 0) := stack3(DIM4-1 downto 0); END IF; IF (PHASE(N-5) = '1') THEN stack5(DIM5-1 downto 0) := stack4(DIM4-1 downto DIM4-DIM5); ELSE stack5(DIM5-1 downto 0) := stack4(DIM5-1 downto 0); END IF; IF (PHASE(N-6) = '1') THEN stack6(DIM6-1 downto 0) := stack5(DIM5-1 downto DIM5-DIM6); ELSE stack6(DIM6-1 downto 0) := stack5(DIM6-1 downto 0); END IF; IF (PHASE(N-7) = '1') THEN stack7(DIM7-1 downto 0) := stack6(DIM6-1 downto DIM6-DIM7); ELSE stack7(DIM7-1 downto 0) := stack6(DIM7-1 downto 0); END IF; DT_OUT <= stack7; end process; ASIC, Design and Implementation - M. Skerlj
  • 40. Synthesis report: Area 40 synthesis report: area 90000 80000 70000 60000 50000 stack for 40000 bus 30000 20000 10000 0 2 3 4 5 6 7 18 71.5 185 454 1087 2487.5 stack 70.5 242.5 1249 4514 15767 88585.5 for 30.5 117.5 391.5 1432 5550 21766.5 bus ASIC, Design and Implementation - M. Skerlj
  • 41. Synthesis: CPU Time 41 synthesis report: CPU time 3:21:36 2:52:48 2:24:00 1:55:12 STACK FOR BUS 1:26:24 0:57:36 0:28:48 0:00:00 1 2 3 4 5 6 0:00:20 0:00:08 0:00:09 0:00:14 0:00:24 0:00:48 STACK 0:00:35 0:00:32 0:00:51 0:05:52 0:11:32 3:07:57 FOR 0:00:19 0:00:13 0:00:13 0:00:36 0:02:34 0:17:03 BUS ASIC, Design and Implementation - M. Skerlj
  • 42. Functional Verification 42 start p r e layout design entry sim u lation (1) (4) logic synthesis (2) system p a r titioning (3) postlayout floor- sim u lation planning (9) (5) placem e n t (6) circuit routing extraction (7) (8) end ASIC, Design and Implementation - M. Skerlj
  • 43. Pre- and Post Layout Simulation 43 ASIC, Design and Implementation - M. Skerlj
  • 44. Logic Synthesis 44 start prelayout design entry simulation (1) (4) logic synthesis (2) system partitioning (3) postlayout floor- simulation planning (9) (5) placement (6) circuit routing extraction (7) (8) end ASIC, Design and Implementation - M. Skerlj
  • 45. RTL Block Synthesis 45 Rewrite Write RTL HDL Code N Simulate OK? Y Y Synthesize Major N Constraints & Attributes HDL Code Violations? Area & Timing Goals To Gates Met N Analysis Constraints? Y ASIC, Design and Implementation - M. Skerlj
  • 46. Technology Library 46 Cell Name cell ( AND2_3 ) { area : 8.000 ; Cell Area pin ( Y ) { direction : output; timing ( ) { related_pin : quot;Aquot; ; t timing_sense : positive_unate ; rise_propagation (drive_3_table_1) { Y=A+B values (quot;0.2616, 0.2608, 0.2831,..) } rise_transition (drive_3_table_2) { values (quot;0.0223, 0.0254, ...) .... } Nominal Delays function : quot;(A & B)quot;; max_capacitance : 1.14810 ; Cell Functionality min_capacitance : 0.00220 ; } pin ( A ) { Design Rules for direction : input; Output Pin capacitance : 0.012000; } Electrical Characteristics of .... Input Pins ASIC, Design and Implementation - M. Skerlj
  • 47. Wire-load Model 47 With the shrinking of process geometries, the delays incurred by the switching of transistors become smaller. On the other hand, delays due to physical characteristics (R, C) connecting the transistors become larger. Logical synthesis tools do not take into consideration “physical” information like placement when optimizing the design. Further the wire load models specified in the technology library are based on statistical estimations. In-accuracies in wire-load models and the actual placement and routing can lead to synthesized designs which are un-routable or don’t meet timing requirements after routing. ASIC, Design and Implementation - M. Skerlj
  • 48. Post layout timing analysis (FPGA) 48 ASIC, Design and Implementation - M. Skerlj
  • 49. Timing Analysis 49 start prelayout design entry simulation (1) (4) logic synthesis (2) system partitioning (3) postlayout floor- simulation planning (9) (5) placement (6) circuit routing extraction (7) (8) end ASIC, Design and Implementation - M. Skerlj
  • 50. Timing Goals: Synchronous Designs 50 Synchronous Designs: • Data arrives from a clocked device • Data goes to a clocked device • Objective: • Define the timing constraints for all paths within a design: • all input logic paths • • the internal (register to register) paths, and • all output paths ASIC, Design and Implementation - M. Skerlj
  • 51. Constraining the Input Paths 51 TO_BE_SYNTHESIZED External Logic Launch edge M N A triggers D Q D Q data Clk Next edge Clk captures data TSETUP TClk-q TM TN Clk Valid new data A (TClk-q + TM) (TN + TSETUP) (Input Delay) ASIC, Design and Implementation - M. Skerlj
  • 52. Constraining Output Paths of a 52 Design External Logic External TO_BE_SYNTHESIZED U3 Launches Flip-Flop Data U3 B T S captures D Q D Q data Clk Ts TT TSETUP TClk-q Launch Edge Capture Edge Clk Valid new data B TClk-q + TS TT + TSETUP (Output Delay) ASIC, Design and Implementation - M. Skerlj
  • 53. Static Timing Analysis 53 Static Timing Analysis can determine if a circuit meets timing constraints • without dynamic simulation This involves three main steps: • Design is broken down into sets of timing paths • The delay of each path is calculated • All path delays are checked to see if timing constraints have been met • Path 2 Path 1 A D Q Z CLK Path 3 ASIC, Design and Implementation - M. Skerlj
  • 54. Calculating a Path Delay 54 To obtain the path delay you have to add all the net and cell timing arcs along the path. 0.54 0.66 1.0 0.43 D1 0.32 0.23 U33 0.25 path_delay = (1.0 + 0.54 + 0.32 + 0.66 + 0.23 + 0.43 + 0.25) = 3.43 ns ASIC, Design and Implementation - M. Skerlj
  • 55. Post synthesis timing (FPGA) 55 ASIC, Design and Implementation - M. Skerlj
  • 56. Test for Manufacturing Defects 56 The manufacturing test is created to detect manufacturing defects and • reject those parts before shipment Debug manufacturing process • Improve process yield • ASIC, Design and Implementation - M. Skerlj
  • 57. The importance of Test 57 Cost Operation description $1 to fix an IC (throw it away) $10 to find and replace a bad IC on a board $100 to find a bad board in a system $1000 to find a bad component in a fielded system ASIC, Design and Implementation - M. Skerlj
  • 58. Test Case Study 58 ASIC defect Defective Total PCB Defective Total repair cost level ASICs repair cost boards at a system level 5% 5000 $1million 500 $5million 1% 1000 $200,000 100 $1milion 0.1% 100 $20,000 10 $100,000 0.01% 10 $2,000 1 $10,000 Assumptions • the number of part shipped is 100,000; • part price is $10; • total part cost is $1million; • the cost of a fault in an assembled PCB is $200; • system cost is $5000; •the cost of repairing or replacing a system due to failure is $10,000. ASIC, Design and Implementation - M. Skerlj
  • 59. Manufacturing Defects 59 Electrical Effects Physical Defects Shorts (Bridging Faults) Silicon Defects l l l Opens l Photolithography Defects l Transistor Stuck On/Open l Mask Contamination l Resistive Short/Open l Process Variations l Changes in Threshold Voltage l Defective Oxide Logical Effects Logic Stuck-at-0/1 l l Slower Transitions (Delay Fault) l AND-bridging, OR-bridging ASIC, Design and Implementation - M. Skerlj
  • 60. Fault models 60 Logical fault Fault Physical fault Degradation Open-circuit Short-circuit level fault fault fault Chip Leakage or short between package leads * * Broken, misaligned, or poor wire bonding * Surface contamination * Metal migration, stress, peeling * * Metallization (open/short) * * Gate Contact opens * Gate to S/D junction short * * Field-oxide parasitic device * * Gate-oxide imperfection, spiking * * Mask misalignement * * ASIC, Design and Implementation - M. Skerlj
  • 61. How is Manufacturing Test 61 Performed? Automatic Test Equipment (ATE) applies input stimulus to the Device Under Test • (DUT) and measures the output response Outputs Inputs DUT If the ATE observes a response different from the expected response, the DUT fails • manufacturing test The process of generating the input stimulus and corresponding output response is • known as Test Generation ASIC, Design and Implementation - M. Skerlj
  • 62. ATE 62 ASIC, Design and Implementation - M. Skerlj
  • 63. Stuck-at Fault Model 63 The single stuck-at fault (SSF) model assumes that there is just one fault in the logic we are testing. We use a SSF model because a multiple stuck-at fault model is too complicated to implement. In the SSF model we further assume that the effect of the physical fault is to create only two kinds of logical fault (SA1 and SA0). The place where we inject faults is called the fault origin (net/input/output faults). When a fault changes the circuit behaviour, the change is called the fault effect. Fault effects travel through the circuit to other logic cells causing other fault effects (fault propagation). ASIC, Design and Implementation - M. Skerlj
  • 64. Single “Stuck-at” Fault Model: 64 Example Model manufacturing defects with a “Stuck-at” Fault SA0 ASIC, Design and Implementation - M. Skerlj
  • 65. Controllability 65 Ability to set internal nodes to a specific value 1/0 0 ASIC, Design and Implementation - M. Skerlj
  • 66. Observability 66 Ability to propagate the fault effect from an internal node to a primary output port 1 1/0 1/0 0/1 0 1 1 - ASIC, Design and Implementation - M. Skerlj
  • 67. Fault collapsing 67 Stuck-at faults attached to different points may produce identical fault effects. Using fault collapsing we can group these equivalent faults into a fault- equivalent class (representative fault). If any of the test that detect a fault B also detects fault A, but only some of the the test for fault A also detect fault B, we say that A is a dominant fault (some texts uses the opposite definition). To reduce the number of tests we will pick the test for the dominated fault B (dominant fault collapsing). Example: output SA0 for a two-input NAND dominates either input SA1 faults. ASIC, Design and Implementation - M. Skerlj
  • 68. Fault Simulation and Fault Coverage 68 We use fault simulation to see what happens in a design when deliberately introduce faults. In a production test we only have access to the package pins: primary inputs/outputs (PI/PO). To test an ASIC we must devise a series of sets of input patterns that will detect any faults. If the simulation shows that th POs of the faulty circuit are different than the PIs of the good circuit at any strobe time, then we have a detected fault; otherwise we have an undetected fault. At the end of the simulation we can find the fault coverage detected faults fault coverage = detectable faults ASIC, Design and Implementation - M. Skerlj
  • 69. Fault Coverage and Defect Coverage 69 Fault Coverage Average defect level Average Quality Level (AQL) 50% 7% 93% 90% 3% 97% 95% 1% 99% 99% 0.1% 99.9% 99.9% 0.01% 99.99% These results are experimental and they are the only justification for our assumptions in adopting the SSF model. ASIC, Design and Implementation - M. Skerlj
  • 70. Quiescent Leakage Current 70 A CMOS transistor in never completely off because of subthreshold and leakage current. • Subthreshold current: VGS = 0 but trough the transistor a current of few pA/µm is flowing. • Leakage current: The sources and drains of every transistor and the junctions between the wells and substrate form parasitic diodes. Reverse-biased diodes conducts a very small leakage current. The quiescent leakage current (IDDQ) is the current measured when we test an ASIC with no signal activity and must have the same order of magnitude than the sum of the subthreshold and leakage current. A measurement of more current than this in a non-active CMOS ASIC indicates a problem with the chip manufacture (or the design). ASIC, Design and Implementation - M. Skerlj
  • 71. Measuring the IDDQ Externally 71 ♦ With specific ATE (Automatic Test Equipment) • no dedicated circuits on chip; • no impact on chip performance; • external ad-hoc ATPG; • time consuming. ASIC, Design and Implementation - M. Skerlj
  • 72. Measuring the IDDQ on Chip 72 ♦ With a current sensor (BICM) • dedicated circuitry; • internal ATPG or scan to lead the device in the quiescent mode; • impact on chip due to voltage drop over the BICM; Vdd Idd BICM In Out CUT Vss ASIC, Design and Implementation - M. Skerlj
  • 73. IDDQ Test 73 • The IDDQ test reveals shorts but not opens; • A 100% coverage may be expensive; • Multiple samples of the current are necessary for a meaning test. • Quiescent IDD depends from the design but also mainly from process and package; ASIC, Design and Implementation - M. Skerlj
  • 74. Testing a Multistage, Pipelined 74 Design Need to observe results at the Test for SA0 fault here output of the design. 1 0 0 1 Need to set input pins to specific values so that nets within pipeline can be set to values which test for a fault Each fault tested requires a predictive means for both controlling the input and observing the results downstream from the fault. ASIC, Design and Implementation - M. Skerlj
  • 75. Scan Chains 75 Gains: l Scan chain initializes nets within the design (adds controllability); l Scan chain captures results from within the design (adds observability). Paid price: l Inserting a scan chain involves replacing all Flip-Flops with scannable Flip-Flops; l Scan FF will affect the circuit timing and area. ASIC, Design and Implementation - M. Skerlj
  • 76. Inaccuracy Due to Scan Replacements 76 Larger area than non-scan registers; Additional fanout and capacitive loading TI Larger setup time 1 1 TI requirement DO DI 0 0 DI TE CLK CLK ASIC, Design and Implementation - M. Skerlj
  • 77. Testability Violation: Example 77 D N Q SI SE SE What would happen if, during test, a ‘1’ is shifted into the FF? We would never be able to “clock” the Flip-Flop! Therefore, the FF cannot be allowed to be part of a scan chain. Logic in the net ‘N’ cannot be tested. The above circuit l violates good ‘DFT’ practices; l reduces the fault coverage. ASIC, Design and Implementation - M. Skerlj
  • 78. Synthesizing for Test Summary 78 Test is a design methodology: it has its own testability • design rules. Most problems associated with test can be anticipated and • corrected in advance, during the initial compile of the HDL code. ASIC, Design and Implementation - M. Skerlj
  • 79. Built-in Self-test 79 Built-in Self-test (BIST) is a set of structured-test techniques for combinatorial and sequential logic, memories, etc. The working principle is to generate test vectors, apply them to the circuit under test (CUT) and then check the response. In order to produce long test vectors linear feedback shift register (LFSR) are used. By correctly choosing the points at which we take the feedback form an n-bit SR we can produce a pseudo random binary sequence (PRBS) of a maximal length (2n-1). CK CK CK ASIC, Design and Implementation - M. Skerlj
  • 80. Signature Analysis 80 Q1 Q2 Q0 IN CK CK CK If we apply a binary input sequence to IN, the shift register will perform data compression on the input sequence. At the end of the input sequence the shift-register contents, Q0Q1Q2, will form a pattern called signature. If the input sequence and the serial-input signature register are long enough, it is unlikely that two different input sequences will produce the same signature. If the input sequence comes form logic under test, a fault in the logic will cause the input sequence to change. This causes the signature to change from a known value and we conclude that the CUT is bad. ASIC, Design and Implementation - M. Skerlj
  • 81. The IEEE 1149.1 Standard 81 In 1985 a group of European manufacturers formed the Joint European Test Action Group, later renamed in JTAG (1986). The JTAG 2.0 test standard formed the basis of the IEEE Standard 1149.1 Test Port and Boundary-Scan Architecture (1990). Boundary-Scan test (BST) is a method for testing boards using a four-wire interface (with a fifth optional master reset signal). The BST standard was designed to test boards , but it’s also useful to test ASICs. We can automatically generate test vectors for combinational logic, but ATPG (Automatic Test Pattern Generation) is much harder to sequential logic. In full scan design we replace every sequential element with a scan flip-flop. The result is an internal form of boundary scan and we can use the IEEE 1149.1 TAP to access an internal scan chain. ASIC, Design and Implementation - M. Skerlj
  • 82. Boundary Scan Chain 82 Each IO pin is replaced with a multi-purpose element called Boundary Scan cell. scan out scan in PINs CORE BS cell ASIC, Design and Implementation - M. Skerlj
  • 83. The BS Architecture 83 TDI TCK TMSTRST TDO TAP CONTROLLER MUX INSTRUCTION REGISTERS TEST DATA REGISTERS CORE ASIC, Design and Implementation - M. Skerlj
  • 84. The BS Cell 84 SERIAL OUT DATAIN DATAOUT D Q D Q CK CK SERIALIN MODE SHIFT/LOAD CLOCK UPDATE ASIC, Design and Implementation - M. Skerlj
  • 85. BISR: Increasing the Process Yield 85 Increasing size, density and complexity in memory technologies lead to higher defect density and, consequently, a decrease in process yield. A cost- and time-effective solution is built-in self-repair (BISR). It consists of replacing, on silicon, the defective memory columns by spare columns available next to the functional memory. BISR is implemented at the column, row, block or bit level. Using non- volatile blocks to store the memory reconfiguration improves the memory production yield. ASIC, Design and Implementation - M. Skerlj
  • 86. BISR: Increasing Reliability 86 Reliability aspect is also considered by chip manufacturers. High memory size and high-end memory technologies often lead to an increasing number of defects that happen during the product life. BISR solutions allow the memory to be tested in the filed and the defective memory blocks to be replaced by redundant blocks that are not defective. If the memory contains critical contents, transparent BISR allows defective blocks to be tested and replaced without losing the original memory content. ASIC, Design and Implementation - M. Skerlj
  • 87. Layout (ASICs) 87 Placement • Clock Tree Synthesis • Routing • Netlist Optimisation • Physical Analysis • Cross Talk • Signal Integrity • Electro Migration • IR Drop • ASIC, Design and Implementation - M. Skerlj
  • 88. Layout & Floorplan (FPGAs) 88 ASIC, Design and Implementation - M. Skerlj