Компиляция и
моделирование 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

PDF
моап 2011 04
PPTX
ветвление.условный оператор.циклы
PDF
Java Memory Model
PDF
20090222 parallel programming_lecture01-07
PPT
021
PPT
практика 4
PDF
A System of Deductive Verification of Predicate Programs
PDF
Probabilistic Verification in Computational Systems Design
моап 2011 04
ветвление.условный оператор.циклы
Java Memory Model
20090222 parallel programming_lecture01-07
021
практика 4
A System of Deductive Verification of Predicate Programs
Probabilistic Verification in Computational Systems Design

What's hot (16)

PDF
апкс 2011 04_verilog
PDF
1 встреча — Параллельное программирование (А. Свириденков)
PDF
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
PDF
Cpp0x Introduction
PDF
Дизайн больших приложений в ФП
PDF
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
DOC
020
PPT
лабораторная работа 4
PPT
язык програмирования
PDF
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
PDF
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
PDF
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
PDF
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
PPTX
Евгений Зуев, С++ в России: Стандарт языка и его реализация
PDF
TMPA-2013 Dmitry Zaitsev
апкс 2011 04_verilog
1 встреча — Параллельное программирование (А. Свириденков)
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
Cpp0x Introduction
Дизайн больших приложений в ФП
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
020
лабораторная работа 4
язык програмирования
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 4. Шаблоны многопоточного программирования
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Евгений Зуев, С++ в России: Стандарт языка и его реализация
TMPA-2013 Dmitry Zaitsev
Ad

Viewers also liked (20)

PDF
2011 general research
PPT
PPSX
PPTX
SME in Aruba
DOCX
2011 general research
PPTX
http://chiropractor.inedwardsvilleillinois.com
DOC
Www.referat.ro luna.doc889ae
PDF
Congres voor Management Assistenten 2009 NL
PPT
Aldf
PPTX
CRB Fotos Infantis
PDF
Identidad Corporativa Metáfora
PPTX
Client based thinking
PDF
Building a Sustainable Business
PDF
Profes mova med
PPTX
Presentacion de prueba
PPT
Cambio climatico
PDF
моап 2011 02_active_1
PPT
Gvvv quiz finale
PDF
Comac: extrusion technology for plastics
2011 general research
SME in Aruba
2011 general research
http://chiropractor.inedwardsvilleillinois.com
Www.referat.ro luna.doc889ae
Congres voor Management Assistenten 2009 NL
Aldf
CRB Fotos Infantis
Identidad Corporativa Metáfora
Client based thinking
Building a Sustainable Business
Profes mova med
Presentacion de prueba
Cambio climatico
моап 2011 02_active_1
Gvvv quiz finale
Comac: extrusion technology for plastics
Ad

More from Irina Hahanova (13)

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

моап 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