73816

Анализ устройств цифровой электроники на структурном уровне представления в системах моделирования VLSI-SIM и MODELSIM

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Как видно из результатов моделирования схемы в VLSI-SIM и ModelSim, временные диаграммы совпадают. За исключением небольших скачков, которые наблюдались в VLSI-SIM, а в ModelSim они пропали.

Русский

2014-12-20

2.26 MB

1 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ  БЕЛАРУСЬ

БЕЛОРУССКИЙ  ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет компьютерных технологий и систем

Кафедра ЭВМ

 

 

 

ПАНАРАД СЕРГЕЙ ВЛАДИМИРОВИЧ

ВМИС

Анализ устройств цифровой электроники на структурном уровне представления в системах моделирования VLSI-SIM и MODELSIM

Отчёт по лабораторной работе №4

(вариант 17)

студента 3 курса 221902 группы

 

Преподаватель

  

Воронов Александр Анатольевич,

доцент кафедры ЭВМ

 

Минск 2014

1) Приведем структурную схему моделируемого объекта с учетом

представления логических элементов в соответствии с ГОСТом:

Рис. 1. Структурная схема моделируемого объекта

    2.1) Опишем цифровое устройство на языке системы VLSI-SIM:

circuit lab4;

    inputs x1(1), x2(1), x3(1), x4(1);

    outputs c1(1), y2(1), y3(1), y4(1);

gates

    a1 'not' (1) x3(1);

    a2 'not' (1) y3(1);

    b1 'not' (1) a2(1);

    b2 'noa2' (1) x1(1), a1(1), x2(1);

    b3 'nmx2' (1) a1(1), x1(1), x2(1);

    b4 'not' (1) x1(1);

    b5 'not' (1) y2(1);

    b6 'not' (1) x2(1);

    c1 'no3' (1) b2(1), x4(1), b1(1);

    c2 'na2' (1) x1(1), b6(1);

    c3 'not' (1) a2(1);

    c4 'na3' (1) b3(1), x4(1), b5(1);

    c5 'na3o2' (1) x3(1), b4(1), b6(1), x4(1);

    y4 'nao22' (1) x3(1), c3(1), c1(1), c2(1);

    y3 'nao3' (1) c4(1), b4(1), x3(1), x4(1);

    y2 'not' (1) c5(1);

endgates

end

2.2) Выполним трансляцию описания схемы

Рис. 2. Трансляция описания схемы

2.3) Выполним 3 попытки построения теста контроля объекта случайным образом

2.4) Проведем моделирование объекта на лучшем из полученных тестов

Рис. 3. Временная диаграмма

3) Опишем цифровое устройство на структурном уровне на языке VHDL

na3o2.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY na3o2 IS

  port (A,B,C,D: in STD_LOGIC; Y: out STD_LOGIC);

END na3o2;

ARCHITECTURE arc_na3o2 OF na3o2 IS

BEGIN

  Y <= not (A and B and (C or D)) after 4 ns;

END arc_na3o2;

noa2.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY noa2 IS

  port (A,B,C: in STD_LOGIC; Y: out STD_LOGIC);

END noa2;

ARCHITECTURE arc_noa2 OF noa2 IS

BEGIN

  Y <= not (A or (B and C)) after 3 ns;

END arc_noa2;

no3.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY no3 IS

  port (A,B,C: in STD_LOGIC; Y: out STD_LOGIC);

END no3;

ARCHITECTURE arc_no3 OF no3 IS

BEGIN

  Y <= not (A or B or C) after 4 ns;

END arc_no3;

nmx2.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY nmx2 IS

  port (A,B,V: in STD_LOGIC; Y: out STD_LOGIC);

END nmx2;

ARCHITECTURE arc_nmx2 OF nmx2 IS

BEGIN

  Y <= not ((A or not V) and (B or V)) after 6 ns;

END arc_nmx2;

nao3.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY nao3 IS

  port (A,B,C,D: in STD_LOGIC; Y: out STD_LOGIC);

END nao3;

ARCHITECTURE arc_nao3 OF nao3 IS

BEGIN

  Y <= not (A and (B or C or D)) after 5 ns;

END arc_nao3;

na2.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY na2 IS

  port (A,B: in STD_LOGIC; Y: out STD_LOGIC);

END na2;

ARCHITECTURE arc_na2 OF na2 IS

BEGIN

  Y <= not (A and B) after 2 ns;

END arc_na2;

invertor.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY invertor IS

  port (A: in STD_LOGIC; Y: out STD_LOGIC);

END invertor;

ARCHITECTURE arc_invertor OF invertor IS

BEGIN

  Y <= not A after 1 ns;

END arc_invertor;

nao22.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY nao22 IS

  port (A,B,C,D: in STD_LOGIC; Y: out STD_LOGIC);

END nao22;

ARCHITECTURE arc_nao22 OF nao22 IS

BEGIN

  Y <= not ((A or B)and (C or D)) after 3 ns;

END arc_nao22;

na3.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY na3 IS

  port (A,B,C: in STD_LOGIC; Y: out STD_LOGIC);

END na3;

ARCHITECTURE arc_na3 OF na3 IS

BEGIN

  Y <= not (A and B and C) after 3 ns;

END arc_na3;

circuit.vhd

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY circuit IS

  PORT (x1, x2, x3, x4: in std_logic;

  y1, y2, y3: inout std_logic;

  y4: out std_logic);

END circuit ;

ARCHITECTURE arc_circuit OF circuit IS

  component invertor

     port (A: in std_logic;

     Y: out std_logic);

  end component;

  component noa2

     port (A,B,C: in std_logic;

     Y: out std_logic);

  end component;

  component nmx2

     port (A,B,V: in std_logic;

     Y: out std_logic);

  end component;

  component no3

     port (A,B,C: in std_logic;

     Y: out std_logic);

  end component;

  component na2

     port (A,B: in std_logic;

     Y: out std_logic);

  end component;

  component na3

     port (A,B,C: in std_logic;

     Y: out std_logic);

  end component;

  component na3o2

     port (A,B,C,D: in std_logic;

     Y: out std_logic);

  end component;

  component nao22

     port (A,B,C,D: in std_logic;

     Y: out std_logic);

  end component;

  component nao3

     port (A,B,C,D: in std_logic;

     Y: out std_logic);

  end component;

signal a1, a2, b1, b2, b3, b4, b5, b6, c2, c3, c4, c5: std_logic;

BEGIN

  g1: invertor port map(x3, a1);

  g2: invertor port map(y3, a2);

  g3: invertor port map(a2, b1);

  g4: noa2 port map(x1, a1, x2, b2);

  g5: nmx2 port map(a1, x1, x2, b3);

  g6: invertor port map(x1, b4);

  g7: invertor port map(y2, b5);

  g8: invertor port map(x2, b6);

  g9: no3 port map(b2, x4, b1, y1);

  g10: na2 port map(x1, b6, c2);

  g11: invertor port map(a2, c3);

  g12: na3 port map(b3, x4, b5, c4);

  g13: na3o2 port map(x3, b4, b6, x4, c5);

  g14: nao22 port map(x3, c3, y1, c2, y4);

  g15: nao3 port map(c4, b4, x3, x4, y3);

  g16: invertor port map(c5,y2);

END arc_circuit;

3.1) Подготовим блок Testbench для отладки объекта, при этом

используя тест, полученный в части 1 задания

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

ENTITY circuit_test is  

END circuit_test;

ARCHITECTURE  bench OF circuit_test IS

  component circuit

     port(x1, x2, x3, x4: in std_logic;

     y4: out std_logic; y1, y2, y3:inout std_logic);

  end component;

signal x1, x2, x3, x4, y1, y2, y3, y4: std_logic;

BEGIN

x1 <= '1','0' after 100 ns,'1' after 300 ns,'0' after 400 ns,'1' after 800 ns,'0' after 1000 ns, '1' after 1100 ns;

x2 <= '0','1' after 100 ns,'0' after 200 ns,'1' after 300 ns, '0' after 400 ns, '1' after 600 ns, '0' after 800 ns;

x3 <= '0','1' after 300 ns,'0' after 400 ns,'1' after 500 ns,'0' after 600 ns, '1' after 700 ns, '0' after 1100 ns;

x4 <= '1','0' after 200 ns,'1' after 300 ns,'0' after 600 ns,'1' after 700 ns,'0' after 900 ns;

M:circuit port map(x1, x2, x3, x4, y4, y1, y2, y3);      

END bench;

3.2) Выполним компиляцию описания

Рис. 4. Компиляция описания

3.3) Выполним моделирование объекта на заданном тесте

3.4) Сравним результаты моделирования объекта в двух системах моделирования

Вывод:

Как видно из результатов моделирования схемы в VLSI-SIM и ModelSim,  временные диаграммы совпадают. За исключением небольших скачков, которые наблюдались в VLSI-SIM, а в ModelSim они пропали. Это происходит из-за того, что в ModelSim мы проводили моделирование с учетом внутренних задержек элементов.


 

А также другие работы, которые могут Вас заинтересовать

22927. Поняття рангу 47.5 KB
  В довільній системі векторів a1a2am візьмемо всі лінійно незалежні підсистеми. Число векторів в цій фіксованій підсистемі будемо називати рангом системи векторів a1 a2 am . Таким чином рангом системи векторів називається максимальна кількість лінійно незалежних векторів в системі. Зрозуміло що ранг лінійно незалежної системи дорівнює числу всіх векторів в системі.
22928. Поняття рангу матриці 28 KB
  Ранг системи векторів a1 a2 am називається горизонтальним рангом матриці або рангом матриці за рядками і позначається . Стовпчики матриці A можна розглядати як m вимірні вектори b1 b2bn з дійсними координатами елементи простору Rm. Ранг системи векторів b1 b2bn називається вертикальним рангом матриці A або рангом матриці A за стовпчиками і позначається rbA.
22929. Поняття базисного мінору 15.5 KB
  Припустимо Поняття базисного мінору. Припустимо Δr деякий мінор порядку r матриці A r≤mr≤n. Мінор порядку r1 матриці називається оточуючим для мінора Δr якщо його матриця містить в собі матрицю мінору Δr .
22930. Існування базисного мінора 21 KB
  Для мінора Δ1 складаються всі можливі оточуючі мінори. Для цього послідовно до мінора Δ1 дописуються всі можливі рядки і всі можливі стовпчики. Якщо всі оточуючі мінори дорівнюють нулю то за означенням мінор Δ1 базисний і процес закінчується . Для мінора Δ2 складаються всі можливі оточуючі мінори послідовно дописуючи всі можливі рядки і стовпчики.
22931. Теорема про базисний мінор та її наслідки 87 KB
  Нехай мінор Δr порядку r є базисним мінором ненульової матриці. Тоді рядки матриці на яких будується мінор Δr лінійно незалежі; всі інші рядки матриці лінійно виражаються через них. Не втрачаючи загальності міркувань можна вважати що базисний мінор будується на перетині перших r рядків і r стовпчиків матриці . Можна вважати що a11 інакше для того щоб це виконалось можна переставити перші r рядків матриці A і при цьому умови теореми не змінюються.
22932. Теорема про ранг матриці 21 KB
  Для будь якої матриці її горизонтальний та вертикальний ранги рівні та співпадають з рангом матриці за мінорами . Це означає що порядок базисного мінора матриці дорівнює k . За теоремою про базисний мінор k рядків матриці A на яких будується базисний мінор лінійно незалежні а решта рядків лінійно виражаються через них.
22933. Методи обчислення визначників n порядку 761.5 KB
  Поняття визначника nго порядку. Числа aіj називаються елементами визначника . Добуток 5536 є одним з добутків визначника  оскільки серед його співмножників є по одному і лише по одному елементу з кожного рядка і кожного стовпчика визначника. Аналітичний запис визначника.
22935. ВКАЗІВНИКИ 53.5 KB
  1 довжина рядка int strlen char s { int i; for i=0; s= 0; s i; return i; } int strlen char s[] { int i; for i=0; s[i]= 0; i ; return i; } int strlen char s { int i; for i=0; s; s i; s трактується як булевий вираз s=0 означає лжу s=0 означає істину return i; }...