// Blink an LED provided an input clock /* module */ module top (hwclk, mosi, led1, led2, led3, led4, led5, led6, led7, led8, clkout , out); /* I/O */ input hwclk; input mosi; output led1; output led2; output led3; output led4; output led5; output led6; output led7; output led8; output clkout; output out; wire clkout; /* Counter register */ reg [31:0] counter = 32'b0; reg [8:0] shiftreg = 9'b1; /* LED drivers */ assign led1 = shiftreg[0]; assign led2 = shiftreg[1]; assign led3 = shiftreg[2]; assign led4 = shiftreg[3]; assign led5 = shiftreg[4]; assign led6 = shiftreg[5]; assign led7 = shiftreg[6]; assign led8 = shiftreg[7]; assign clkout = hwclk; assign out = shiftreg[8]; /* always */ always @ (negedge hwclk) begin shiftreg = (shiftreg << 1) + mosi; end endmodule