Verilog: Shift Register with feedback loop
You have a reset signal in your code, but you never actually assert it.

Without that, the simulator cannot put the FFs into a known state, so they just show "unknown" forever.

Assigning values to your q wires in the testbench is useless &mdash; that just conflicts with the values that the dffs are trying to produce.