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

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 54 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Технология » Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 4)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    54 слайда
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    1.37 MB
  • Просмотров:
    81
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Содержание слайда:

№2 слайд
Содержание слайда:

№3 слайд
Содержание слайда:

№4 слайд
Содержание слайда:

№5 слайд
Языки описания аппаратуры HDL
Содержание слайда: Языки описания аппаратуры (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 слайд
Содержание слайда:

№7 слайд
Содержание слайда:

№8 слайд
Содержание слайда:

№9 слайд
Содержание слайда:

№10 слайд
Содержание слайда:

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

№12 слайд
Содержание слайда:

№13 слайд
Содержание слайда:

№14 слайд
module and input logic a,
Содержание слайда: 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 mux input logic d , d
Содержание слайда: 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
Содержание слайда: 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 слайд
Содержание слайда:

№18 слайд
Содержание слайда:

№19 слайд
Содержание слайда:

№20 слайд
module mux input logic d , d
Содержание слайда: 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 слайд
Содержание слайда:

№22 слайд
module example input logic a,
Содержание слайда: 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,
Содержание слайда: 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 слайд
Содержание слайда:

№25 слайд
Содержание слайда:

№26 слайд
Содержание слайда:

№27 слайд
Содержание слайда:

№28 слайд
Содержание слайда:

№29 слайд
Содержание слайда:

№30 слайд
Содержание слайда:

№31 слайд
Содержание слайда:

№32 слайд
Содержание слайда:

№33 слайд
Содержание слайда:

№34 слайд
Содержание слайда:

№35 слайд
Содержание слайда:

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

№37 слайд
Содержание слайда:

№38 слайд
Содержание слайда:

№39 слайд
Содержание слайда:

№40 слайд
module divideby FSM input
Содержание слайда: 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);

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

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

№44 слайд
Написать System Verilog код
Содержание слайда: Написать 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 testbench module
Содержание слайда: 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 testbench module
Содержание слайда: 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 Файл: example.tv Содержит вектора abc_yexpected 000_1 001_0 010_0 011_0 100_1 101_1 110_0 111_0

№50 слайд
module testbench module
Содержание слайда: 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 считывает файл тестовых векторов, // записанных в шестнадцатеричном представлении

№52 слайд
подача тестовых векторов по
Содержание слайда: // подача тестовых векторов по переднему фронту // подача тестовых векторов по переднему фронту // синхросигнала 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});

№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.

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