🗊Презентация Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4)

Категория: Технология
Нажмите для полного просмотра!
Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №1Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №2Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №3Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №4Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №5Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №6Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №7Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №8Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №9Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №10Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №11Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №12Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №13Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №14Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №15Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №16Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №17Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №18Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №19Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №20Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №21Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №22Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №23Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №24Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №25Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №26Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №27Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №28Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №29Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №30Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №31Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №32Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №33Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №34Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №35Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №36Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №37Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №38Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №39Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №40Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №41Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №42Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №43Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №44Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №45Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №46Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №47Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №48Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №49Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №50Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №51Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №52Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №53Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №54

Содержание

Вы можете ознакомиться и скачать презентацию на тему Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4). Доклад-сообщение содержит 54 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №1
Описание слайда:

Слайд 2


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №2
Описание слайда:

Слайд 3


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №3
Описание слайда:

Слайд 4


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №4
Описание слайда:

Слайд 5





Языки описания аппаратуры (HDL): 
Языки описания аппаратуры (HDL): 
Определяют функциональность проектируемого устройства
Средства САПР синтезируют оптимизированные схему устройства, состоящую из логических элементов
Большинство коммерческих проектов построено с использованием языков HDL
Два лидирующих языка HDL:
SystemVerilog
Разработан в 1984 году компанией Gateway Design Automation
Стандарт IEEE standard (1364) – в 1995
Расширенный стандарт – в 2005 (IEEE STD 1800-2009)
VHDL 2008
Разработан в 1981 министерством обороны 
Стандарт IEEE standard (1076) – в 1987
Обновлен в 2008 (IEEE STD 1076-2008)
Описание слайда:
Языки описания аппаратуры (HDL): Языки описания аппаратуры (HDL): Определяют функциональность проектируемого устройства Средства САПР синтезируют оптимизированные схему устройства, состоящую из логических элементов Большинство коммерческих проектов построено с использованием языков HDL Два лидирующих языка HDL: SystemVerilog Разработан в 1984 году компанией Gateway Design Automation Стандарт IEEE standard (1364) – в 1995 Расширенный стандарт – в 2005 (IEEE STD 1800-2009) VHDL 2008 Разработан в 1981 министерством обороны Стандарт IEEE standard (1076) – в 1987 Обновлен в 2008 (IEEE STD 1076-2008)

Слайд 6


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №6
Описание слайда:

Слайд 7


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №7
Описание слайда:

Слайд 8


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №8
Описание слайда:

Слайд 9


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №9
Описание слайда:

Слайд 10


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №10
Описание слайда:

Слайд 11





Чувствительный к регистру символов
Чувствительный к регистру символов
Пример: reset и Reset не одно и то же.
Имена не могут начинаться с цифры Пример: 2mux – некорректное имя
Пробелы игнорируются
Комментарии:
// однострочный комментарий
/* многострочный
       комментарий */
Описание слайда:
Чувствительный к регистру символов Чувствительный к регистру символов Пример: reset и Reset не одно и то же. Имена не могут начинаться с цифры Пример: 2mux – некорректное имя Пробелы игнорируются Комментарии: // однострочный комментарий /* многострочный комментарий */

Слайд 12


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №12
Описание слайда:

Слайд 13


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №13
Описание слайда:

Слайд 14





module and8(input  logic [7:0] a, 
module and8(input  logic [7:0] a, 
            output logic       y);
   assign y = &a;
   // &a is much easier to write than
   // assign y = a[7] & a[6] & a[5] & a[4] &
   //            a[3] & a[2] & a[1] & a[0];
endmodule
Описание слайда:
module and8(input logic [7:0] a, module and8(input logic [7:0] a, output logic y); assign y = &a; // &a is much easier to write than // assign y = a[7] & a[6] & a[5] & a[4] & // a[3] & a[2] & a[1] & a[0]; endmodule

Слайд 15





module mux2(input  logic [3:0] d0, d1, 
module mux2(input  logic [3:0] d0, d1, 
            input  logic       s,
            output logic [3:0] y);
   assign y = s ? d1 : d0; 
endmodule
?: также называется тернарным оператором потому, что он имеет 3 входа: s, d1 и d0.
Описание слайда:
module mux2(input logic [3:0] d0, d1, module mux2(input logic [3:0] d0, d1, input logic s, output logic [3:0] y); assign y = s ? d1 : d0; endmodule ?: также называется тернарным оператором потому, что он имеет 3 входа: s, d1 и d0.

Слайд 16





module fulladder(input  logic a, b, cin, 
module fulladder(input  logic a, b, cin, 
                 output logic s, cout);
  logic p, g;   // internal nodes
  assign p = a ^ b;
  assign g = a & b;
  
  assign s = p ^ cin;
  assign cout = g | (p & cin);
endmodule
Описание слайда:
module fulladder(input logic a, b, cin, module fulladder(input logic a, b, cin, output logic s, cout); logic p, g; // internal nodes assign p = a ^ b; assign g = a & b; assign s = p ^ cin; assign cout = g | (p & cin); endmodule

Слайд 17


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №17
Описание слайда:

Слайд 18


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №18
Описание слайда:

Слайд 19


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №19
Описание слайда:

Слайд 20






module mux2_8(input  logic [7:0] d0, d1,
              input  logic       s,
              output logic [7:0] y);
  mux2 lsbmux(d0[3:0], d1[3:0], s, y[3:0]);
  mux2 msbmux(d0[7:4], d1[7:4], s, y[7:4]);
endmodule
Описание слайда:
module mux2_8(input logic [7:0] d0, d1, input logic s, output logic [7:0] y); mux2 lsbmux(d0[3:0], d1[3:0], s, y[3:0]); mux2 msbmux(d0[7:4], d1[7:4], s, y[7:4]); endmodule

Слайд 21


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №21
Описание слайда:

Слайд 22





module example(input  logic a, b, c,
module example(input  logic a, b, c,
               output logic y);
  logic ab, bb, cb, n1, n2, n3;
  assign #1 {ab, bb, cb} = ~{a, b, c};
  assign #2 n1 = ab & bb & cb;
  assign #2 n2 = a & bb & cb;
  assign #2 n3 = a & bb & c;
  assign #4 y = n1 | n2 | n3;
endmodule
Описание слайда:
module example(input logic a, b, c, module example(input logic a, b, c, output logic y); logic ab, bb, cb, n1, n2, n3; assign #1 {ab, bb, cb} = ~{a, b, c}; assign #2 n1 = ab & bb & cb; assign #2 n2 = a & bb & cb; assign #2 n3 = a & bb & c; assign #4 y = n1 | n2 | n3; endmodule

Слайд 23





module example(input  logic a, b, c,
module example(input  logic a, b, c,
               output logic y);
  logic ab, bb, cb, n1, n2, n3;
  assign #1 {ab, bb, cb} = 
                  ~{a, b, c};
  assign #2 n1 = ab & bb & cb;
  assign #2 n2 = a & bb & cb;
  assign #2 n3 = a & bb & c;
  assign #4 y = n1 | n2 | n3;
endmodule
Описание слайда:
module example(input logic a, b, c, module example(input logic a, b, c, output logic y); logic ab, bb, cb, n1, n2, n3; assign #1 {ab, bb, cb} = ~{a, b, c}; assign #2 n1 = ab & bb & cb; assign #2 n2 = a & bb & cb; assign #2 n3 = a & bb & c; assign #4 y = n1 | n2 | n3; endmodule

Слайд 24


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №24
Описание слайда:

Слайд 25


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №25
Описание слайда:

Слайд 26


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №26
Описание слайда:

Слайд 27


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №27
Описание слайда:

Слайд 28


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №28
Описание слайда:

Слайд 29


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №29
Описание слайда:

Слайд 30


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №30
Описание слайда:

Слайд 31


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №31
Описание слайда:

Слайд 32


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №32
Описание слайда:

Слайд 33


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №33
Описание слайда:

Слайд 34


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №34
Описание слайда:

Слайд 35


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №35
Описание слайда:

Слайд 36





<= неблокирующее присваивание 
<= неблокирующее присваивание 
Выполняется одновременно с другими 
= блокирующее присваивание 
Выполняется в порядке, описанном в файле
Описание слайда:
<= неблокирующее присваивание <= неблокирующее присваивание Выполняется одновременно с другими = блокирующее присваивание Выполняется в порядке, описанном в файле

Слайд 37


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №37
Описание слайда:

Слайд 38


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №38
Описание слайда:

Слайд 39


Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4), слайд №39
Описание слайда:

Слайд 40





module divideby3FSM (input  logic clk, 
module divideby3FSM (input  logic clk, 
                     input  logic reset, 
                     output logic q);
   typedef enum logic [1:0] {S0, S1, S2} statetype;
   statetype [1:0] state, nextstate;  
 
   // регистр состояний
   always_ff @ (posedge clk, posedge reset)
      if (reset) state <= S0;
      else       state <= nextstate;
   // логика следующего состояния
   always_comb
      case (state)
         S0:      nextstate = S1;
         S1:      nextstate = S2;
         S2:      nextstate = S0;
         default: nextstate = S0;
      endcase
   // логика выходных сигналов
   assign q = (state == S0);
endmodule
Описание слайда:
module divideby3FSM (input logic clk, module divideby3FSM (input logic clk, input logic reset, output logic q); typedef enum logic [1:0] {S0, S1, S2} statetype; statetype [1:0] state, nextstate; // регистр состояний always_ff @ (posedge clk, posedge reset) if (reset) state <= S0; else state <= nextstate; // логика следующего состояния always_comb case (state) S0: nextstate = S1; S1: nextstate = S2; S2: nextstate = S0; default: nextstate = S0; endcase // логика выходных сигналов assign q = (state == S0); endmodule

Слайд 41





2:1 мультиплексор:
2:1 мультиплексор:
module mux2
  #(parameter width = 8)  // name and default value
   (input  logic [width-1:0] d0, d1, 
    input  logic             s,
    output logic [width-1:0] y);
  assign y = s ? d1 : d0; 
endmodule 
Пример с 8-битной шиной (используется по умолчанию):
  mux2 mux1(d0, d1, s, out);
Пример с 12-битной шиной :
	mux2 #(12) lowmux(d0, d1, s, out);
Описание слайда:
2:1 мультиплексор: 2:1 мультиплексор: module mux2 #(parameter width = 8) // name and default value (input logic [width-1:0] d0, d1, input logic s, output logic [width-1:0] y); assign y = s ? d1 : d0; endmodule Пример с 8-битной шиной (используется по умолчанию): mux2 mux1(d0, d1, s, out); Пример с 12-битной шиной : mux2 #(12) lowmux(d0, d1, s, out);

Слайд 42





HDL модуль, который тестирует другой модуль: тестируемое устройство (DUT)
HDL модуль, который тестирует другой модуль: тестируемое устройство (DUT)
Не предназначена для синтеза 
Типы:
Простая
С самопроверкой 
С самопроверкой и тестовыми векторами
Описание слайда:
HDL модуль, который тестирует другой модуль: тестируемое устройство (DUT) HDL модуль, который тестирует другой модуль: тестируемое устройство (DUT) Не предназначена для синтеза Типы: Простая С самопроверкой С самопроверкой и тестовыми векторами

Слайд 43





Написать System Verilog код для аппаратной реализации следующей функции: 
Написать System Verilog код для аппаратной реализации следующей функции: 
			y = bc + ab
Имя модуля sillyfunction
Описание слайда:
Написать System Verilog код для аппаратной реализации следующей функции: Написать System Verilog код для аппаратной реализации следующей функции: y = bc + ab Имя модуля sillyfunction

Слайд 44





Написать System Verilog код для аппаратной реализации следующей функции: 
Написать System Verilog код для аппаратной реализации следующей функции: 
			y = bc + ab
module sillyfunction(input  logic a, b, c, 
                     output logic y);
  assign y = ~b & ~c | a & ~b;
endmodule
Описание слайда:
Написать System Verilog код для аппаратной реализации следующей функции: Написать System Verilog код для аппаратной реализации следующей функции: y = bc + ab module sillyfunction(input logic a, b, c, output logic y); assign y = ~b & ~c | a & ~b; endmodule

Слайд 45





module testbench1();
module testbench1();
  logic a, b, c;
  logic y;
  // экземпляр проверяемого устройства
  sillyfunction dut(a, b, c, y);
  // последовательно формируются значения
  // сигналов на входах 
initial begin
    a = 0; b = 0; c = 0; #10;
    c = 1; #10;
    b = 1; c = 0; #10;
    c = 1; #10;
    a = 1; b = 0; c = 0; #10;
    c = 1; #10;
    b = 1; c = 0; #10;
    c = 1; #10;
  end
endmodule
Описание слайда:
module testbench1(); module testbench1(); logic a, b, c; logic y; // экземпляр проверяемого устройства sillyfunction dut(a, b, c, y); // последовательно формируются значения // сигналов на входах initial begin a = 0; b = 0; c = 0; #10; c = 1; #10; b = 1; c = 0; #10; c = 1; #10; a = 1; b = 0; c = 0; #10; c = 1; #10; b = 1; c = 0; #10; c = 1; #10; end endmodule

Слайд 46





module testbench2();
module testbench2();
  logic  a, b, c;
  logic y;
  sillyfunction dut(a, b, c, y);  // экземпляр dut
  initial begin // последовательно формируются значения сигналов 
// на входах и анализирует результат тестирования на выходах 
	a = 0; b = 0; c = 0; #10;
    if (y !== 1) $display("000 failed.");
    c = 1; #10;
    if (y !== 0) $display("001 failed.");
    b = 1; c = 0; #10;
    if (y !== 0) $display("010 failed.");
    c = 1; #10;
    if (y !== 0) $display("011 failed.");
    a = 1; b = 0; c = 0; #10;
    if (y !== 1) $display("100 failed.");
    c = 1; #10;
    if (y !== 1) $display("101 failed.");
    b = 1; c = 0; #10;
    if (y !== 0) $display("110 failed.");
    c = 1; #10;
    if (y !== 0) $display("111 failed.");
  end
endmodule
Описание слайда:
module testbench2(); module testbench2(); logic a, b, c; logic y; sillyfunction dut(a, b, c, y); // экземпляр dut initial begin // последовательно формируются значения сигналов // на входах и анализирует результат тестирования на выходах a = 0; b = 0; c = 0; #10; if (y !== 1) $display("000 failed."); c = 1; #10; if (y !== 0) $display("001 failed."); b = 1; c = 0; #10; if (y !== 0) $display("010 failed."); c = 1; #10; if (y !== 0) $display("011 failed."); a = 1; b = 0; c = 0; #10; if (y !== 1) $display("100 failed."); c = 1; #10; if (y !== 1) $display("101 failed."); b = 1; c = 0; #10; if (y !== 0) $display("110 failed."); c = 1; #10; if (y !== 0) $display("111 failed."); end endmodule

Слайд 47





Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов
Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов
Среда тестирования:
Формирование тактового сигнала для изменения входов, считывание выходных сигналов
Считывание тестовых векторов из файла в буферный массив для последующей подачи их на входы
Присвоение значении входным сигналам, определение ожидаемых значений выходных сигналов
Сравнение реальных значений выходных сигналов с ожидаемыми и формирование списка ошибок
Описание слайда:
Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов Среда тестирования: Формирование тактового сигнала для изменения входов, считывание выходных сигналов Считывание тестовых векторов из файла в буферный массив для последующей подачи их на входы Присвоение значении входным сигналам, определение ожидаемых значений выходных сигналов Сравнение реальных значений выходных сигналов с ожидаемыми и формирование списка ошибок

Слайд 48





Среда тестирования, тактовый сигнал: 
Среда тестирования, тактовый сигнал: 
Изменение входных сигналов по переднему фронту тактового сигнала
Сравнение состояний выходов с ожидаемыми значениями по заднему фронту тактового сигнала
Тактовый сигнал среды тестирования также используется для синхронизации последовательностных схем
Описание слайда:
Среда тестирования, тактовый сигнал: Среда тестирования, тактовый сигнал: Изменение входных сигналов по переднему фронту тактового сигнала Сравнение состояний выходов с ожидаемыми значениями по заднему фронту тактового сигнала Тактовый сигнал среды тестирования также используется для синхронизации последовательностных схем

Слайд 49





Файл: example.tv 
Файл: example.tv 
Содержит вектора abc_yexpected
000_1
001_0
010_0
011_0
100_1
101_1
110_0
111_0
Описание слайда:
Файл: example.tv Файл: example.tv Содержит вектора abc_yexpected 000_1 001_0 010_0 011_0 100_1 101_1 110_0 111_0

Слайд 50





module testbench3();
module testbench3();
  logic        clk, reset;
  logic        a, b, c, yexpected;
  logic        y;
  logic [31:0] vectornum, errors;    // bookkeeping variables
  logic [3:0]  testvectors[10000:0]; // array of testvectors
  
  // создание экземпляра тестируемого устройства
  sillyfunction dut(a, b, c, y);
  
  // генерация тактового сигнала
  always     // no sensitivity list, so it always executes
    begin
      clk = 1; #5; clk = 0; #5;
    end
Описание слайда:
module testbench3(); module testbench3(); logic clk, reset; logic a, b, c, yexpected; logic y; logic [31:0] vectornum, errors; // bookkeeping variables logic [3:0] testvectors[10000:0]; // array of testvectors // создание экземпляра тестируемого устройства sillyfunction dut(a, b, c, y); // генерация тактового сигнала always // no sensitivity list, so it always executes begin clk = 1; #5; clk = 0; #5; end

Слайд 51





 // при запуске теста загрузка векторов и генерация сигнала сброса
 // при запуске теста загрузка векторов и генерация сигнала сброса
initial
    begin
      $readmemb("example.tv", testvectors);
      vectornum = 0; errors = 0;
      reset = 1; #27; reset = 0;
    end
// Примечание: $readmemh считывает файл тестовых векторов, 
// записанных в шестнадцатеричном представлении
Описание слайда:
// при запуске теста загрузка векторов и генерация сигнала сброса // при запуске теста загрузка векторов и генерация сигнала сброса initial begin $readmemb("example.tv", testvectors); vectornum = 0; errors = 0; reset = 1; #27; reset = 0; end // Примечание: $readmemh считывает файл тестовых векторов, // записанных в шестнадцатеричном представлении

Слайд 52





  // подача тестовых векторов по переднему фронту
  // подача тестовых векторов по переднему фронту
  // синхросигнала
  always @(posedge clk)
    begin
      #1; {a, b, c, yexpected} = testvectors[vectornum];
    end
Описание слайда:
// подача тестовых векторов по переднему фронту // подача тестовых векторов по переднему фронту // синхросигнала always @(posedge clk) begin #1; {a, b, c, yexpected} = testvectors[vectornum]; end

Слайд 53





// проверка результатов по заднему фронту синхросигнала
// проверка результатов по заднему фронту синхросигнала
   always @(negedge clk)
    if (~reset) begin // skip during reset
      if (y !== yexpected) begin  
        $display("Error: inputs = %b", {a, b, c});
        $display("  outputs = %b (%b expected)",y,yexpected);
        errors = errors + 1;
      end
// Примечание: для вывода на печать в шестнадцатеричном коде
// (hexadecimal), используйте %h. Например,
//       $display(“Error: inputs = %h”, {a, b, c});
Описание слайда:
// проверка результатов по заднему фронту синхросигнала // проверка результатов по заднему фронту синхросигнала always @(negedge clk) if (~reset) begin // skip during reset if (y !== yexpected) begin $display("Error: inputs = %b", {a, b, c}); $display(" outputs = %b (%b expected)",y,yexpected); errors = errors + 1; end // Примечание: для вывода на печать в шестнадцатеричном коде // (hexadecimal), используйте %h. Например, // $display(“Error: inputs = %h”, {a, b, c});

Слайд 54





// инкремент индекса массива и считывание очередного 
// инкремент индекса массива и считывание очередного 
// тестового вектора
      vectornum = vectornum + 1;
      if (testvectors[vectornum] === 4'bx) begin 
          $display("%d tests completed with %d errors", 
                vectornum, errors);
        $finish;
      end
    end
endmodule
// === and !== can compare values that are 1, 0, x, or z.
Описание слайда:
// инкремент индекса массива и считывание очередного // инкремент индекса массива и считывание очередного // тестового вектора vectornum = vectornum + 1; if (testvectors[vectornum] === 4'bx) begin $display("%d tests completed with %d errors", vectornum, errors); $finish; end end endmodule // === and !== can compare values that are 1, 0, x, or z.



Похожие презентации
Mypresentation.ru
Загрузить презентацию