- •1.Регистры
- •2. Счетчики
- •2.1 Классификация счетчиков
- •Двоичные счетчики
- •Последовательные (асинхронные счетчики)
- •2.3. Параллельные счетчики
- •2.4.Синтез двоичного реверсивного счетчика
- •2.5. Счетчик с асинхронной загрузкой параллельного кода
- •Описание счетчика на Verilog
- •Описание 8-битного реверсивного счетчика на Verilog
- •Построение счетчика с заданным модулем счета
- •Описание счетчика с модулем счета 5 на Verilog
- •3. Сдвигающие регистры
- •3.4.Сдвигающие регистры, реализованные в виде ис средней степени интеграции
- •Режимы работы сдвигающего регистра определяются комбинацией значений на управляющих входах микросхемы s1, s0. (Таб. 11 )
- •3.5.Устройство быстрого сдвига
- •4. Счетчики на сдвигающих регистраx
- •4.1 Кольцевые счетчики (Ring Counters)
- •4.2. Счетчик Джонсона
- •Полиномиальные счетчики
- •4.3.1. Некоторые определения и понятия из высшей алгебры
- •4.4. Генератор элементов поля Галуа (Galois lfsr)
- •4.8. Сравнение lfsr
- •1.Описание lfsr Галуа на Verilog
- •2. Описание lfsr Fibonacci на Verilog
- •4.9. Загрузка начального состояния в lfsr
1.Регистры
Регистр – набор двух или большего числа триггеров с общим входом тактового сигнала.
Предназначен для хранения слова информации.
Регистры строятся в основном на основе D-триггеров.
Примеры регистров (средние интегральные схемы)
1. Микросхема 74x 175 – четырехразрядный регистр на базе D-триггеров, управляемых фронтом синхросигнала, с асинхронным инверсным сбросом.
Условное графическое обозначение регистра приведено на рис.1
Рис. 1
Таблица истинности микросхемы (Таб.1)
Таб.1
Reset |
CLK |
D0 D1 D2 D3 |
Q0 Q1 Q2 Q3 |
Режим |
0 |
x |
x x x x |
0 0 0 0 |
Сброс |
1 |
|
D0 D1 D2 D3 |
D0 D1 D2 D3 |
Запись |
1 |
0 |
x x x x |
Q0lastQ1lastQ2lastQ3last |
Хранение |
1 |
1 |
x x x x |
Q0lastQ1lastQ2lastQ3last |
Хранение |
Схема регистра приведена на рис.2
C
D3
C
C
C
D
D
D
D
Q3
Q2
D2
Q1
Q0
D0
D1
CLK
CLK
CLK
CLK
Reset
CLK
Описание работы регистра на Verilog
module register(clk, data, reset, q);
input clk, reset;
input [3:0] data;
output [3:0] q;
reg [3:0] q;
always @(posedge clk or negedge reset)
if (!reset)
q<= 0;
else q<=data;
endmodule
2. Микросхема 74x 374 – восьмиразрядный регистр на базе D-триггеров, управляемых фронтом синхросигнала. Имеет инверсный вход “Output Enable” – OE. Низкий уровень сигнала на этом входе переводит выходы триггеров в высокоимпедансное состояние.
Рис.2
Таблица истинности микросхемы (Таб.2)
Таб.2
ОЕ |
CLK |
D0 ... D7 |
Q0 ... Q7 |
1 |
x |
x x x x |
z ... z |
0 |
|
D0 . . . D7 |
D0 ... D7 |
0 |
0 |
x x x x |
Q0last...Q7last |
1 |
1 |
x x x x |
Q0last....Ql7ast |
Рис.3 3.
Микросхема 74x 377 –
восьмиразрядный регистр на базе
D-триггеров, управляемых
фронтом синхросигнала с инверсным
входом разрешения синхронизации
EN. Рис.4
Описание работы регистра на Verilog
module register(clk, data, en, q);
input clk, reset;
input [3:0] data;
output [3:0] q;
reg [3:0] q;
always @(posedge clk )
if (!en)
q<= data;
else q<=q;
endmodule
4. Микросхема 74x373 – восьмиразрядный регистр (8 защелок) с инверсным входом разрешения выхода
Рис. 5 Verilog описание регистра
module Latch_8 (clk, oe, data,q);
input clk, oe;
input [0:7] data;
output [0:7] q;
reg [0:7] q;
reg [0:7] i_q; //internal signal vector
always @(clk or data)
if(clk==1) i_q<=data;
else i_q<=i_q;
assign q = (oe==0)? i_q : 8’bz;
endmodule
Рис. 6
5.Описание на Verilog 16-разрядного регистра с инверсным входом асинхронного сброса, с инверсным входом разрешения выхода (output enable) и входом разрешения синхронизации clk_en.
module reg_16(clk, clk_en, oe, reset, data,q);
input clk, clk_en, oe, reset;
input [0:15] data;
output [0:15] q;
reg [0:15] q;
reg [0:15] inter_q;
always @(posedge clk or negedge reset)
if (reset==0) inter_q<=16’b0;
else if (clk_en==1) inter_q<=data;
else inter_q<=inter_q;
assign q = (oe==0)? inter_q : 16’bz;
endmodule
