ݺߣ

ݺߣShare a Scribd company logo
Компиляция и
моделирование VHDL-кода


      Языки описания аппаратуры




     Хаханова И.В, каф.АПВТ,
     ХНУРЭ, e-mail:                        1
     hahanova@mail.ru             09.02.2011
     Цель лекции: Изучить принципы
      моделирования и тестирования VHDL-
      проектов
     Содержание:
     1. Компиляция, разработка, и моделирование
        VHDL - кода
     2. Транспортная и инерционная задержки
     3. Драйвер сигнала
     4. Правило формирования очереди будущих
        значений сигнала
     5. Оператор wait без параметра



                                                                   2
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Компиляция, разработка, и моделирование
VHDL - кода




                                                                   3
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Транспортная и инерционная задержки (1)

 VHDL предлагает два типа задержек: транспортную и
   инерционную.
       Транспортная соответствует модели задержек на
         проводниках схемы. Выходной сигнал повторяет в этом
         случае форму входного сигнала с задержкой на указанное
         время.
      Синтаксис:
      signal_name <= transport expression after delay-time
       Инерционная моделирует задержку на вентилях или других
         устройствах, не пропускающих короткие импульсы
         входного сигнала на выход. Это задержка используется по
         умолчанию.
      Синтаксис:
      signal_name <= reject pulse-width [ inertial ] expression after
         delay-time


                                                                             4
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru             09.02.2011
Транспортная и инерционная задержки (2)

 Z1<= transport X after 10 ns;                       -- транспортная задержка
 Z2 <= X after 10 ns;                                -- инерционная задержка
 Z3 <= reject 4 ns inertial X after 10 ns; -- задержка с заданной
    длиной
                                           -- отраженных импульсов


                                        10 ns                3 ns    5 ns

                          X                          10 ns
                                                                  2 ns

                          Z1


                          Z2


                          Z3

                               0   10           20           30             40   50




                                                                                               5
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                               09.02.2011
Транспортная и инерционная задержки (3)

    В общем случае, использование reject представляет
     собой совмещение инерционной и транспортной
     задержек. Например, выражение
         Z3 <= reject 4 ns inertial X after 10 ns
     может быть заменено следующими параллельными
     операторами:
       использует инерционную задержку, отражающую
        короткие импульсы
         Zm <= X after 4 ns;
       Транспортная задержка равна 6 ns, тогда общая
        задержка равна 10 ns
         Z3 <= transport Zm after 6 ns;



                                                                   6
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is                                          Значения    Текущее
                                                                      в очереди   значение
end simulation_example;
architecture testi of                              После разработки                              A
    simulation_example is                                                            '0'
                                                       time = 0                      '0'         B
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                                                    7
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                                   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                    8
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                    9
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                   10
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                   11
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                   12
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Драйвер сигнала
entity simulation_example is
end simulation_example;
architecture testi of
    simulation_example is
    signal A,B: bit;
begin
    P1: process(B)
    begin
           A <= '1';
           A <= transport '0' after 5 ns;
    end process P1;
    P2: process(A)
    begin
       if A = '1' then
           B <= not B after 10 n
       end if;
    end process P2 ;
end testi;
                                                                   13
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Правило формирования очереди
будущих значений сигнала
 Для транспортной задержки. Пусть в момент времени T
    выполняется последовательный оператор назначения сигнала
    A <= transport B after Tnew ns;
 В очередь драйвера заносится B со временем T+Tnew
    (B@T+Tnew). При этом из очереди будут удалены все значения,
    которые сигнал должен был получить в момент T+Tnew и
    позже.
 Для инерционной задержки. Пусть в момент времени T
    выполняется последовательный оператор назначения сигнала
    A <= reject Tr inertial B after Tnew ns;
 где Tr – полоса пропускания сигнала (импульсы, короче Tr,
    отбрасываются).
 Тогда из очереди удаляются все значения, которые сигнал должен
    был получить в момент времени T+Tnew и позже. Затем
    анализируются будущие в диапазоне времени T+(Tnew-Tr) и
    T+Tnew. Из них в очереди остаются только будущие значения
    сигнала, непосредственно предшествующие и равные
    заносимому, остальные удаляются.

                                                                      14
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru       09.02.2011
Пример формирования очереди
       Пусть очередь драйвера сигнала А содержит несколько
        будущих значений. В момент времени 10 ns выполняется
        последовательный оператор назначения:
             A <= reject 5 ns inertial '1' after 8 ns;

Очередь драйвера до выполнения оператора
                                                               '1'@18 ns      Новое значение


'1'@11 ns 'X'@12 ns '1'@14 ns '0'@15 ns '1'@16 ns '1'@17 ns '1'@20 ns '0'@25 ns
    Остаются                                        Остаются               Удаляются

                     Интервал отражения сигналов (13 ns -- 18 ns)

Очередь драйвера после выполнения оператора

'1'@11 ns 'X'@12 ns '1'@16 ns '1'@17 ns ' 1 '@18 ns

                                                                                               15
   Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                             09.02.2011
Пример 1                                         Пример 2
Допустим, что следующие                           Допустим, что следующие
   последовательные операторы                        последовательные операторы
   выполняются в момент T:                           выполняются в момент T:
A <= transport B after 1 ns;                      A <= transport B after 2 ns;
A <= transport C after 2 ns;                      A <= transport C after 1 ns;
                                                           1 B @ T+ 2 ns
      B @ T+ 1 ns    C @ T+ 2 ns                           2 B @ T+ 2 ns   C @ T+ 1 ns
                                                           3 C @ T+ 1 ns




                            Пример 3
 Рассморим последовательные операторы, выполняемые в момент
    времени T:
    A <= B after 1 ns; -- используется инерционная задержка
    A <= C after 2 ns; -- используется инерционная задержка
                              1 B @ T+ 1 ns
                              2 B @ T+ 1 ns    C @ T+ 2 ns
                              3 C @ T+ 2 ns
                                                                                                 16
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                                 09.02.2011
Оператор wait без параметра
architecture test of test is
signal test0, test1: bit;
begin
   process is begin
          test0<='0' after 10 ns, '1' after 20 ns, '0' after 30 ns, '1' after 40 ns;
          test1<= '0' after 10 ns, '1' after 30 ns;
          wait;
   end process;
end;

architecture test of test is
signal test0, test1: bit;
begin
   process is begin
          test0<='0' after 10 ns, '1' after 20 ns, '0' after 30 ns, '1' after 40 ns;
          test1<= '0' after 10 ns, '1' after 30 ns;
          wait for 40 ns;
   end process;
   end;
                                                                                               17
   Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                             09.02.2011
Выводы
 1.     В VHDL существует два типа задержек:
        транспортная и инерционная.
 2.     Транспортная задержка моделирует
        поведение соединительных линий схемы, а
        инерционная – задержки на элементах.
 3.     Для каждого сигнала получающего
        значение создается драйвер, управляющей
        текущим и очередью будущих значений
        сигнала.
 4.     Если в процессе для одного сигнала
        записано несколько операторов назначения
        сигнала, последний все равно имеет только
        один драйвер.
                                                                  18
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011
Контрольные вопросы и задания (1)
1. Какие из приведенных результатов можно получить, моделируя
    устройство заданное VHDL кодом?
    entity INV is
     port (A :in BIT; Y :out BIT);
    end entity INV;                           A            A           A


    architecture INV of INV is     a)       b)          c)
                                              Y            Y           Y



          begin                                   5 ns         5 ns        5 ns



      Y <= transport A after 5 ns;
    end architecture INV;

2. Какие из приведенных результатов можно получить, моделируя
    устройство заданное VHDL кодом?
    entity INV is
     port (A :in BIT; Y :out BIT);
    end entity INV;
    architecture INV of INV is     a)       b)          c)
    begin                                     A
                                                           A               A

     Y <= A after 5 ns;                       Y
                                                           Y               Y

    end architecture INV;                         5 ns
                                                                5 ns
                                                                                  5 ns



                                                                                                 19
 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                                 09.02.2011
Контрольные вопросы и задания (2)
  3. В следующем VHDL-процессе A, B, C и D – целые числа, которые имеют
     значение 0 в момент времени 10 ns. Сигнал E переключается с '0' в '1' в момент
     20 ns. Определить время изменения каждого сигнала и получаемые им
     значения. Перечислить эти изменения в хронологическом порядке (20, 20 +  ,
     20 + 2 , ... .):


a)                             b)                              c)
p1: process                    p1: process                     p1: process
begin                          begin                           begin
   wait on E;                     wait on E;                      wait on E;
   A <= 1 after 5 ns ;            A <= 1 after 5 ns ;             A <= 1 after 5 ns ;
   B <= A + 1;                    B <= A + 1;                     B <= A + 1;
   C <= B after 10 ns;            C <= B after 10 ns;             C <= B after 10 ns;
   wait for 0 ns ;                wait for 10 ns ;                wait for 0 ns ;
   D <= B after 3 ns;             D <= B after 3 ns;              D <= B after 3 ns;
   A <= A + 5 after 15 ns;        A <= A + 5 after 15 ns;      transport A <= A + 5 after 15ns;
   B <= B + 7;                    B <= B + 7;                     B <= B + 7;
end process pi;                end process pi;                 end process pi;
                                                                                                20
     Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                            09.02.2011
Контрольные вопросы и задания (3)
4. Указать транзакции, занесенные в драйвер, при выполнении
    следующих операторов и значения, получаемые z во время
    моделирования:
         z <= transport '1' after 6 ns;
          wait for 3 ns;
        z <= transport '0' after 4 ns;
          wait for 5 ns;
        z <= transport '1' after 6 ns;
          wait for 1 ns;
        z <= transport '0' after 4 ns;
5. Какое будет иметь значение сигнал Е по окончании
    моделирования устройства.
    entity TEST is                            process (A,B,C)
    end entity TEST;                          begin
    architecture TEST of TEST is                E <= 3 + C;
     signal A,B,C : INTEGER :=1;                E <= A + B;
     signal E : INTEGER range 0 to 15;        end process;
    begin                                    end architecture TEST;
                                                                              21
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru               09.02.2011
Контрольные вопросы и задания (4)
6. Какое будет иметь значение                    7. Допустим, что A=B=1. Cигнал A
    сигнал S после инициализации                     измениться из 1 в 0 в момент
    и по окончании моделирования.                    времени 35 ns. Сколько циклов
                                                     моделирования будет
  library IEEE;                                      выполнено в этот момент
                                                     времени.
  use IEEE.STD_LOGIC_1164.all;                       entity TEST is
                                                       port (A: in BIT);
  entity TEST is                                     end entity;
  end entity TEST;
                                                      architecture TEST of TEST is
  architecture TEST of TEST is                           signal B,C: BIT;
        signal S: STD_LOGIC;                           begin
  begin                                                process (A) begin
   process (S)                                            B <= A;
    begin                                              end process;
        if S='U' then S<='Z'; end if;                  process (B) begin
        if S='Z' then S<='1'; end if;                     C <= B;
    end process;                                       end process;
  end architecture TEST;                              end architecture;
                                                                                             22
  Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                            09.02.2011
Контрольные вопросы и задания (5)

 8. Записать транзакции, которые будут занесены в очередь после
     выполнения следующих операторов и записать значения
     которые x получит во время моделирования. Начальное
     значение x равно 0.

     x <= reject 5 ns inertial 1 after 7 ns, 23 after 9 ns, 5 after 10 ns,
                                       23 after 12 ns, - 5 after 15 ns;
     wait for 6 ns;
     x <= reject 5 ns inertial 23 after 7 ns;




                                                                                     23
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru                      09.02.2011
Ответы
 4.




                                                                  24
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru   09.02.2011

More Related Content

What's hot (16)

1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)
Smolensk Computer Science Club
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
Iosif Itkin
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
Fedor Vompe
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФП
Alexander Granin
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
Alexey Paznikov
лабораторная работа 4
лабораторная работа 4лабораторная работа 4
лабораторная работа 4
Gulnaz Shakirova
язык програмирования
язык програмированияязык програмирования
язык програмирования
Olegmingalev1997
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
Alexey Paznikov
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программированияПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
Alexey Paznikov
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Alexey Paznikov
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Mikhail Kurnosov
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Platonov Sergey
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
Iosif Itkin
1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)
Smolensk Computer Science Club
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
Iosif Itkin
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФП
Alexander Granin
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
Alexey Paznikov
лабораторная работа 4
лабораторная работа 4лабораторная работа 4
лабораторная работа 4
Gulnaz Shakirova
язык програмирования
язык програмированияязык програмирования
язык програмирования
Olegmingalev1997
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
Alexey Paznikov
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программированияПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
Alexey Paznikov
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Alexey Paznikov
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Mikhail Kurnosov
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Platonov Sergey
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
Iosif Itkin

Viewers also liked (20)

2011 general research
2011 general research2011 general research
2011 general research
000175031
Lap
LapLap
Lap
Lim Wallace
2
22
2
Chandrakant Shinde
SME in Aruba
SME in ArubaSME in Aruba
SME in Aruba
Joost Jacobs
2011 general research
2011 general research2011 general research
2011 general research
000175031
http://chiropractor.inedwardsvilleillinois.com
http://chiropractor.inedwardsvilleillinois.comhttp://chiropractor.inedwardsvilleillinois.com
http://chiropractor.inedwardsvilleillinois.com
jknight22
Www.referat.ro luna.doc889ae
Www.referat.ro luna.doc889aeWww.referat.ro luna.doc889ae
Www.referat.ro luna.doc889ae
Alex Cojocaru
Congres voor Management Assistenten 2009 NL
Congres voor Management Assistenten 2009 NLCongres voor Management Assistenten 2009 NL
Congres voor Management Assistenten 2009 NL
annekonings
CRB Fotos Infantis CRB Fotos Infantis
CRB Fotos Infantis
Nelson Portela
Identidad Corporativa MetáforaIdentidad Corporativa Metáfora
Identidad Corporativa Metáfora
interesasoriano
Client based thinking
Client based thinkingClient based thinking
Client based thinking
miekearuba
Building a Sustainable Business
Building a Sustainable BusinessBuilding a Sustainable Business
Building a Sustainable Business
Kerr Center for Sustainable Agriculture
Presentacion de pruebaPresentacion de prueba
Presentacion de prueba
Rafael Rivadeneira Campodónico
Gvvv quiz finale
Gvvv quiz finaleGvvv quiz finale
Gvvv quiz finale
Ard van den Bovenkamp
Comac: extrusion technology for plastics
Comac: extrusion technology for plasticsComac: extrusion technology for plastics
Comac: extrusion technology for plastics
Pietro Zanotto

More from Irina Hahanova (13)

апкс 2011 08_verilog_макросы
апкс 2011 08_verilog_макросыапкс 2011 08_verilog_макросы
апкс 2011 08_verilog_макросы
Irina Hahanova
апкс 2011 07_синтез_verilog
апкс 2011 07_синтез_verilogапкс 2011 07_синтез_verilog
апкс 2011 07_синтез_verilog
Irina Hahanova
цсноп 2 11_4_архитектуры памяти
цсноп 2 11_4_архитектуры памятицсноп 2 11_4_архитектуры памяти
цсноп 2 11_4_архитектуры памяти
Irina Hahanova
цсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памятицсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памяти
Irina Hahanova
апкс 2011 06_проектирование арифметических устройств
апкс 2011 06_проектирование арифметических устройствапкс 2011 06_проектирование арифметических устройств
апкс 2011 06_проектирование арифметических устройств
Irina Hahanova
апкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолжапкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолж
Irina Hahanova
апкс 2011 01_введение
апкс 2011 01_введениеапкс 2011 01_введение
апкс 2011 01_введение
Irina Hahanova
моап 2011 01_введение
моап 2011 01_введениемоап 2011 01_введение
моап 2011 01_введение
Irina Hahanova
апкс 2011 08_verilog_макросы
апкс 2011 08_verilog_макросыапкс 2011 08_verilog_макросы
апкс 2011 08_verilog_макросы
Irina Hahanova
апкс 2011 07_синтез_verilog
апкс 2011 07_синтез_verilogапкс 2011 07_синтез_verilog
апкс 2011 07_синтез_verilog
Irina Hahanova
цсноп 2 11_4_архитектуры памяти
цсноп 2 11_4_архитектуры памятицсноп 2 11_4_архитектуры памяти
цсноп 2 11_4_архитектуры памяти
Irina Hahanova
цсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памятицсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памяти
Irina Hahanova
апкс 2011 06_проектирование арифметических устройств
апкс 2011 06_проектирование арифметических устройствапкс 2011 06_проектирование арифметических устройств
апкс 2011 06_проектирование арифметических устройств
Irina Hahanova
апкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолжапкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолж
Irina Hahanova
апкс 2011 01_введение
апкс 2011 01_введениеапкс 2011 01_введение
апкс 2011 01_введение
Irina Hahanova
моап 2011 01_введение
моап 2011 01_введениемоап 2011 01_введение
моап 2011 01_введение
Irina Hahanova

моап 2011 05

  • 1. Компиляция и моделирование VHDL-кода Языки описания аппаратуры Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: 1 hahanova@mail.ru 09.02.2011
  • 2. Цель лекции: Изучить принципы моделирования и тестирования VHDL- проектов  Содержание: 1. Компиляция, разработка, и моделирование VHDL - кода 2. Транспортная и инерционная задержки 3. Драйвер сигнала 4. Правило формирования очереди будущих значений сигнала 5. Оператор wait без параметра 2 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 3. Компиляция, разработка, и моделирование VHDL - кода 3 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 4. Транспортная и инерционная задержки (1) VHDL предлагает два типа задержек: транспортную и инерционную.  Транспортная соответствует модели задержек на проводниках схемы. Выходной сигнал повторяет в этом случае форму входного сигнала с задержкой на указанное время. Синтаксис: signal_name <= transport expression after delay-time  Инерционная моделирует задержку на вентилях или других устройствах, не пропускающих короткие импульсы входного сигнала на выход. Это задержка используется по умолчанию. Синтаксис: signal_name <= reject pulse-width [ inertial ] expression after delay-time 4 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 5. Транспортная и инерционная задержки (2) Z1<= transport X after 10 ns; -- транспортная задержка Z2 <= X after 10 ns; -- инерционная задержка Z3 <= reject 4 ns inertial X after 10 ns; -- задержка с заданной длиной -- отраженных импульсов 10 ns 3 ns 5 ns X 10 ns 2 ns Z1 Z2 Z3 0 10 20 30 40 50 5 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 6. Транспортная и инерционная задержки (3)  В общем случае, использование reject представляет собой совмещение инерционной и транспортной задержек. Например, выражение Z3 <= reject 4 ns inertial X after 10 ns может быть заменено следующими параллельными операторами:  использует инерционную задержку, отражающую короткие импульсы Zm <= X after 4 ns;  Транспортная задержка равна 6 ns, тогда общая задержка равна 10 ns Z3 <= transport Zm after 6 ns; 6 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 7. Драйвер сигнала entity simulation_example is Значения Текущее в очереди значение end simulation_example; architecture testi of После разработки A simulation_example is '0' time = 0 '0' B signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 7 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 8. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 8 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 9. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 9 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 10. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 10 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 11. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 11 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 12. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 12 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 13. Драйвер сигнала entity simulation_example is end simulation_example; architecture testi of simulation_example is signal A,B: bit; begin P1: process(B) begin A <= '1'; A <= transport '0' after 5 ns; end process P1; P2: process(A) begin if A = '1' then B <= not B after 10 n end if; end process P2 ; end testi; 13 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 14. Правило формирования очереди будущих значений сигнала Для транспортной задержки. Пусть в момент времени T выполняется последовательный оператор назначения сигнала A <= transport B after Tnew ns; В очередь драйвера заносится B со временем T+Tnew (B@T+Tnew). При этом из очереди будут удалены все значения, которые сигнал должен был получить в момент T+Tnew и позже. Для инерционной задержки. Пусть в момент времени T выполняется последовательный оператор назначения сигнала A <= reject Tr inertial B after Tnew ns; где Tr – полоса пропускания сигнала (импульсы, короче Tr, отбрасываются). Тогда из очереди удаляются все значения, которые сигнал должен был получить в момент времени T+Tnew и позже. Затем анализируются будущие в диапазоне времени T+(Tnew-Tr) и T+Tnew. Из них в очереди остаются только будущие значения сигнала, непосредственно предшествующие и равные заносимому, остальные удаляются. 14 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 15. Пример формирования очереди  Пусть очередь драйвера сигнала А содержит несколько будущих значений. В момент времени 10 ns выполняется последовательный оператор назначения: A <= reject 5 ns inertial '1' after 8 ns; Очередь драйвера до выполнения оператора '1'@18 ns Новое значение '1'@11 ns 'X'@12 ns '1'@14 ns '0'@15 ns '1'@16 ns '1'@17 ns '1'@20 ns '0'@25 ns Остаются Остаются Удаляются Интервал отражения сигналов (13 ns -- 18 ns) Очередь драйвера после выполнения оператора '1'@11 ns 'X'@12 ns '1'@16 ns '1'@17 ns ' 1 '@18 ns 15 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 16. Пример 1 Пример 2 Допустим, что следующие Допустим, что следующие последовательные операторы последовательные операторы выполняются в момент T: выполняются в момент T: A <= transport B after 1 ns; A <= transport B after 2 ns; A <= transport C after 2 ns; A <= transport C after 1 ns; 1 B @ T+ 2 ns B @ T+ 1 ns C @ T+ 2 ns 2 B @ T+ 2 ns C @ T+ 1 ns 3 C @ T+ 1 ns Пример 3 Рассморим последовательные операторы, выполняемые в момент времени T: A <= B after 1 ns; -- используется инерционная задержка A <= C after 2 ns; -- используется инерционная задержка 1 B @ T+ 1 ns 2 B @ T+ 1 ns C @ T+ 2 ns 3 C @ T+ 2 ns 16 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 17. Оператор wait без параметра architecture test of test is signal test0, test1: bit; begin process is begin test0<='0' after 10 ns, '1' after 20 ns, '0' after 30 ns, '1' after 40 ns; test1<= '0' after 10 ns, '1' after 30 ns; wait; end process; end; architecture test of test is signal test0, test1: bit; begin process is begin test0<='0' after 10 ns, '1' after 20 ns, '0' after 30 ns, '1' after 40 ns; test1<= '0' after 10 ns, '1' after 30 ns; wait for 40 ns; end process; end; 17 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 18. Выводы 1. В VHDL существует два типа задержек: транспортная и инерционная. 2. Транспортная задержка моделирует поведение соединительных линий схемы, а инерционная – задержки на элементах. 3. Для каждого сигнала получающего значение создается драйвер, управляющей текущим и очередью будущих значений сигнала. 4. Если в процессе для одного сигнала записано несколько операторов назначения сигнала, последний все равно имеет только один драйвер. 18 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 19. Контрольные вопросы и задания (1) 1. Какие из приведенных результатов можно получить, моделируя устройство заданное VHDL кодом? entity INV is port (A :in BIT; Y :out BIT); end entity INV; A A A architecture INV of INV is a) b) c) Y Y Y begin 5 ns 5 ns 5 ns Y <= transport A after 5 ns; end architecture INV; 2. Какие из приведенных результатов можно получить, моделируя устройство заданное VHDL кодом? entity INV is port (A :in BIT; Y :out BIT); end entity INV; architecture INV of INV is a) b) c) begin A A A Y <= A after 5 ns; Y Y Y end architecture INV; 5 ns 5 ns 5 ns 19 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 20. Контрольные вопросы и задания (2) 3. В следующем VHDL-процессе A, B, C и D – целые числа, которые имеют значение 0 в момент времени 10 ns. Сигнал E переключается с '0' в '1' в момент 20 ns. Определить время изменения каждого сигнала и получаемые им значения. Перечислить эти изменения в хронологическом порядке (20, 20 +  , 20 + 2 , ... .): a) b) c) p1: process p1: process p1: process begin begin begin wait on E; wait on E; wait on E; A <= 1 after 5 ns ; A <= 1 after 5 ns ; A <= 1 after 5 ns ; B <= A + 1; B <= A + 1; B <= A + 1; C <= B after 10 ns; C <= B after 10 ns; C <= B after 10 ns; wait for 0 ns ; wait for 10 ns ; wait for 0 ns ; D <= B after 3 ns; D <= B after 3 ns; D <= B after 3 ns; A <= A + 5 after 15 ns; A <= A + 5 after 15 ns; transport A <= A + 5 after 15ns; B <= B + 7; B <= B + 7; B <= B + 7; end process pi; end process pi; end process pi; 20 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 21. Контрольные вопросы и задания (3) 4. Указать транзакции, занесенные в драйвер, при выполнении следующих операторов и значения, получаемые z во время моделирования: z <= transport '1' after 6 ns; wait for 3 ns; z <= transport '0' after 4 ns; wait for 5 ns; z <= transport '1' after 6 ns; wait for 1 ns; z <= transport '0' after 4 ns; 5. Какое будет иметь значение сигнал Е по окончании моделирования устройства. entity TEST is process (A,B,C) end entity TEST; begin architecture TEST of TEST is E <= 3 + C; signal A,B,C : INTEGER :=1; E <= A + B; signal E : INTEGER range 0 to 15; end process; begin end architecture TEST; 21 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 22. Контрольные вопросы и задания (4) 6. Какое будет иметь значение 7. Допустим, что A=B=1. Cигнал A сигнал S после инициализации измениться из 1 в 0 в момент и по окончании моделирования. времени 35 ns. Сколько циклов моделирования будет library IEEE; выполнено в этот момент времени. use IEEE.STD_LOGIC_1164.all; entity TEST is port (A: in BIT); entity TEST is end entity; end entity TEST; architecture TEST of TEST is architecture TEST of TEST is signal B,C: BIT; signal S: STD_LOGIC; begin begin process (A) begin process (S) B <= A; begin end process; if S='U' then S<='Z'; end if; process (B) begin if S='Z' then S<='1'; end if; C <= B; end process; end process; end architecture TEST; end architecture; 22 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 23. Контрольные вопросы и задания (5) 8. Записать транзакции, которые будут занесены в очередь после выполнения следующих операторов и записать значения которые x получит во время моделирования. Начальное значение x равно 0. x <= reject 5 ns inertial 1 after 7 ns, 23 after 9 ns, 5 after 10 ns, 23 after 12 ns, - 5 after 15 ns; wait for 6 ns; x <= reject 5 ns inertial 23 after 7 ns; 23 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
  • 24. Ответы 4. 24 Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011