add shift_register

This commit is contained in:
Jose Luis Montañes Ojados
2026-03-01 02:22:06 +01:00
parent 9ff7d002c1
commit 5cc4b5adf4
3 changed files with 73 additions and 1 deletions

View File

@@ -0,0 +1,48 @@
`include "./shift_register/shift_register.v"
module shift_register_tb;
reg clk, rst, load, shift_en, dir, serial_in;
reg [7:0] parallel_in;
wire [7:0] q;
wire serial_out;
shift_register register(
.clk(clk),
.rst(rst),
.load(load),
.shift_en(shift_en),
.dir(dir),
.serial_in(serial_in),
.parallel_in(parallel_in),
.q(q),
.serial_out(serial_out)
);
initial clk = 0;
always #5 clk = ~clk;
initial begin
$dumpfile("./shift_register/shift_register.vcd");
$dumpvars(0, shift_register_tb);
rst = 1; load = 0; shift_en = 1; dir = 0; serial_in = 0;
@(posedge clk);
$display("rst=%b, load=%b, shift_en=%b, dir=%b, serial_in=%b, q=%b", rst, load, shift_en, dir, serial_in, q);
rst = 0; load = 1; parallel_in = 64;
@(posedge clk);
$display("rst=%b, load=%b, shift_en=%b, dir=%b, serial_in=%b, q=%b", rst, load, shift_en, dir, serial_in, q);
load = 0; serial_in = 1;
@(posedge clk);
$display("rst=%b, load=%b, shift_en=%b, dir=%b, serial_in=%b, q=%b", rst, load, shift_en, dir, serial_in, q);
repeat(10) @(posedge clk);
$display("rst=%b, load=%b, shift_en=%b, dir=%b, serial_in=%b, q=%b", rst, load, shift_en, dir, serial_in, q);
$finish;
end
endmodule