
- •Логические функции (1,2,3 выводные). Законы де Моргана.
- •Минимизация функций алгебры логики (фал). Разложение фал в различных базисах.
- •Язык конфигурирования программируемых логических схем Verilog.
- •Основные конструкции языка (описать, пример использования)
- •Реализация комбинационной логики на Verilog
- •Формальное определение
- •Способы задания
- •Автомат Мили
- •Автомат Мура
- •Реализация секвенциальной логики на Verilog
- •Автомат Мили
- •Автомат Мура
- •Реализация дешифраторов/шифраторов (2 варианта)
- •Реализация мультиплексоров
- •Реализация счетчиков (модули счета, пропуск состояний)
- •Реализация регистров (обычных, сдвиговых)
- •Реализация цифровых автоматов (Мура)
- •Реализация цифровых автоматов (Милли)
- •Реализация генератора последовательностей.
- •Реализация мультивибратора.
- •Реализация одновибратора.
- •Процессор виды, способы реализации. Микропроцессор. Микропроцессорная система. Трехшинная архитектура микропроцессорных систем.
- •Виды процессоров:
- •Назначение шин следующее:
- •Необходимость создания программного цифрового автомата. Гарвардская архитектура (достоинства недостатки).
- •Способы реализации стековой памяти.
- •Машинный такт, цикл. Блок- схема машинного цикла.
- •Проблема выбора структуры и формата команд.
- •Недостатки cisc архитектуры
- •Характерные особенности risc-процессоров
- •Группы команд. Реализаций групп команд в различных архитектурах.
- •Структура микроконтроллера c8051f411
Реализация генератора последовательностей.
Используется генератор М-последовательностей. Используемый примитивный полином: f(x)= x^5+x^3+1.
module CRC5_D8;
// polynomial: (0 3 5)
// data width: 8
// convention: the first serial bit is D[7]
function [4:0] nextCRC5_D8;
input [7:0] Data;
input [4:0] crc;
reg [7:0] d;
reg [4:0] c;
reg [4:0] newcrc;
begin
d = Data;
c = crc;
newcrc[0] = d[6] ^ d[5] ^ d[4] ^ d[2] ^ d[0] ^ c[1] ^ c[2] ^ c[3];
newcrc[1] = d[7] ^ d[6] ^ d[5] ^ d[3] ^ d[1] ^ c[0] ^ c[2] ^ c[3] ^ c[4];
newcrc[2] = d[7] ^ d[6] ^ d[4] ^ d[2] ^ c[1] ^ c[3] ^ c[4];
newcrc[3] = d[7] ^ d[6] ^ d[4] ^ d[3] ^ d[2] ^ d[0] ^ c[0] ^ c[1] ^ c[3] ^ c[4];
newcrc[4] = d[7] ^ d[5] ^ d[4] ^ d[3] ^ d[1] ^ c[0] ^ c[1] ^ c[2] ^ c[4];
nextCRC5_D8 = newcrc;
end
endfunction
endmodule
Реализация мультивибратора.
Этот черный ящик будет запоминать значение a или b в момент подачи на него сигнала clock.
Что именно он запомнит, будет зависеть от значения управляющего сигнала switch. При подаче сигнала reset модуль все забудет и станет выдавать 0.
module trig(clock, a, b, switch, reset, out); input clock, reset; //Тактовая частота и сброс input a, b; //Входы input switch; //Управляющий сигнал
output out; //Выход триггера. Здесь будет то, что он запомнил reg out; //Пояснили, что это кусочек памяти
wire in; assign in = switch ? a : b; //Жесткая привязка assign in = a; //RS-триггер, где Set - это «a», а Reset - «reset»
always @(posedge clock or posedge reset) //Если пришел клок или ресет if (reset) //Если ресет, то обнуляем выход out <= 0; else if (in==1) //Иначе обновляем значение out <= in; endmodule
Реализация одновибратора.
Одновибраторы ("ждущие мультивибраторы", английское название "Monostable Multivibrator") представляют собой микросхемы, которые в ответ на входной сигнал (логический уровень или фронт) формируют выходной импульс заданной длительности. Длительность определяется внешними времязадающими резисторами и конденсаторами. То есть можно считать, что у одновибраторов есть внутренняя память, но эта память хранит информацию о входном сигнале строго заданное время, а потом информация исчезает. На схемах одновибраторы обозначаются буквами G1.
В стандартные серии микросхем входят одновибраторы двух основных типов (отечественное обозначение функции микросхемы - АГ):
Одновибраторы без перезапуска (АГ1 - одиночный одновибратор, АГ4 - два одновибратора в корпусе).
Одновибраторы с перезапуском (АГ3 - два одновибратора в корпусе).
Разница между этими двумя типами иллюстрируется рис. 6.10. Одновибратор без перезапуска не реагирует на входной сигнал до окончания своего выходного импульса. Одновибратор с перезапуском начинает отсчет нового времени выдержки Т с каждым новым входным сигналом независимо от того, закончилось ли предыдущее время выдержки. В случае, когда период следования входных сигналов меньше времени выдержки Т, выходной импульс одновибратора с перезапуском не прерывается. Если период следования входных запускающих импульсов больше времени выдержки одновибратора Т, то оба типа одновибраторов работают одинаково.
Рис. 6.10. Принцип работы одновибраторов без перезапуска и с перезапуском
module OnePulse(Clk,St,D,Ou); parameter M=8; input Clk,St; input [M-1:0] D; output Ou; reg [M-1:0] rCount; reg rS,rR; assign Ou=rR; //синхронизируем запуск к фронту Clk always @(posedge St or posedge rR) begin if (rR) rS<=0; else rS<=1; end //одновибратор always @(posedge Clk) begin if (~rR) rCount<=D; else rCount<=rCount-1; if (rS) rR<=1; else if (rCount==0 && rR) rR<=0; end endmodule