- •Исполнители: Модуль 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 — обертка для счетчиков
- •Исполнители заключение
Исполнители
<фото исполнителей>
Модуль par_rg — параллельный регистр
<Описание устройства> |
|
Описание на Verilog <Код> module par_rg #( parameter N=4 ) ( input [N-1:0] D, input clk, R, S, output [N-1:0] Q );
reg [N-1:0] rq;
assign Q = rq;
always @(posedge clk, negedge R, negedge S) if (~R) rq <= {N{1'b0}}; else if (~S) rq <= {N{1'b1}}; else rq <= D; endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
|
|
Модуль shift_rg — последовательный регистр
<Описание устройства> |
|
Описание на Verilog <Код> module shift_rg #( parameter N=4 ) ( input D, input clk, R, S, output Q );
reg [N-1:0] rq;
assign Q = rq[N-1];
always @(posedge clk, negedge R, negedge S) if (~R) rq <= {N{1'b0}}; else if (~S) rq <= {N{1'b1}}; else rq <= {rq[N-2:0], D}; endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
Модуль buf_rg — буферный регистр
<Описание устройства> |
|
Описание на Verilog <Код> module buf_rg #( parameter N=4 ) ( input [N-1:0] D, input clk, R, S, wr, rd, output [N-1:0] Q );
reg [N-1:0] rq;
assign Q = rd ? rq : {N{1'bz}};
always @(posedge clk, negedge R, negedge S) if (~R) rq <= {N{1'b0}}; else if (~S) rq <= {N{1'b1}}; else if (~wr) rq <= rq; else rq <= D; endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
Модуль shiftpar_rg — последовательно-параллельный регистр
<Описание устройства> |
|
Описание на Verilog <Код> module shiftpar_rg #( parameter N=4 ) ( input [N-1:0] D, input clk, R, S, rd, output [N-1:0] Q );
reg [N-1:0] rq;
assign Q = rd ? rq : {N{1'bz}};
always @(posedge clk, negedge R, negedge S) if (~R) rq <= {N{1'b0}}; else if (~S) rq <= {N{1'b1}}; else rq <= {rq[N-2:0], D}; endmodule |
RTL-схема <RTL-схема>
|
Временная диаграмма
|
|
