3/03/2014

Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014 | Semicon

    Sáng chủ nhật lúc 09:30 ngày 02/03/2014 tại Trung Tâm Đào Tạo Thiết Kế Vi Mạch SEMICON đã tổ chức Buổi lễ Tổng Kế trao bằng cho các Bạn Học Viên lớp Sơ Cấp và Trung Cấp "Thiết Kế Vi Mạch" cho các học viên tại semicon trong khóa học quý III và IV năm 2013.

SEMICON chúc các bạn học viên thành công và có việc làm như mong muốn. Chính các bạn là "Chìa Khóa" thành công trong ngành "Thiết Kế Vi Mạch" tại Việt Nam. Congratulations!

Danh sách nhận bằng:


Lớp Trung Cấp:


Giáp Phạm Hoàng Liêm, Mai Minh Thái (Hutech), Trần Viết Quang, Hồ Thanh Tuyền, Nguyễn Anh Tuấn ( ĐH Sư Phạm Kỹ Thuật), Phạm Đức An( ĐH Sư Phạm Kỹ Thuật) , Nguyễn Thanh Tùng, Võ Thành Long.

Lớp Sơ Cấp:


Trần Đại Thắng, Nguyễn Đức Thịnh, Trần Hoàng Thương, Nguyễn Lê Nhật Minh, Dương Quang Triết, Lê Khắc Hoàng Lập, Mai Trí Thọ, Nguyễn Việt Hưng, Nguyễn Thanh Khoa ( ĐH Quốc Tế), Trương Trung Nguyên, Trần Vĩnh Lộc, Đàm Xuân Ngọc, Lê Văn Dương, Phạm Hoàng Thế.


Kỹ Sư trong các công ty Chip


1. Nguyễn Đức Thịnh:


Tham gia khóa học Sơ Cấp Vi Mạch, là kỹ sư về Embedded System Programmer của Pelagic - Mỹ tại Etown 2


2. Trương Trung Nguyên: ( ĐH Bách Khoa HCM - Điện-Điện Tử)


Tham gia Khóa học Sơ Cấp Vi Mạch, là kỹ sư mới làm việc tại Renesas - Nhật - KCX Tân Thuận


3. Lê Văn Dương: 


Tham gia Khóa học Sơ Cấp Vi Mạch, là kỹ sư mới làm việc tại Renesas - Nhật - KCX Tân Thuận


4. Lê Khắc Hoàng Lập: (ĐH Quốc Tế - Điện Tử Viễn Thông)


Tham gia Khóa học Sơ Cấp Vi Mạch, là kỹ sư mới làm việc tại Renesas - Nhật - KCX Tân Thuận


5. Nguyễn Anh Tuấn: (ĐH Sư Phạm KỹThuật, Điện-Điện Tử)


Tham gia Khóa học Sơ Cấp + Trung Cấp Vi Mạch, là kỹ sư mới làm việc tại Renesas - Nhật - KCX Tân Thuậm

6. Phạm Đức An: (ĐH Sư Phạm Kỹ Thuật, Điện -Điện Tử)

Tham gia Khóa học Sơ Cấp + Trung Cấp Vi Mạch, là kỹ sư hiện đang làm việc tại Arrive - Etown 2


v.v.v... và một số bạn làm tại Uniquify,..


Semicon
cảm ơn những ý kiến chân thành từ các bạn. Semicon chúc các bạn thành công trong cuộc sống vào cùng nhau phát triển Công Nghệ Vi Mạch - Thiết Kế Vi Mạch tại Việt Nam.


Hình ảnh Buổi Tổng kết:

Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014
Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014

Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014

Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014
Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014
Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014
Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014
Tổng Kết Khóa Học Thiết Kế Vi Mạch 02/03/2014

Semiconvn.com







Khai Giảng Khóa Học Sơ Cấp Thiết Kế Vi Mạch Số | Semicon

★★ Hình ảnh Buổi Khai Giảng khóa Học Sơ Cấp "Thiết Kế Vi Mạch - Thiết Kế Chip" ngày 28/02/2014 tại Trung Tâm Đào Tạo Thiết Kế Vi Mạch SEMICON

ELEMENTARY IC DESGIN COURSE ON | SEMICON

>> Lớp tối 2,4,6 thứ 6 ngày 07/03/2014 sẽ chính thức học buổi đầu tiên . Các bạn nào muốn đăng ký học thì vào website của Semicon đăng ký học nha.

Website: http://www.semiconvn.com/
FanPage: Trung Tâm Đào Tạo Vi Mạch Semicon
                   Hội Những Người Mê Công Nghệ Vi Mạch






semiconvn.com

1/11/2014

Digital Integrated Circuit Design

1. Full Custom Design Flow

A full custom design flow starts a level lower than that required for semi-custom with the creation of a library of cells. These can then be combined together to build up the complete design. As in a semi-custom process each cell must have a transistor level circuit, an internal mask level layout, a functional model for simulation and an abstract outline for placement and routing. The designer must provide all of these as detailed below.

1.1    Cell Design

Cells can be designed in a number of ways. By far the most specialised method is to employ a graphics editor to create and combine a series of polygons. These represent the individual masks that make up the constituent components of the required transistor circuit. A detailed knowledge of mask level geometry is required together with an understanding of process design rules so that correctly defined components can be constructed and manufactured. The following example details a transistor circuit for a CMOS inverter together with its associated mask level layout.

 Figure 1.1 Cell Design



A modern CMOS process can have upwards of a dozen masks to define the complete design. Each will be used to pattern various device elements and their associated interconnect. The main masks required are detailed in the layout above and are listed and described below.

MASK DESCRIPTION
Nwell An area of the p-type substrate that will be diffused with n-type impurity to construct the pmos device. 
Active Area The areas in the nwell and substrate where the pmos and nmos transistors respectively will be patterned.
P Diffusion The p-type diffusion for the pmos device. Also a ground connection from the gndvss power rail to the substrate.
Polysilicon The transistor channels. Whenever polysilicon crosses an active area a transistor is formed, with source and drain areas either side of the channel and the polysilicon forming the gate connections.
Metal 1 The lower level metal interconnect.
Metal 2 The upper level metal interconnect.
Contact Metal 1 to diffusion/polysilicon connection.
Via Metal 1 to metal 2 connection.


An alternative method of defining the cell layout information is to use a Layout Synthesiser. Here the mask data is now automatically generated from the circuit schematic. The Cadence design system provides this facility. Typically in a full custom topology, cells will be arranged in rows. If all cells have the same height but variable widths they can be horizontally butted and power supply rails can then be tracked straight along the rows. In order to accomplish this a layout synthesiser can compact the cells to a predetermined height. This is also more area efficient. The diagram below shows a layout for the CMOS inverter circuit generated and compacted by a layout synthesiser.

Figure 1.2 CMOS Inverter Circuit


1.2    Cell Verification

In order to verify correct functionality for each cell a circuit simulator such as SPICE/Spectre will be employed. The designer will be required to specify appropriate signal and power supply sources to test the cell in all its operating modes. The following diagrams illustrate a test circuit for the CMOS inverter together with obtained simulation results.

Figure 1.3 Cell Verification


The circuit is powered by a voltage source V1 set at 5 volts to equal the power supply of the chip.

A pulse is applied by voltage source V0 set to swing between 0 volts and 5 volts with rise and fall times equal to 1 picosecond.

The gnd  ground connection provides SPICE with a path down to 0 volts.

Components specified purely for testing, like the voltage sources, will need to be removed before the cell layout is defined.

Alternatively these components can be specified in an accompanying stimulus file.

Figure 1.4 Cell Verification


The simulation results enable two important characteristics to be determined for use by the logic simulator.

1) The functionality of the cell. This will be used to define an appropriate logic expression in the functional model.

2) The switching times of the cell measured on the edges of the output waveform. These will be used to define the rise and fall times in the functional model.

1.3    Cell Functional Model

When cells are combined to form the complete design it becomes impractical to simulate this at the circuit level. Simulators such as SPICE cannot handle the resulting complexity and will fail to produce a result. If the design is digital we can construct a functional model for each cell and utilise a gate level logic simulator, such as Verilog, to simulate the assembled design. This is exactly what happens in a semi-custom process except that these functional models have already been provided by the silicon foundry designers. The following text details a typical Verilog functional model for the CMOS inverter.

     `timescale 1ps / 1ps
     `define min_typ_max (0.26:0.5:1.34)

     module inverter (A, NOTA);

     output NOTA;
     input A;

     specify
     (A*>NOTA) = (`min_typ_max*1600, `min_typ_max*1700);
     endspecify
     assign NOTA = !A;
     endmodule

The `timescale statement defines the time units to be picoseconds.

The `define statement defines a variable array min_typ_max representing scaling factors to be applied to rise and fall times for minimum, typical and maximum operating conditions.

The specify statement defines rise and fall times from input A to output NOTA (1600ps and 1700ps respectively) and computes the overall values for minimum, typical and maximum operating conditions.

The assign statement provides the required logic expression ( ! indicating the invert function).


1.4    Cell Abstract

The cell abstract is generated from the cell layout. It consists only of a cell outline with contact points for the power supply connections and the cell inputs and outputs.

Figure 1.5 Cell Abstract

Here we see the cell abstract representing the CMOS inverter layout.

The abstract has been automatically dimensioned to match the height of the other cells in the design.

Contact points for the power and ground rails (pwrvdd! and gndvss! respectively) have been assigned at the top and bottom of the cell. This allows continuous routing along a cell row.

Contact points for the input and output signals (A and NOTA respectively) have been assigned both on the top and bottom edges of the cell. This allows the router to make input and output connections from routing channels either above or below the cell, whichever is the most convenient.

1.5    Design Layout and Verification

The layout strategy employed depends on whether the design is completely full custom or largely standard cell with some full custom components.

In a full custom design flow we will need to utilise a layout editor to manually place and route the cell abstracts in an appropriate topology. Typically this will comprise a number of cell rows separated by routing channels. Cells will be placed along the rows and the interconnect tracked along the routing channels. During this process two types of error can be introduced. The first is a violation of the process design rules, for example placing metal tracks too close together. These errors are identified by running the design through a Design Rule Checker (DRC) which can highlight any violations on the layout. The second is an incorrect connection of cells. These are identified by running the design through a Layout Versus Schematic (LVS) checker. This compares the connectivity of components on the schematic with those on the layout and lists any differences.

In a standard cell design flow we can choose a manual or automatic layout or a mix of both. An entirely automatic layout would treat the full custom cells the same as the standard cells and place and route in the normal way. If required we can place and route the full custom cells separately (as is also possible for any standard cell requiring special treatment) and then complete the layout automatically. Alternatively the entire layout can be implemented manually but this is not common. If there has been any manual intervention in the layout process it is essential that both a DRC and LVS are performed to check for errors.

3.3    Complex Gates A library of full custom cells will always comprise the basic primitive functions  NOT, AND, NAND, OR and NOR. Additionally there will also need to be some more complex functions such as AND/OR, OR/AND, Multiplexor, Comparator elements etc. These can be assembled using the primitive cells but a more area/speed efficient implementation is achieved by designing these as Complex Gates.

 2. Complex Gate

 2.1    Complex Gate Structures

The following examples illustrate a variety of possible implementations for the function  F = a' b' + c' d' 1)    NMOS Primitive Gates

Figure 1.6 Complex Gate Structures


Using standard component library cells in NMOS 5V technology with  Zpull-up/Zpull-down > 4/1

Each NOT gate requires 5 transistors (4 x depletion pull-up and 1 x  enhancement pull-down).

Each AND gate comprises a NAND gate followed by a  NOT gate and requires 15 transistors. The NAND gate needs 10 transistors (8 x depletion pull-up + 2 x enhancement pull-down)  and the NOT gate needs 5 transistors again.

The OR gate comprises a NOR gate followed by a NOT gate and requires 11 transistors.  The NOR gate needs 6 transistors (4 x depletion pull-up and 2 x enhancement pull-down) and the NOT gate needs 5 transistors again.

The total number of transistors to implement the function is:   4 x NOT gates @ 5 transistors + 2 x AND gates @ 15 transistors + 1 x OR gate @ 11 transistors = 20 + 30 + 11 = 61 transistors.

2)    CMOS Primitive Gates

Using this technology we can assume that p-type and n-type transistors are of equal size.

Each NOT gate requires the area of 2 transistors.
Each AND gate requires the area of 6 transistors (4 for the NAND function and 2 for the NOT function).
The OR gate requires the area of 6 transistors (4 for the NOR function and 2 for the NOT function).

The total number of transistors to implement the function is:   4 x NOT gates @ 2 transistors + 2 x AND gates @ 6 transistors + 1 x OR gate @ 6 transistors = 8 + 12 + 6 = 26 transistors.

3)    NMOS Complex Gates

Start from the standpoint that any NMOS function has a built-in inversion.  So either focus on constructing the inverse function (F') from the outset or accept that a NOT gate will be required to derive the output.

Figure 1.7 NMOS Complex Gates


The inverse function is:        F' = (a' b' + c' d')'

Using DeMorgan's law       F'  =  (a' b')'. (c' d')'

Using DeMorgan again      F'  =  (a + b) . (c + d)

[DeMorgan's law states that an inverse logic expression can be obtained by inverting each of the terms in the expression and changing all the AND terms to OR and all the OR terms to AND].

Figure 1.8 NMOS Complex Gates


The total number of transistors required =  8 x depletion pull-up and 4 x enhancement pull-down = 12 transistors

It will be considerably faster than the designs based on standard library cells.

4)    CMOS Complex Gates

One way of constructing a CMOS complex gate is to use the inverse function ( F')  to form the pull-down element and the true function (F) to form the pull-up element.

Figure 1.9 CMOS Complex Gates

Therefore in our example:

The pull-up section implements the function          F = a' b' + c' d'
The pull-down section implements the function     F' = (a + b) . (c + d)

Figure 1.10 NMOS Complex Gates

Assuming  p-type and n-type transistors are of equal size the total area required =  8 transistors.

This design would be slightly faster than the one in NMOS.

Summary
A design in NMOS using simple gates drawn from component libraries would require the area taken up by 61 transistors.  Using a different technology, CMOS, the same design would be accomplished using 26 transistors. By employing complex gates and NMOS the design can be implemented with 12 transistors and would be considerably faster.  Using complex gates and CMOS requires just 8 transistors and the design would be slightly faster again.

2.2    Complex Gate Design

The following methodology is suitable for the design of complex gates.

Example - Implement and optimise the following function:   Z = [A B + C(A + B)]'

The optimum implementation will involve CMOS.

The equation for the inverse function forming the pull-down section is Z' = [A B + C(A + B)]'

This equation needs to be manipulated to obtain the inverse function for the pull-up section.

Z  =  (A.B + C(A + B))'                             by DeMorgan
    =  (A.B)' . (C(A + B))'                           by DeMorgan
    =  (A.B)' . (C' + (A + B)')                      by DeMorgan
    =  (A' + B') . (C' + (A'.B')                      simply expanding the equation
    =  A'.C' + A'.B' + B'.C' + A'.B'              removing the repeated expression
    =  A'.C' + A'.B' + B'.C'
Z  =  A'.B' + C'. (A' + B')    

Figure 1.11 Complex Gate Design

Note: In this particular example the pull-up section and the pull-down section are identical in structure.  This, however, is unusual.

2.3    Complex Gate Optimisation

As we have seen, complex gate structures utilise the lowest number of transistors so are inherently efficient in area and switching speed. Careful design, however, can ensure that these parameters are optimised.

Optimised area is obtained by ensuring that the transistor channel widths (W) and lengths (L) are set to the minimum dimension of the fabrication process. These are referred to as Minimum Feature Size devices. For example, in a 0.8 micron process each transistor would have W = L ~ 0.8 micron. This has implications, however, both on the relative switching times and drive capability of the gate. With minimum feature size devices we would expect to have rise times longer than fall times due to the difference in mobility between holes and electrons exhibiting unequal resistance in the p-type and n-type sections. We can compensate for this by increasing the width of the PMOS devices but this takes more area. Likewise with drive strengths. The gate will sink a logic 0 through a lower resistance n-type section better than it will source a logic 1 via a higher resistance p-type section. We can compensate for this with larger PMOS devices but again this requires more area. Typically unless there are specific requirements for equal switching speeds and drive strengths device sizes will be kept to a minimum.

Optimised speed is obtained by:
  •     Minimising the paths between the gate output and supply rails, Vdd(Power) and Vss (Ground).
  •     Minimising output capacitance.
  •     Organising the circuit such that the transistors that are activated later are closest to the gate output.

Taking the example design.
The first design rule is satisfied, there are only two gates between the output and each rail.
An improvement can be made to satisfy the second design rule. The layout should be organised slightly differently to minimise the number of gates connected to the output and so ensure that the output capacitance is a minimum as shown below.

Figure 1.12 Complex Gate Design

3.    Pass Transistor Networks

An alternative approach to the standard logic design techniques so far discussed is to think of a digital circuit as a network of series and parallel switches. In this kind of topology we have some input variables controlling the switches, others as data inputs to the network and transistors utilised as the switches. These transistors are referred to as Pass Transistors since they pass data from input to output. The circuits to be considered utilise n-type devices in an NMOS process.

The following truth table defines a pass transistor network for a 2 out of 3 majority function.

ABC     F     The output is a logic 1 whenever two or more inputs are a logic 1
000     0       The required logic equation is :-
001     0       F = AB + BC + AC
010     0
011     1
100     0
101     1
110     1
111     1


The resulting pass transistor implementation is shown below.

Figure 1.13 Pass Transistor Networks



The variables A and B are used as control variables whilst logic 1, C and logic 0 implement the data lines. Thus when A=B=0 for example the two transistors in the top branch of the network are activated and the input (logic 0) is passed to the output.

The design of pass transistor networks requires a re-arrangement of logic expressions into a more suitable form. Shannon's Theorem provides the required manipulation.


3.1    Shannon's Theorem

The theorem states that any logic expression can be expanded into two terms, the first with a particular variable set to 1, and multiplied by that variable, and the second with it set to 0, and multiplied by the inverse of that variable.  By repeating Shannon's theorem with each of the variables involved in the expression,  the fullest reduction can be achieved. The method lends itself to automation.  It is particularly useful in multiplexor and pass transistor circuit design.

Shannon's theorem is stated in a generalised form like this:

A function of many variables,  f(a0, a1, a2, ..., ai, ..., an)  can be written as the sum of two terms, one with a particular variable (say ai) set to 0, and one with it set to 1.

         f(a0, a1, a2, ..., ai, ..., an) = ai'  f(a0, a1, a2, ..., 0, ..., an) + ai  f(a0, a1, a2, ..., 1, ..., an)

Example

Let's say the function f(a,b,c,d) is defined as         f(a,b,c,d) = a b d + a' c
When a is zero,   fa=0 = 0 b d + 1 c   =  c
When a is one,    fa=1 = 1 b d +  0 c = bd
Now using Shannon,    f(a,b,c,d)  =   a'fa=0  +  afa=1   =   a'  (c)  + a  (b d)
Shannon can be generalised for more than one control variable.

Example using two control variables

Starting with the same function   f(a,b,c,d) = a b d + a' c
f = a' b' fa=0&b=0 + a' b fa=0&b=1 + a b' fa=1&b=0 + a b fa=1&b=1
   =  a' b' (c) + a' b (c) + a b' (0) + a b (d)
 
Example using three control variables


Starting with the same function   f(a,b,c,d) = a b d + a' c
f = a' b' c' fa=0&b=0&c=0   +   a' b' c fa=0&b=0&c=1   +   a' b c' fa=0&b=1&c=0   +   a' b c fa=0&b=1&c=1 +   a b' c' fa=1&b=0&c=0 +    a b' c fa=1&b=0&c=1   +   a b c' fa=1&b=1&c=0   +   a b c fa=1&b=1&c=1
        = a' b' c' (0) + a' b' c (1) + a' b c' (0) + a' b c (1) + a b' c' (0) + a b' c (0) + a b c' (d) + a b c (d)


3.2    Pass Transistor Design

Shannon's theorem will be applied using n-1 variables as controls and three data lines namely 1, 0 and the remaining nth variable.   Let the control signals flow vertically and the data flow horizontally.

Place n-type transistors at the intersections to satisfy the expanded Shannon function.
Remove pairs of transistors where they cancel one another out.

Example

f(a,b,c,d) = a b d + a' c
                 = a' b' c' (0) + a' b' c (1) + a' b c' (0) + a' b c (1) + a b' c' (0) + a b' c (0) + a b c' (d) + a b c (d)
Figure 1.14 Pass Transistor Design

Figure 1.15 Pass Transistor Design

The construction of a pass transistor network must be such that one and only one branch is active at any given time. If more than one branch is active the output can be connected to different logic levels thereby resulting in a corrupted output. Having none of the branches active renders the output of the network high impedance and therefore open circuit to any load it is driving.

4. Universal Logic Modules

Components that can implement a varied set of logic functions from a single structure are known as Universal Logic Modules (ULM). They are particularly useful in Programmable Logic Device (PLD) architectures where an array of identical logic cells is replicated across the chip with each cell programmable for a range of required functions. Pass transistor networks are ideally suited to these type of applications since they can provide standard structures with variable functionality determined by the choice of control and data variables.

Consider the Shannon expansion for a two variable function.

F =  f(a,b)
    =  a' f(0,b) + a f(1,b)
    =  a' f0   +   a f1

So when a=0,  F = f0   and    when a=1,  F =  f1.

By setting f0and f1 to different combinations of logic 0, b and logic 1 we can obtain a variety of logic expressions as shown below.
For example,  by setting f0 = 0 and f1 = b the logic expression for the output  becomes the AND function F = a'.0 + a.b = a.b

Figure 1.16 Universal Logic Modules


The function can also be written to use both 'a' and 'b' as the control variables and four binary constants G0 to G3 as the data variables.

 F = f(a,b)
    = a'b'G0 + a'bG1 + ab'G2 + abG3

This provides a more flexible, programmble implementation as shown below:

Figure 1.17 Universal Logic Modules


So when G0 = G1 = G2 = 0 and  G3 =1 all combinations of a and b set F = 0 except a = b =1 which sets F = 1, the AND function.

5.    Dynamic Logic

So far all the circuits considered have been static in operation. They rely on a permanent connection to an input logic level to maintain their state. Transistor counts can be further reduced by taking advantage of the inherent charge stored in the circuit devices. Since this charge will quickly dissipate, such circuits have to be constantly refreshed with system clocks. This is now a dynamic operation and such circuits are referred to as Dynamic Logic.

The following circuit details one stage of a dynamic shift register in serial and parallel configurations.

Figure 1.18 Dynamic Logic

The circuit operates in a master/slave arrangement with the first inverter being the master and the second inverter the slave. Two non-overlapping clocks C1 and C2 are required to move data through the register. Since these clocks can never be simultaneously active, C1 will input data to the master and C2 will transfer it to the slave. Hence during the time that C1 is active data will be passed from a previous stage through the first pass transistor and into the master inverter where it will reside as a stored charge. When C2 becomes active this stored charge is transferred through the second pass transistor to the slave inverter and on to the next stage in the register.

The circuit below operates on the same principle but can function both as as a parallel shift register when A = 1 and as a "Divide by 2 circuit"  when A = 0.

Figure 1.19 Dynamic Logic


Truth Table
 A     Output
 1     R1 = d1
        R2 = d2

           Rn = dn

0     R1 = d2
       R2 = d3

           Rn = 0

Under normal shift operation the inputs d1 to dn are passed from input to output. When in divide mode each bit is connected via an active pass transistor to the next most significant bit. So, for example, if the contents of the register were originally 1100 (12), after the divide operation we would have a new value of 0110 (6).

6.    Programmable Logic Arrays

The logic functions so far considered have been relatively simple. Full custom techniques are particularly suited, however, to implementing block functions that have regularly repetitive structures. The Programmable Logic Array (PLA) is an example of such a structure.

Logic functions are typically defined in terms of  sum-of-products expressions and these can be mapped easily into a PLA array.  The array is a "floor-plan" architecture which consists of an AND-plane and an OR-plane.

The result is that irregular functional designs are mapped onto a regular structure.  Design decisions can be delayed until most of the design is complete.  The disadvantages of PLAs are that the silicon area used may be large and the circuit performance may be slower than could be obtained by other means.

The area of the array can be determined by the following calculation:
AREA = 2 *( number of inputs + number of outputs) * number of product terms

In general we will need to present both true and inverse variables to the AND plane and take either true or inverse outputs from the OR plane. It is therefore more economical to implement the AND function with inverters and a NOR gate and the OR function with a NOR gate followed by an inverter as shown in the diagram below.

Figure 1.20 Programmable Logic Arrays



Example Design a PLA transistor implementation for the functions:

F1 = AB' + A'CD      and      F2 = A'CD + AC'

The procedure is as follow:

First minimise the functions and define the product terms.   In this case the products terms are: AB', A'CD and AC'

Next generate the AND bit-map (YELLOW) and the OR bit-map (GREEN) tables as shown below.

So, for example, the product term A'CD will require a connection to the variables A', C and D in the AND plane (indicated by 1s in the AND bit-map) and to F1 and F2 in the OR plane (indicated by 1s in the OR bit-map).

Figure 1.21 Programmable Logic Arrays


The transistor implementation for the PLA is shown below.

Since the AND plane is implemented as a NOT/NOR function it will be necessary to connect a transistor for each 0 in the bit-map.

Similarly, since the OR plane is implemented as a NOR/NOT function, a pull-down transistor is connected for each 1 in the bit-map.

So, for example, the line generating the AB' product term will be pulled high by the AND plane depletion mode pull-ups if A=1 and B=0 since none of the transistors connected to that line will be active. This in turn will switch on the pull down transistor in the OR plane, setting the input to the F1 inverter low and therefore its output high.

Figure 1.22 Programmable Logic Arrays



  7.   Weinberger Arrays

The Weinberger array is a product-of-sums implementation using a regular structure of NOR gates to implement the logic function. It can be easily expanded by adding inputs at the bottom and NOR gates to the right without changing the existing structure. The use of NOR gates throughout allows a constant pull-up size.

The pull-ups can be depletion mode devices in an NMOS process or grounded gate P-enhancement transistors in a CMOS process. In either case they must be sized to satisfy the pull-up/pull-down ratio (4:1 in 5V technology).

The array consists of 3 NOR gates in series providing the following functions :-

1st NOR level:    Invert the inputs
2nd NOR level:   Implement the required logic expression
3rd NOR level:    Invert to form the output


Example Design a Weinberger Array to implement the function F = ab + c

First rearrange the function for implementation with NOR gates.

F = ab + c
   = (a' + b')' +c            by DeMorgan's law
   = ((a'+b')'+c)''           by double inverting the expression

So now the 1st NOR level will generate the inverse inputs  a' and b'.
The 2nd NOR level will implement the function (a'+b')'+c)'.
The 3rd NOR level will invert this function (a'+b')'+c)'' for the final output. A suitable circuit for the 1st NOR level is shown below. p-type enhancement mode transistors are utilised as pull up devices. Connecting their gates permanently to Vss ensures that they are always switched on.

Figure 1.23 Weinberger Arrays


We now require a NOR gate to generate the function (a'+b')'. This will form part of the 2nd NOR level. The circuit structure can be extended to include this capability as shown below.

Figure 1.24 Weinberger Arrays



The 2nd NOR level can now be further extended to include the complete logic expression (a'+b')'+c)'  and the 3rd NOR level added to implement the final inversion (a'+b')'+c)'' as shown below.

Figure 1.25 Weinberger Arrays

 

8. Static RAM Arrays

Memory devices provide another good example of regular block structures well suited to full custom design.
Static Random Access Memory (SRAM) retains data as long as the power supply is applied.

The standard SRAM cell comprises two back-to-back inverters forming a flip-flop configuration. The cell is selectable by pass transistors connected to a Row Select Line and when in this condition data can be written into or read out from the cell using the Bit Lines. A number of these cells will be arranged in a matrix of rows and columns. Each row will have a common Row Select Line and each column will have common Bit Lines. The logic gate and transistor circuit representations for the cell are shown below.

When not selected the two inverters feed back on each other to reinforce the stored data. So, for example, if the output of the top inverter is a logic 0, this is fed to the input of the bottom inverter which then produces a logic 1 on its output. This is fed back to the input of the top inverter to maintain its current logic 0 output.

Figure 1.26 Static RAM (SRAM) 6 Transistor Cell


Figure 1.27 Static RAM Arrays


Selecting a Cell

Cells are selected a row at a time by activating the Row Select Line. This opens pass transistors T1 and T2 and connects the flip-flop inverters to the Bit Lines. A complete cell row can now be written to or read from.

Writing to a Cell

The required data to be written to the cell is placed on the Bit Lines Ba and Bb. This is arranged so that these lines always contain opposite logic values. We can arbitrarily assign Ba as the true output and Bb as the inverse. So to store a 0 set Ba=0 and Bb=1 and to store a 1 set Ba=1 and Bb=0.

Assume now that the cell is currently in a logic 1 state. Node x in the circuit will be a logic 1 and node y will be a logic 0. To write a logic 0 into the cell we set Ba=0 and Bb=1. Node x is forced to change to a logic 0, switching the output of the top inverter to a logic 1 and reinforcing the logic 1 at node y set by the Bb Bit Line. The bottom inverter output switches to a logic 0, reinforcing the logic 0 at node x. When the Row Select Line is deactivated the cell now remains in its new state. The process is illustrated below.

Figure 1.28 Writing to a Cell



Reading from a Cell

Reading from the cell is a little more involved. As is common with a number of memory cell configurations the process of reading data from a cell can destroy its contents. This is known as a Destructive Read operation and will occur when the cell is selected and both Bit Lines are at logic 0. To avoid this it is necessary to precharge both Bit Lines to a logic 1 prior to cell selection. The following circuit is suitable.

Figure 1.29 Reading from a cell


At the top of each column is a precharge circuit consisting of a PMOS transistor for each Bit Line. When the precharge signal is activated (set to logic 0) the Bit Lines are connected to Vdd and the intrinsic capacitance associated with each line charges up to Vdd.

The cell can now be selected for reading. Assume that the cell is currently in the logic 1 state with node x=1 and node y=0. When the cell is connected to the Bit Lines, Ba will connect to node x and remain at a logic 1 whilst Bb will connect to node y and discharge to a logic 0 as shown.

Figure 21.30 Static RAM Arrays

There now remains the problem of how to capture the logic values on the Bit Lines. For this we use a Sense Amplifier located at the bottom of each column. This amplifies the difference between the Bit Lines as discharging takes place and sets the lines to good logic levels. A suitable circuit is shown below.

Figure 1.31 Sense Amplifier


The circuit implements a cross-coupled inverter arrangement providing a flip-flop function similar to that employed in the memory cell. During the sensing operation the Sense signal will be set high, turning on transistor ts and activating the amplifier. Given that Ba will be a logic 1 and Bb is discharging to logic 0 the output of the left hand inverter will be at logic 0, thereby assisting both the Bb Bit Line to discharge and the output of the right hand inverter to assume a logic 1. The flip-flop is now latched in the required state and the Bit Lines are set to good logic levels. When the cell has been successfully read the Sense signal can be deactivated and the Bit Lines are now available for other operations.

9.    Dynamic RAM Arrays

Like the dynamic logic circuits previously considered Dynamic Random Access Memory (DRAM) Arrays require regular refreshing to maintain their contents. This results in slower operation than SRAM but has fewer transistors in the memory cell. A 4 transistor DRAM cell is shown below:

Figure 1.32 Dynamic RAM Arrays


The cell follows a similar construction to the SRAM with Row Select Lines and Bit Lines. The cell maintains its stored data, however, by using the intrinsic capacitance Cg3 and Cg4 of the cell transistors. In time this will decay so a refresh operation is required to top up the charge.

Refreshing the Cell

Before the cell can be refreshed a precharge operation must have taken place. This is accomplished in the same manner as for the SRAM cell. In this condition both Bit Lines will be at logic 1. Next the cell is selected by activating the Row Select Line. Assuming that T3 is off and T4 is on,  Cg3 will be discharged (low) and Cg4 will be charged (high). Connecting the Bit Lines will cause Cg4 to recharge high and Cg3 to remain discharged low. The process is shown below.

Figure 3.32 Refreshing the Cell

Writing to a Cell

The cell must first be selected. Assume as before that T3 is off and T4 is on and that we wish to write a logic 0 into the cell. The Bit Lines will be set so that Ba=0 and Bb=1. Cg4 will discharge turning T4 off whilst Cg3 will charge turning T3 on as shown below.

Figure 3.33 Writing to a Cell

Reading from a Cell

The read operation is essentially the same as the refresh operation. The Bit Lines are precharged, the cell is selected and the state of the Bit Lines are captured with a sense amplifier.

Nguồn ami.ac.uk

12/11/2013

Đào Tạo Kỹ Sư “Thiết Kế Vi Mạch”



KHÓA HC SƠ CP “THIT K VI MCH S

DESIGN OF DIGITAL INTEGRATED CIRCUITS


Thiết Kế Vi Mch, Thiết Kế IC là gì? Ti sao nên hc vi mch?


1.          Điu kin đăng ký hc phn:
Sau khi sinh viên đã hoàn thành các môn hc đin t cơ bn, mch s.


2.      Mc tiêu ca hc phn:

Sau khi hoàn tt chương trình môn hc này, ngưi hc có th:

-   Nm bt đưc các kiến thc cơ bn v quy trình thiết kế IC s.

-   Hiu đưc kiến thc v ASIC và ngôn ng lp trình (Verilog, Assembly, C, ngôn ng script trong Linux).

-   Review li kiến thc k thut s: Mch t hp và mch tun t.

-   Hc ngôn ng mô t phn cng Verilog (Hardware Description Language). 

-    ng dng Verilog trong vic thiết kế phn k thut s. ng dng thiết kế IP đơn gin. IP(Intellectual Property) đơn gin và nh trong Vi Điu Khin(MCU) như  IP: PWM(Pulse Width Modulation – B điu chế xung), TMR(Timer – B Đnh Thì).

-     ng dng Verilog xây dng môi trưng mô phng đ kim tra thiết kế. Môi trưng mô phng như là mt cái mch đ mà đt bng thiết kế(DUT – Design Under Test) vào mà kim tra xem thiết kế có li hay không? Sau khi xây dng môi trưng mô phng (Simulation Environment), chúng ta có th kim tra con chip như đang trên con chip tht bng nhng ngôn ng lp trình: ngôn ng C, ngôn ng Assembler, Verilog, System Verilog, …



4.      Cơ hi ngh nghip

     Nhu cu hin nay ngày càng nhiu Công Ty Thiết Kế Vi Mch nưc ngoài vào Vit Nam, ngun nhân lc Thiết Kế Vi Mch Vit Nam không  nhiu không th đáp ng cho nhu cu ca các doanh nghip nưc ngoài Renesas, AppliedMicro (AMCC), Intel, ESilicon (SDS), TMA  Solutions, ATVN(Arrive Technology), AWAH, Grey Stones, Splendid, ...

Sau Khóa hc Bn s có kh năng làm vic trong nhiu lĩnh vc đa dng như thiết kế, sn xut và cung cp các sn phm đin t, h thng máy tính và các vt liu bán dn.
Hơn hết, Sinh viên tt nghip có cơ hi  vào làm vic ti các Công ty Chip hàng đu ti Vit Nam như Renesas, ESilicon, ATVN, Grey Stones, ...


4.      Tóm tt ni dung hc phn

IC (Integrated circuit) có mt trong hu hết các thiết b đin t t gia dng nh bé như đin thoi, máy tính, máy in… cho đến các c máy sn xut công nghip khng l. Đa s các IC này là IC s (Digital Integrated Circuit) kết hp vi mt s linh kin tương t to nên b điu khin hot đng ca các thiết b đin t này. 

Chính vì vy, môn hc thiết kế IC s là môn hc cn thiết, nhm giúp sinh viên có th phi hp các cng logic cơ bn đ thiết kế IC s có chc năng mong mun và phân tích các IC s; s dng các công c (tools) thiết kế IC s.


- Vi Mch chính là IC (Integrated Circuit) hay còn gi là "Mch Tích Hp". 

- Thiết Kế Vi Mch S chính là làm thế nào đ tích hp mt mch s càng ln, nhiu chc năng, nhiu cng logic vào trong mt con chip IC s vi các tiêu chí cn đt như sau:

  + Làm thế nào có th tích hp càng nhiu chc năng (functions) vào trong mt con chip?

  + Làm thế nào đ con chip có th chy vi tc đ tn s hot đng (highest operation frequency) nhanh nht?

  + Làm thế nào đ con chip có công sut tiêu tn ngun nh nht (lowest power consumption)?

  + Làm thế nào đ con chip có kích thưc nh nht (minimum area)

  + Và điu quan trng hơn c là làm thế nào đ con chip không có li, thi gian hoàn tt con chip ngn nht và có chi phí thp nht?


5.      Ni dung chi tiết hc phn

                                               Lý Thuyết:
·         Phn 1: Principles of ASIC Design. 
·         Phn 2: ASIC Design Flow, ASIC Architecture, FPGA Architecture
·         Phn 3: FPGA & ASIC Advantages
·         Phn 4: Unit Cost Analysis
·         Phn 5: Time to Market
·         Phn 6: Design Cycle
·         Phn 7: FPGA & ASIC ; Design Flow Comparison
·         Phn 8: FPGA and ASIC Design Flows , Fundamentally Similar
·         Phn 9: Test

                                        Thc hành:
·         Phn 1: Linux Commands
·         Phn 2: S dng trình son tho Vi
·         Phn 3: Lp Trình Shell
·         Phn 4: Research modelSim tool Simulator
·         Phn 5: Practice verilog with compination circuit
·         Phn 6: Design Decoder Block:
·         Phn7: The Block diagram for testbench IP Decoder
·         Phn 8: Design Encoder Block.
·         Phn 9: The Block diagram for testbench IP Encoder
·         Phn 10: Basic IP Core
·         Phn 11: Testbech Block for Basic IP Core
·         Phn 12: 8 BIT TIMER

6.      Phn mm:
Phn mm bên trung tâm dy là phn mm Modelsim/Questasim ca Tp Đoàn Mentor Graphics.

7.      Hc phí:
Thi gian: 3 tháng                           Hc  phí: 3.000.000 VNĐ

8. Bng cp:
Hoàn thành toàn b bài tp, Semicon s kim tra “Thư  mc  bài tp” ca hc viên sau đó s quyết đnh cp giy chng nhn hoàn thành khóa hc “Thiết Kế Vi Mch” hay không?


9. Nhn xét:

H Thanh Tuyni Hc Bách Khoa )

Tôi đã bưc nhng bưc đi đu tiên trên con đưng thiết kế vi mch t trung tâm SEMICON này. Và nhng gì hc đưc đây không ch là kiến thc nn tng ca ngành thiết kế vi mch mà còn là phong cách làm vic ca ngưi trong ngành vi mch. Điu đó khiến tôi t tin hơn bao gi hết vào con đưng mà tôi đã chn. Cm ơn anh Dương cùng các anh ch ti Semicon.

Nguyn Đinh Hi ( Đi Hc Quc Tế)

Kiến thc Khóa Hc luôn sát vi kiến thc sau khi đi làm. Ging viên dy rt nhit tình, tn tâm. Cm ơn anh Tn luôn nhit tình trong mi bui thc hành trên máy tính. Đc bit, Hi xin cm ơn anh Dương luôn nhit tình trong mi bui hc. Anh luôn biết cách truyn đam mê v môn hc cho hc viên.



TTĐT Thiết Kế Vi Mch Semicon

Đa ch: VP Kỳ Duyên Lô A10 Đưng Trc, F.13, Q.Bình Thnh, Tp.HCM
HotLine: 0972 800 931
                                       Website: www.semiconvn.com