gui hoc tro

Upload: tuan-pham-trong

Post on 03-Jun-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 gui hoc tro

    1/74

    7/4/20

    C 5: N

    HDL

    1

    I. INRODCION

    2

  • 8/12/2019 gui hoc tro

    2/74

    7/4/20

    VHDL = VHSIC Hardware Description

    Language(VHSIC = Very High Speed Integrated Circuit)

    HDL . I ,

    .

    HDL fi I

    E E E

    3GV: V Th Hng nga

    4GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    3/74

    7/4/20

    II. CODE STRUCTURE

    5

    1.

    A HDL :

    LIBRAR : C .

    ENTIT: Sfi I/O .

    ARCHITECTURE: C HDL ,

    6GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    4/74

    7/4/20

    7

    Fundamental sections of a VHDL code

    2.

    T LIBRAR ,

    8GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    5/74

    7/4/20

    9

    EX:LIBRARY ieee;USE ieee.std_logic_1164.all;Using std_logic_1164 package from the ieee library

    EX:LIBRARY std;USE std.standard.all;Using standard package from the std library

    GV: V Th Hng nga

    :

    std_logic_1164: Specifies the STD_LOGIC (8 levels)

    and STD_ULOGIC (9 levels) multi-valued logic

    systems.

    std_logic_arith: Specifies the SIGNED and

    UNSIGNED data types and related arithmetic and

    comparison operations.

    std_logic_signed: Contains functions that allow

    operations with STD_LOGIC_VECTOR data to beperformed as if the data were of type SIGNED.

    std_logic_unsigned: Contains functions that allow

    operations with STD_LOGIC_VECTOR data to be

    performed as if the data were of type UNSIGNED10

  • 8/12/2019 gui hoc tro

    6/74

    7/4/20

    3. A ENTIT fi (PORTS)

    11GV: V Th Hng nga

    3 ENTITY (tt)

    T IN, OUT, INOUT, BUFFER.

    T BIT, STDLOGIC,INTEGER,..

    , HDL

    12GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    7/74

    7/4/20

    13

    Example: entity of the NAND gate

    GV: V Th Hng nga

    :

    14GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    8/74

    7/4/20

    E: M

    15

    ENTITY mux ISPORT (a, b : IN std_logic_vector (7 downto 0);

    sel : IN std_logic_vector (0 to 1);c: OUT std_logic_vector (7 downto 0));

    END mux;

    GV: V Th Hng nga

    4. ARCHIECRE

    T ARCHITECTURE . I :

    16GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    9/74

    7/4/20

    4. ARCHITECTURE (tt)

    A : S

    T : L

    T N ( HDL ) , .

    17GV: V Th Hng nga

    E : NAND .

    18GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    10/74

    7/4/20

    III. DATATYPES

    19

    1.

    S, .

    S , ,

    A :

    A : := ;

    20GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    11/74

    7/4/20

    21

    2.

    . A , ,

    .

    A :

    AAB : := ;

    22GV: V Th Hng nga

    Reference from : http://www.edaboard.com/thread19065.html

  • 8/12/2019 gui hoc tro

    12/74

    7/4/20

    ENTITY mux IS

    PORT (i0, i1, i2, i3, a, b : IN

    std_logic;q : OUT std_logic);

    END mux;

    ARCHITECTURE wrong of mux IS

    SIGNAL muxval : INTEGER;

    BEGIN

    PROCESS ( i0, i1, i2, i3, a, b )

    BEGIN

    muxval

  • 8/12/2019 gui hoc tro

    13/74

    7/4/20

    3. C C

    A :

    A : := ;

    :

    CONSTANT PI: REAL := 3.1414;

    25GV: V Th Hng nga

    4. PDfi D. ( ): 2 0, 1

    Examples:

    SIGNAL x : BIT;

    x

  • 8/12/2019 gui hoc tro

    14/74

    7/4/20

    . SDLOGIC ( SDLOGICECOR):8 1164 .

    F U

    0 F L

    1 F H

    H

    L

    H D

    27GV: V Th Hng nga

    Examples:

    SIGNAL x: STD_LOGIC;

    -- x is declared as a one-digit signal of type STD_LOGIC.

    SIGNAL y: STD_LOGIC_VECTOR (3 DOWNTO 0)

    -- y is declared as a 4-bit vector, with the leftmost bit being

    the MSB.

    28

  • 8/12/2019 gui hoc tro

    15/74

    7/4/20

    . INEGER PES

    INTEGER TYPES are exactly like mathematical integers.

    All of the normal predefined mathematical functions like

    add, subtract, multiply, and divide apply to integer types

    the integer range is specified from -2,147,483,647 to

    2,147,483,647

    29GV: V Th Hng nga

    Examples:

    A

    B

    ()

    AAB : ;

    AAB : ;

    B

    := 1;

    := 1;

    := 1.5;

    ;

    ;30GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    16/74

    7/4/20

    . REAL PESR

    . T

    Real numbers ranging from -1.0E38 to +1.0E38.

    31GV: V Th Hng nga

    5. PHSICAL PESP

    , , , .

    A , . T ;

    32GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    17/74

    7/4/20

    :

    33GV: V Th Hng nga

    SUMMARY:

    BOOLEAN: True, False.

    INTEGER: 32-bit integers (from -2,147,483,647 to

    +2,147,483,647).

    NATURAL: Non-negative integers (from 0 to

    +2,147,483,647).

    REAL: Real numbers ranging from -1.0E38 to+1.0E38.

    34GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    18/74

    7/4/20

    6. D D VHDL allows the user to define his/her own data types. It

    calls User-defined integer type

    Ex1:

    TYPE integer IS RANGE -2147483647 TO +2147483647;

    -- This is indeed the pre-defined type INTEGER.

    TYPE my_integer IS RANGE -32 TO 32;

    -- A user-defined subset of integers

    35GV: V Th Hng nga

    6. D D ()E2:

    TPE IS ('0', '1');

    T BIT

    ('0', '1', '');

    A .

    E 3:

    TPE IS (, , , );

    A , .

    TPE IS (, , , );

    A .

    36

  • 8/12/2019 gui hoc tro

    19/74

    7/4/20

    7. A

    . Arrays can be one-dimensional(1D), two-dimensional (2D)

    T :

    S: BIT, STDLOGIC, STDULOGIC, BOOLEAN.

    : BITECTOR, STDLOGICECTOR,

    STDULOGICECTOR, INTEGER, SIGNED, UNSIGNED.

    37GV: V Th Hng nga

    38GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    20/74

    7/4/20

    2

    Example:

    -- 1D array

    TYPE row IS ARRAY (7 DOWNTO 0) OF STD_LOGIC;

    -- 1Dx1D array

    TYPE matrix IS ARRAY (0 TO 3) OF row;

    .

    SIGNAL y: row;

    SIGNAL x: matrix;

    .y := 11110000 -- OK

    39GV: V Th Hng nga

    IV. OPERATORS AND ATTRIBUTES

    40

  • 8/12/2019 gui hoc tro

    21/74

    7/4/20

    2

    1.

    U OTHERS.

    41GV: V Th Hng nga

    :

    SIGNAL : STDLOGIC;

    ARIABLE : STDLOGICECTOR(3 DONTO 0);

    L MSB

    SIGNAL : STDLOGICECTOR(0 TO 7);

    R MSB

    :

  • 8/12/2019 gui hoc tro

    22/74

    7/4/20

    2

    2. T :

    NOT, AND, OR, NAND, NOR, OR, NOR

    T BIT, STDLOGIC,STDULOGIC,BITECTOR,STDLOGICECTOR,

    STDULOGICECTOR

    E:

  • 8/12/2019 gui hoc tro

    23/74

    7/4/20

    2

    + A S

    * M

    / D

    ** E

    MOD M

    REM R

    ABS A

    45GV: V Th Hng nga

    4. U . T . T :

    = E

    /= N

    < L

    > G

    = G S O

    46GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    24/74

    7/4/20

    2

    6. LO: R

    HIGH: R

    LEFT: R

    RIGHT: R

    LENGTH: R

    RANGE: R

    REERSERANGE: R

    47GV: V Th Hng nga

    AL(): R

    POS(): R

    LEFTOF(): R

    AL(, ): R

    48GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    25/74

    7/4/20

    2

    Example: Consider the following signal:SIGNAL d : STD_LOGIC_VECTOR (7 DOWNTO 0);

    Then:

    d'LOW=0, d'HIGH=7

    d'LEFT=7, d'RIGHT=0

    d'LENGTH=8,

    d'RANGE = (7 downto 0),

    d'REVERSE_RANGE = (0 to 7).

    49GV: V Th Hng nga

    7.

    EENT: R

    STABLE: R

    ACTIE: R = 1

    QUIET : R

    LASTEENT: R

    LASTACTIE: R = 1

    LASTALUE: R

    50

  • 8/12/2019 gui hoc tro

    26/74

    7/4/20

    2

    :IF ('EENT AND ='1')... EENT

    IF

    IF (NOT 'STABLE AND ='1')... STABLE IF

    AIT UNTIL ('EENT AND ='1'); EENT AIT

    IF RISINGEDGE()...

    51GV: V Th Hng nga

    8. GENERIC

    ( , ).T .

    A GENERIC ENTIT. I :

    52GV:V Th Hng nga

  • 8/12/2019 gui hoc tro

    27/74

    7/4/20

    2

    :

    53GV: V Th Hng nga

    : 2

    ;

    .1164.;

    ( : := 2);

    (,: ( 1 0);

    : ; : ( 1 0);

    : );

    ;

    54

  • 8/12/2019 gui hoc tro

    28/74

    7/4/20

    2

    (,,) : ( 0);

    (0) := ;

    0 ( 1)

    ()

  • 8/12/2019 gui hoc tro

    29/74

    7/4/20

    2

    1 C S L

    ,

    57GV: V Th Hng nga

    58GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    30/74

    7/4/20

    3

    2. C S CHDL (). O

    PROCESS, FUNCTION, PROCEDURE .

    I .

    T , . I,

    , .

    59GV: V Th Hng nga

    60

    3. C

    I , :

    O;

    T HEN :

    (HEN/ELSE ITH/SELECT/HEN);

    T GENERATE ;T BLOCK .

    GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    31/74

    7/4/20

    3

    61

    4. O.

    GV: V Th Hng nga

    :

  • 8/12/2019 gui hoc tro

    32/74

    7/4/20

    3

    63

    f

    x3

    x1

    x2 A

    B

    Library ieee;

    Use IEEE.std_logic_1164.all;

    Entity example1 IS

    END example1;

    ARCHITECTURE Lfun of example1 is

    Signal A,B : std_logic;

    BEGIN

    END Lfun;

    f

  • 8/12/2019 gui hoc tro

    33/74

    7/4/20

    3

    65

    GV: V Th Hng nga

    66

    T .

    signal_name

  • 8/12/2019 gui hoc tro

    34/74

    7/4/20

    3

    : 4 1

    T :

    S 1: HEN/ELSE

    S 2: ITH/SELECT/HEN

    67GV: V Th Hng nga

    68

  • 8/12/2019 gui hoc tro

    35/74

    7/4/20

    3

    69

    6. SS :

  • 8/12/2019 gui hoc tro

    36/74

    7/4/20

    3

    E 2 : E 83

    71GV: V Th Hng nga

    72

  • 8/12/2019 gui hoc tro

    37/74

    7/4/20

    3

    E 3: AL

    73

    74

  • 8/12/2019 gui hoc tro

    38/74

    7/4/20

    3

    75

    76

  • 8/12/2019 gui hoc tro

    39/74

    7/4/20

    3

    77

    E 1 :

    38

    E 2:

    D

    : ( )

    : ( )

    ......77

    .

    B : 2 :

    78

    Ket qua:..\..\..\baitapvhdl\alu\alu.qpf

  • 8/12/2019 gui hoc tro

    40/74

    7/4/20

    4

    6. GENERAEGENERATE . I .

    / A:

    79GV: V Th Hng nga

    :

    80GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    41/74

    7/4/20

    4

    VI. SEQUENTIAL CODE

    81

    1. PROCESS

    A PROCESS HDL . I IF, AIT, CASE, LOOP, . A PROCESS , .

    82GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    42/74

    7/4/20

    4

    83

    S PROCESS:

    VARIABLES are optional. If used, they must be declared in

    the declarative part of the PROCESS. The initial value isnot synthesizable, being only taken into consideration insimulations.

    2. IF

    IF, AIT, CASE, LOOP . T, PROCESS, FUNCTION, ROCEDURE.

    T IF :

    84GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    43/74

    7/4/20

    4

    E 1: D C

    85GV: V Th Hng nga

    86

    E 2: D C

  • 8/12/2019 gui hoc tro

    44/74

    7/4/20

    4

    Exercise 3: write code for the circuit below

    87GV: V Th Hng nga

    88

    LIBRAR ;

    USE .1164.;ENTIT ISPORT ( , : IN STDLOGICECTOR (7 DONTO 0);

    : IN STDLOGICECTOR(1 DONTO 0); : OUT STDLOGICECTOR (7 DONTO 0));

    END ;ARCHITECTURE OF ISBEGINPROCESS (, , )

    BEGINIF ( = "00") THEN

  • 8/12/2019 gui hoc tro

    45/74

    7/4/20

    4

    4:

    A , ().

    R =1, = 0, .O, = 0 1

    89GV: V Th Hng nga

    90

  • 8/12/2019 gui hoc tro

    46/74

    7/4/20

    4

    91GV: V Th Hng nga

    1:

    92GV: V Th Hng nga

  • 8/12/2019 gui hoc tro

    47/74

    7/4/20

    4

    93

    ENTITY example IS

    PORT ( a, b, clk: IN BIT;

    q: OUT BIT);

    END example;

    ---------------------------------------

    ARCHITECTURE example OF example IS

    SIGNAL temp : BIT;

    BEGIN

    temp

  • 8/12/2019 gui hoc tro

    48/74

    7/4/20

    4

    95

    96

    4. C

    A

    1 =>

    A ;

    2 =>

    B ;

    :

    =>

    P ;

    A;

    Value_1

    Value_2

    Statements A

    Statements B

    Statements A

    NO

    NO

    yes

    yes

  • 8/12/2019 gui hoc tro

    49/74

    7/4/20

    4

    97

    E 1: D 24

    case A is

    when 00 => y y y y y

  • 8/12/2019 gui hoc tro

    50/74

    7/4/20

    5

    99

    Code VHDL dem 2 digit.pdf

    100

    Design a Two-digit Counter (00 12)E 2:

  • 8/12/2019 gui hoc tro

    51/74

    7/4/20

    5

    Exercise 1

    Design a Two-digit Counter (00 24), using decoder

    BCD to led 7 segment

    101

    Counter

    00 - 24

    74LS47

    74LS47

    ckDigit 2

    Digit 1

    RESET

    E 3: D C 8

    102

  • 8/12/2019 gui hoc tro

    52/74

    7/4/20

    5

    5. AI

    103

    AI NIL

    T AIT UNTIL .S PROCESS , AIT

    UNTIL PROCESS. TPROCESS .

    104

  • 8/12/2019 gui hoc tro

    53/74

    7/4/20

    5

    105

    AI ONAIT ON, ,

    . T PROCESS . I , PROCESS .

    106

  • 8/12/2019 gui hoc tro

    54/74

    7/4/20

    5

    E: 8 PROCESS

    BEGIN

    AIT ON , ;

    IF (='1') THEN

  • 8/12/2019 gui hoc tro

    55/74

    7/4/20

    5

    6. LOOP

    T LOOP . L IF, AIT, CASE,LOOP , PROCESS, FUNCTION, PROCEDURE.

    109

    FOR / LOOPT

    T :

    110

  • 8/12/2019 gui hoc tro

    56/74

    7/4/20

    5

    HILE / LOOPT

    T :

    111

    112

    E 1: D C R A 8

  • 8/12/2019 gui hoc tro

    57/74

    7/4/20

    5

    113

    114

  • 8/12/2019 gui hoc tro

    58/74

    7/4/20

    5

    E 2 : FSM

    115

    116

  • 8/12/2019 gui hoc tro

    59/74

    7/4/20

    5

    117

    118

  • 8/12/2019 gui hoc tro

    60/74

    7/4/20

    6

    E 3 : FSM

    119

    120

  • 8/12/2019 gui hoc tro

    61/74

    7/4/20

    6

    121

    E: L C

    Link to Chapter 8 ( /page 186)

    MIT.P,.C.D..HDL.(2004).TLFUE.

    122

  • 8/12/2019 gui hoc tro

    62/74

    7/4/20

    6

    VI. PACKAGES AND

    COMPONENTS

    123

    124

    Fundamental units of VHDL code.

  • 8/12/2019 gui hoc tro

    63/74

    7/4/20

    6

    1. A COMPONENT .

    H, COMPONENT, , .

    A COMPONENT .

    :

    flfl, , , , ..

    125

    :

    126

    :

  • 8/12/2019 gui hoc tro

    64/74

    7/4/20

    6

    :

    127

    128

    Example: Write code for the circuit below

  • 8/12/2019 gui hoc tro

    65/74

    7/4/20

    6

    129

    130

  • 8/12/2019 gui hoc tro

    66/74

    7/4/20

    6

    131

    132

  • 8/12/2019 gui hoc tro

    67/74

    7/4/20

    6

    133

    2. PACKAGESA , ,

    , .

    A : , ,

    , . T

    134

  • 8/12/2019 gui hoc tro

    68/74

    7/4/20

    6

    :

    135

    136

  • 8/12/2019 gui hoc tro

    69/74

    7/4/20

    6

    137

    Example:

    E: , = . + .

    ()

    ;

    .1164.;

    ( : ; : );

    ;

  • 8/12/2019 gui hoc tro

    70/74

    7/4/20

    7

    ;

    .1164.;

    (, : ; : );

    ;

  • 8/12/2019 gui hoc tro

    71/74

    7/4/20

    7

    ; .1164.;

    (: ;

    : );

    ;

    (, : ; : );

    ;141

    (, : ; : );

    ;

    ;

    ----top module------

    library ieee;

    use ieee.std_logic_1164.all;

    use work.mycomponent.all;

    entity mypackage is

    port (a,b : in std_logic;

    y : out std_logic);

    end mypackage;

    architecture mypackage of

    mypackage issignal d1,d2,d3,d4 : std_logic;

    142

    beginu1 : congdao port map (a,d1);u2 : congand port map (d1,b,d3);u3 : congdao port map (b,d2);u4 : congand port map (a,d2,d4);u5 : congor port map (d3,d4,y);end mypackage;

  • 8/12/2019 gui hoc tro

    72/74

    7/4/20

    7

    143

    exercise 1: Design combinational circuit

    exercise 2: Design A 16-to-1 mux using 4-to-1 mux

  • 8/12/2019 gui hoc tro

    73/74

    7/4/20

    7

    THANK YOU!

    145

    146

  • 8/12/2019 gui hoc tro

    74/74

    7/4/20

    147