Скачиваний:
0
Добавлен:
16.06.2026
Размер:
2.53 Mб
Скачать

Модуль jk_ff — jk-триггер

<Описание устройства>

Описание на Verilog

<Код>

module jk_ff (

input R, S, C, K, J,

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 <= nQ & J | Q & ~K;

nQ <= nQ & ~J | Q & K;

end

end

endmodule

RTL-схема

<RTL-схема>

Временная диаграмма

Модуль t_ff — t-триггер

<Описание устройства>

Описание на Verilog

<Код>

module t_ff (

input R, S, C, T,

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 <= nQ & T | Q & ~T;

nQ <= nQ & ~T | Q & T;

end

end

endmodule

RTL-схема

<RTL-схема>

Временная диаграмма

* Модуль wrapper_ff — обертка для триггеров

<Описание устройства>

module wrapper_ff (

input R, S, C, D, J, K, T,

output RSQ, RSnQ, DLQ, DLnQ, DQ, DnQ, JKQ, JKnQ, TQ, TnQ

);

rs_ff inst0 (.R(R), .S(S), .Q(RSQ), .nQ(RSnQ));

d_latch inst1 (.R(R), .S(S), .D(D), .C(C), .Q(DLQ), .nQ(DLnQ));

d_ff inst2 (.R(R), .S(S), .D(D), .C(C), .Q(DQ), .nQ(DnQ));

jk_ff inst3 (.R(R), .S(S), .K(K), .C(C), .J(J), .Q(JKQ), .nQ(JKnQ));

t_ff inst4 (.R(R), .S(S), .T(T), .C(C), .Q(TQ), .nQ(TnQ));

endmodule

RTL-схема

<RTL-схема>