module robot (input logic clk, input logic reset, input logic sensor_l_in, input logic sensor_m_in, input logic sensor_r_in, output logic motor_l_pwm, output logic motor_r_pwm, output logic [20:0] count, output logic count_reset, output logic motor_l_reset, output logic motor_r_reset ); //logic count; logic motor_l_direction, motor_r_direction; logic sensor_l, sensor_m, sensor_r; inputbuffer inputbuffer_module( .clk(clk), .sensor_l_in(sensor_l_in), .sensor_r_in(sensor_r_in), .sensor_m_in(sensor_m_in), .sensor_l_out(sensor_l), .sensor_m_out(sensor_m), .sensor_r_out(sensor_r) ); timebase timebase_module( .clk(clk), .reset(count_reset), .count(count) ); controller control_module( .clk(clk), .reset(reset), .sensor_l(sensor_l), .sensor_m(sensor_m), .sensor_r(sensor_r), .count_in(count), .count_reset(count_reset), .motor_l_reset(motor_l_reset), .motor_l_direction(motor_l_direction), .motor_r_reset(motor_r_reset), .motor_r_direction(motor_r_direction) ); motorcontrol motorcontrol_l_module( .clk(clk), .rst(motor_l_reset), .direction(motor_l_direction), .count_in(count), .pwm(motor_l_pwm) ); motorcontrol motorcontrol_r_module( .clk(clk), .rst(motor_r_reset), .direction(motor_r_direction), .count_in(count), .pwm(motor_r_pwm) ); endmodule