Презентация Цифровая схемотехника и архитектура компьютера. Языки описания аппаратуры. (Глава 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
- Автор:неизвестен
Слайды и текст к этой презентации:
№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)
№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
№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
№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
№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);
№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
№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
№47 слайд
Содержание слайда: Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов
Файл тестовых векторов: входные сигналы и ожидаемые состояния выходов
Среда тестирования:
Формирование тактового сигнала для изменения входов, считывание выходных сигналов
Считывание тестовых векторов из файла в буферный массив для последующей подачи их на входы
Присвоение значении входным сигналам, определение ожидаемых значений выходных сигналов
Сравнение реальных значений выходных сигналов с ожидаемыми и формирование списка ошибок
№48 слайд
Содержание слайда: Среда тестирования, тактовый сигнал:
Среда тестирования, тактовый сигнал:
Изменение входных сигналов по переднему фронту тактового сигнала
Сравнение состояний выходов с ожидаемыми значениями по заднему фронту тактового сигнала
Тактовый сигнал среды тестирования также используется для синхронизации последовательностных схем
№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
№51 слайд
Содержание слайда: // при запуске теста загрузка векторов и генерация сигнала сброса
// при запуске теста загрузка векторов и генерация сигнала сброса
initial
begin
$readmemb("example.tv", testvectors);
vectornum = 0; errors = 0;
reset = 1; #27; reset = 0;
end
// Примечание: $readmemh считывает файл тестовых векторов,
// записанных в шестнадцатеричном представлении
№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) одним архивом:
-
Цифровая схемотехника и архитектура компьютера. Проектирование последовательностной логики. (Глава 3)
-
Цифровая схемотехника и архитектура компьютера. Цифровые функциональные узлы. (Глава 5)
-
Цифровая схемотехника и архитектура компьютера. Микроархитектура. (Глава 7)
-
Цифровая схемотехника и архитектура компьютера. Иеархия памяти и подсистема ввода-вывода. (Глава 8)
-
Цифровая схемотехника и архитектура компьютера
-
Цифровая схемотехника. Память компьютера. Полупроводниковая память
-
Архитектура компьютерных систем
-
Введение в архитектуру персональных компьютеров
-
Схемотехнические основы компьютера
-
Intel Core I7 негізіндегі компьютерлік архитектура