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

Исполнители

<фото исполнителей>

Модуль 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-схема>

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