- •Исполнители: Модуль rs_ff — асинхронный rs-триггер
- •Модуль d_latch — d-защелка
- •Модуль d_ff — d-триггер
- •Модуль jk_ff — jk-триггер
- •Модуль t_ff — t-триггер
- •* Модуль wrapper_ff — обертка для триггеров
- •Исполнители
- •Модуль par_rg — параллельный регистр
- •Модуль shift_rg — последовательный регистр
- •Модуль buf_rg — буферный регистр
- •Модуль shiftpar_rg — последовательно-параллельный регистр
- •Модуль parshift_rg — параллельно-последовательный регистр
- •Модуль ring_rg — кольцевой регистр
- •* Модуль wrapper_rg — обертка для регистров
- •Исполнители
- •Модуль inc_cnt — суммирующий счетчик
- •Модуль dec_cnt — вычитающий счетчик
- •Модуль rev_cnt — реверсивный счетчик
- •Модуль load_rev_cnt — реверсивный счетчик с загрузкой значений
- •Модуль div_cnt — делитель частоты
- •Модуль debounce_cnt — антидребезговый счетчик
- •Модуль pll_cnt — модуль фапч
- •* Модуль wrapper_cnt — обертка для счетчиков
- •Исполнители заключение
|
E21FA ПОСЛЕДОВАТЕЛЬНОСТНЫЕ ЦИФРОВЫЕ УСТРОЙСТВА (FF, LATCH, RG, CNT) |
ъыъ.рф/ыуеЕ |
Исполнители: Модуль rs_ff — асинхронный rs-триггер
<Описание устройства> |
|
Описание на Verilog <Код> module rs_ff( input R, S, output reg Q, nQ); always @(S,R) begin if (~ S) begin Q <= 1'b1; nQ <= !(R & Q); end if (~ R) begin nQ <= 1'b1; Q <= !(S & nQ); end if (~ R & ~ S) begin nQ <= 1; Q <= 1; end end endmodule
1 – запрещенное 2 – сброшен 3 – хранение 4 – установлен
|
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
Модуль d_latch — d-защелка
<Описание устройства> |
|
Описание на Verilog <Код> module d_latch ( input R, S, D, C, output reg Q, nQ ); always @ (S, R, D, C) begin if (~S) begin Q <= 1'b1; nQ <= !(R & Q); end if (~R) begin nQ <= 1'b1; Q <= !(S & nQ); end if (~R & ~S) begin nQ <= 1'b1; Q <= 1'b1; end if (C & R & S) begin Q <= D; nQ <= !D; end if (~C & R & S) begin Q <= Q; nQ <= nQ; end end endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
Модуль d_ff — d-триггер
<Описание устройства> |
|
Описание на Verilog <Код> module d_ff ( input R, S, D, C, output reg Q, nQ ); always @ (negedge S or negedge R or posedge C) begin if (~R) if (S) begin nQ <= 1'b1; Q <= ~nQ; end else begin nQ <= 1'b1; Q <= 1'b1; end else if (~S) if (R) begin Q <= 1'b1; nQ <= ~Q; end else begin Q <= 1'b1; nQ <= 1'b1; end else begin Q <=D; nQ <= ~D; end end endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
