Compare commits

..

No commits in common. "7d77b821ccc21bc4166a83617c88415852a2c4f0" and "bffcd940f685ff4ef05c5e84026bae244f9fe256" have entirely different histories.

30 changed files with 19 additions and 702 deletions

4
.gitignore vendored
View File

@ -1,4 +0,0 @@
/*
.wlf
work/*
!.sv

View File

@ -1,78 +0,0 @@
/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module timebase
Top level modules:
timebase
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module robot
Top level modules:
robot
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module inputbuffer
Top level modules:
inputbuffer
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module blinking_led
Top level modules:
blinking_led
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module motorcontrol
Top level modules:
motorcontrol
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module robot_tb
Top level modules:
robot_tb
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module blinking_led_tb
Top level modules:
blinking_led_tb
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module timebase_tb
Top level modules:
timebase_tb
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module motorcontrol_tb
Top level modules:
motorcontrol_tb
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module controller
Top level modules:
controller
} {} {}} /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv {1 {vlog -work work -vopt -sv -stats=none /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv
QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
-- Compiling module motorcontrol_mich
Top level modules:
motorcontrol_mich
} {} {}}

View File

@ -834,7 +834,7 @@ Resolution = ns
UserTimeUnit = default
; Default run length
RunLength = 360 ms
RunLength = 100
; Maximum iterations that can be run without advancing simulation time
IterationLimit = 10000000
@ -2108,29 +2108,27 @@ suppress = 8780 ;an explanation can be had by running: verror 8780
Project_Version = 6
Project_DefaultLib = work
Project_SortMethod = unused
Project_Files_Count = 11
Project_Files_Count = 10
Project_File_0 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv
Project_File_P_0 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 last_compile 1740405912 folder {Top Level} cover_branch 0 cover_fsm 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 9 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_P_0 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 0 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 1 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 9 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_1 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv
Project_File_P_1 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 folder {Top Level} cover_branch 0 cover_fsm 0 last_compile 1740008019 vlog_noload 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 8 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_1 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 0 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 1 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 8 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_2 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv
Project_File_P_2 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1740496574 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 7 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_2 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 0 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 1 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 7 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_3 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv
Project_File_P_3 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 last_compile 1740008019 folder {Top Level} cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 6 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_3 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 0 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 1 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 6 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_4 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv
Project_File_P_4 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1739890971 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_4 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 last_compile 0 vlog_noload 0 cover_branch 0 folder {Top Level} vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 1 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 0 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_5 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv
Project_File_P_5 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 folder {Top Level} last_compile 1739989146 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 4 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_P_5 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 last_compile 0 vlog_noload 0 cover_branch 0 folder {Top Level} vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 1 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 4 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_6 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv
Project_File_P_6 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1739890970 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 3 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_6 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 last_compile 0 vlog_noload 0 cover_branch 0 folder {Top Level} vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 1 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 3 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_7 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv
Project_File_P_7 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 last_compile 1740496451 folder {Top Level} cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 2 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_7 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 last_compile 0 vlog_noload 0 cover_branch 0 folder {Top Level} vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 1 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 2 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_8 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv
Project_File_P_8 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1739890973 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 1 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_9 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv
Project_File_P_9 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 last_compile 1740495519 folder {Top Level} cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 10 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_10 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv
Project_File_P_10 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1740674203 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 5 cover_expr 0 dont_compile 0 cover_stmt 0
Project_File_P_8 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 last_compile 0 vlog_noload 0 cover_branch 0 folder {Top Level} vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 1 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 1 dont_compile 0 cover_expr 0 cover_stmt 0
Project_File_9 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv
Project_File_P_9 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 0 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 1 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 5 cover_expr 0 dont_compile 0 cover_stmt 0
Project_Sim_Count = 0
Project_Folder_Count = 0
Echo_Compile_Output = 0

View File

@ -1,7 +1,2 @@
# LineFollower-DSB
Code for the line follower for the TU Delft course Digital Systems B (24-25)
- [x] Deliverable 1, motor control and timebase.
- [x] Deliverable 2, full integration.
- [x] Deliverable 3, robot test.

View File

@ -6,7 +6,7 @@ module controller
input logic sensor_m,
input logic sensor_r,
input logic [20:0] count_in,
input logic [?:0] count_in,
output logic count_reset,
output logic motor_l_reset,
@ -15,110 +15,7 @@ module controller
output logic motor_r_reset,
output logic motor_r_direction);
// actual FSM control
typedef enum logic [2:0] { off, sharp_left, gentle_left, forward, gentle_right, sharp_right } controller_state;
controller_state state,next_state;
always_ff @(posedge clk) begin
if(reset)begin
state <= off;
end
else begin
state <= next_state;
end
end
//state logic
always_comb begin
case(state)
off:
case ({sensor_l,sensor_m,sensor_r})
3'b000:
next_state = forward;
3'b001:
next_state = gentle_left;
3'b010:
next_state = forward;
3'b011:
next_state = sharp_left;
3'b100:
next_state = gentle_right;
3'b101:
next_state = forward;
3'b110:
next_state = sharp_right;
3'b111:
next_state = forward;
endcase
sharp_left,
sharp_right,
forward,
gentle_left,
gentle_right:
if(count_in==?2000000) next_state=off;
else next_state=state;
endcase
end
//output logic
always_comb begin
case(state)
off:
begin
motor_l_reset=1;
motor_r_reset=1;
end
forward:
begin
motor_l_direction=1;
motor_r_direction=0;
motor_l_reset=0;
motor_r_reset=0;
end
gentle_left:
begin
motor_l_direction=0;
motor_r_direction=0;
motor_l_reset=1;
motor_r_reset=0;
end
sharp_left:
begin
motor_l_direction=0;
motor_r_direction=0;
motor_l_reset=0;
motor_r_reset=0;
end
gentle_right:
begin
motor_l_direction=1;
motor_r_direction=0;
motor_l_reset=0;
motor_r_reset=1;
end
sharp_right:
begin
motor_l_direction=1;
motor_r_direction=1;
motor_l_reset=0;
motor_r_reset=0;
end
default:
begin
motor_l_reset=1;
motor_r_reset=1;
end
endcase
end
always_comb //counter reset logic
begin
if(!(state==?off))
count_reset = 0;
else begin
count_reset = 1;
end
end
endmodule

View File

@ -7,25 +7,6 @@ module inputbuffer
output logic sensor_m_out,
output logic sensor_r_out);
logic [2:0] sensor_reg;
logic buffer_l,buffer_m,buffer_r;
always_ff @(posedge clk)begin
sensor_reg <= {sensor_l_in,sensor_m_in,sensor_r_in};
end
always_ff @(posedge clk)begin
{sensor_l_out,sensor_m_out,sensor_r_out} <= sensor_reg;
end
//always_ff @(posedge clk)begin
// buffer_l <= sensor_reg[0];
// buffer_m <= sensor_reg[1];
// buffer_r <= sensor_reg[2];
//end
//assign sensor_l_out = buffer_l;
//assign sensor_m_out = buffer_m;
//assign sensor_r_out = buffer_r;
endmodule

View File

@ -1,81 +1,10 @@
module motorcontrol
(input logic clk,
input logic reset,
input logic direction,
input logic [20:0] count_in,
input logic [?:0] count_in,
output logic pwm);
// typedef enum logic [1:0] { motor_off, motor_cw, motor_ccw } motor_controller_state;
// motor_controller_state state,next_state;
//
// always_ff @(posedge clk)
// if (reset)
// state <= motor_off;
// else
// state <= next_state;
//
// always_comb //state logic
// begin
// if(direction ==? 0)
// next_state = motor_ccw;
// else
// next_state = motor_cw;
// end
//
// always_comb //PWM logic
// begin
// case(state)
// motor_off:
// pwm=0;
// motor_ccw:
// begin
// if(count_in <= 100000)
// pwm=1;
// else
// pwm=0;
// end
// motor_cw:
// begin
// if(count_in <= 200000 )
// pwm=1;
// else
// pwm=0;
// end
// endcase
//
// end
typedef enum logic { pwm_off, pwm_on } motor_controller_state;
motor_controller_state state,next_state;
always_ff @(posedge clk) begin
if(reset)
state<=pwm_off;
else
state<= next_state;
end
always_comb begin
case(state)
pwm_off:
begin
pwm=0;
if(count_in ==? 0) begin
next_state=pwm_on;
end
end
pwm_on:
begin
pwm=1;
if((direction ==? 0) && (count_in >= 100000)) begin //CCW
next_state=pwm_off;
end
else if((direction ==? 1) && (count_in >= 200000)) begin //CW
next_state=pwm_off;
end
else
next_state=pwm_on;
end
endcase
end
endmodule

View File

@ -8,28 +8,7 @@ module robot
output logic motor_l_pwm,
output logic motor_r_pwm);
//timebase
logic [20:0] counter;
logic counter_reset;
logic direction_l,direction_r,rst_l,rst_r;
logic sensor_l,sensor_m,sensor_r;
timebase tb(.clk(clk),.reset(counter_reset),.count(counter));
//input buffer
inputbuffer ib(.clk(clk),
.sensor_l_in(sensor_l_in),.sensor_m_in(sensor_m_in),.sensor_r_in(sensor_r_in),
.sensor_l_out(sensor_l),.sensor_m_out(sensor_m),.sensor_r_out(sensor_r));
//controller
controller ctrl(.clk(clk),.reset(reset),
.sensor_l(sensor_l),.sensor_m(sensor_m),.sensor_r(sensor_r),
.count_in(counter),.count_reset(counter_reset),
.motor_l_reset(rst_l),.motor_l_direction(direction_l),
.motor_r_reset(rst_r),.motor_r_direction(direction_r));
// motor control
motorcontrol mc_l (.clk(clk),.reset(rst_l),.direction(direction_l),.count_in(counter),.pwm(motor_l_pwm));
motorcontrol mc_r (.clk(clk),.reset(rst_r),.direction(direction_r),.count_in(counter),.pwm(motor_r_pwm));
endmodule

View File

@ -1,23 +1,8 @@
module timebase
(input logic clk,
input logic reset,
output logic [20:0] count);
logic [20:0] next_count;
always_ff @(posedge clk)
begin
if(reset)
count <= 0;
else
count <= next_count;
end
output logic [?:0] count);
//always_comb begin
// if(count==?2000000)
// next_count=0;
// else
assign next_count = count + 1;
//end
endmodule

View File

@ -1,34 +0,0 @@
module timebase
(input logic clk,
input logic reset,
output logic [4:0] count);
logic [16:0] internal_count,next_internal_count;
logic [4:0] next_count;
always_ff @(posedge clk) begin
if(reset)begin
count <=0;
internal_count <=0 ;
end
else begin
count <= next_count;
internal_count <= next_internal_count;
end
end
always_comb
begin
if(internal_count ==? 100000) begin
next_internal_count=0;
if(count ==? 19)
next_count = 0;
else
next_count = count+1;
end
else begin
next_internal_count = internal_count+1;
next_count=count;
end
end
endmodule

View File

@ -1,19 +0,0 @@
Wed Feb 19 19:10:26 CET 2025
Trace back: can't read "tbX(tbf18)": no such element in array
while executing
"lappend orderx($tbX($tb)) $tb"
(object "::.dockbar" method "::mtiwidgets::Dockbar::redoPack" body line 34)
invoked from within
"redoPack {Configure Event}"
("eval" body line 1)
invoked from within
"eval $args"
(object "::.dockbar" method "::mtiwidgets::Dockbar::_delayedEval" body line 3)
invoked from within
"::.dockbar _delayedEval redoPack {Configure Event}"
(in namespace inscope "::mtiwidgets::Dockbar" script line 1)
invoked from within
"namespace inscope ::mtiwidgets::Dockbar ::.dockbar _delayedEval redoPack {Configure Event}"
("after" script)
<2:/home/nano/questaSim/linux_x86_64/tk8.6/bgerror.tcl:106: ::tkerror {can't read "tbX(tbf18)": no such element in array}
<1:eval:1: ::tk::dialog::error::bgerror {can't read "tbX(tbf18)": no such element in array}

View File

@ -1,3 +1,4 @@
`timescale 1ns/1ps
module timebase_tb();

View File

View File

@ -1,25 +0,0 @@
# Current time Wed Feb 19 18:54:44 2025
# Program = vsim
# Id = "10.6g"
# Version = "2019.08"
# Date = "Aug 2 2019"
# Platform = "linux_x86_64"
# Signature = 94b58c929e6acf1df9316e0331d0248a
# 0 0x000000000116b520: '<unknown (@0x116b520)>'
# 1 0x0000000000a8af2e: '<unknown (@0xa8af2e)>'
# 2 0x0000000000a8b12c: '<unknown (@0xa8b12c)>'
# 3 0x0000000000a91176: '<unknown (@0xa91176)>'
# 4 0x000000000120905d: '<unknown (@0x120905d)>'
# 5 0x000000000120d4b6: '<unknown (@0x120d4b6)>'
# 6 0x000000000120eba1: '<unknown (@0x120eba1)>'
# 7 0x000000000120ef06: '<unknown (@0x120ef06)>'
# 8 0x0000000000e8c268: '<unknown (@0xe8c268)>'
# 9 0x00000000012aee0f: '<unknown (@0x12aee0f)>'
# 10 0x0000000001302977: '<unknown (@0x1302977)>'
# 11 0x00000000012c5877: '<unknown (@0x12c5877)>'
# 12 0x00000000012c5b59: '<unknown (@0x12c5b59)>'
# 13 0x000000000111eae6: '<unknown (@0x111eae6)>'
# 14 0x0000000000a57d76: '<unknown (@0xa57d76)>'
# End of Stack Trace

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,288 +7,4 @@ z2
!i10e 25
!i10f 100
cModel Technology
Z0 d/home/nano/Documents/EE/DS-B/randomVerilog
T_opt
!s110 1739987669
ViC[Km^Km;LJi>K:R15=cN1
04 11 4 work timebase_tb fast 0
=1-000ae431a4f1-67b61ad5-96700-1d978
Z1 o-quiet -auto_acc_if_foreign -work work +acc
Z2 tCvgOpt 0
n@_opt
Z3 OL;O;10.6g;65
R0
T_opt1
!s110 1740659834
VbSVZT9kHZVJ_HJBf8UmoH0
04 8 4 work robot_tb fast 0
=1-000ae431a4f1-67c05c7a-28bc6-3d26b
R1
R2
n@_opt1
R3
R0
vblinking_led
Z4 DXx6 sv_std 3 std 0 22 AD7iAPLo6nTIKk<N0eo=D3
Z5 !s110 1740576745
!i10b 1
!s100 <0lR74YAbCmRiY]YGZE;43
IZ@z6KWGiBO0`b=]<J44fk3
Z6 VDg1SIo80bB@j0V0VzS_@n1
!s105 blinking_led_sv_unit
S1
Z7 d/home/nano/Documents/EE/DS-B/LineFollower-DSB
w1739890971
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv
L0 1
Z8 OL;L;10.6g;65
r1
!s85 0
31
Z9 !s108 1740576745.000000
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv|
!i113 0
Z10 o-work work -sv -L mtiAvm -L mtiRnm -L mtiOvm -L mtiUvm -L mtiUPF -L infact
R2
vblinking_led_tb
R4
R5
!i10b 1
!s100 Q3Cb0:FE=6?3FlU4cL:E53
IbGOZlE6b2SKV;AZ1k6Koo0
R6
!s105 blinking_led_tb_sv_unit
S1
R7
w1739890973
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv
L0 3
R8
r1
!s85 0
31
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led_tb.sv|
!i113 0
R10
R2
vcontroller
R4
!s110 1740674919
R6
r1
!s85 0
31
!i10b 1
!s100 [oQ2?24BM0UZQ1zIK>L5f1
IDA5>Q3PnE1a@YH]cF7U8B0
!s105 controller_sv_unit
S1
R7
w1740674203
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv
L0 1
R8
!s108 1740674919.000000
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/controller.sv|
!i113 0
R10
R2
vinputbuffer
R4
R5
R6
r1
!s85 0
31
!i10b 1
!s100 jh8LQjCKnDA0eIXL[[=Z;1
IAoU:mm@RBCI]Rkgn<WH=J3
!s105 inputbuffer_sv_unit
S1
R7
Z11 w1740008019
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv
L0 1
R8
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/inputbuffer.sv|
!i113 0
R10
R2
vmotorcontrol
R4
R5
R6
r1
!s85 0
31
!i10b 1
!s100 ;emhoV3HFDWaaM1`aeWkc3
If5hJo_lREHS9TNo3?Lhd]1
!s105 motorcontrol_sv_unit
S1
R7
w1740496574
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv
L0 2
R8
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol.sv|
!i113 0
R10
R2
vmotorcontrol_mich
R4
R5
!i10b 1
!s100 GloOnCL6^;1ef<?VXFFMV1
IJD<aVk3K;;0ehZLNSD`RP1
R6
!s105 motorcontrol_michael_sv_unit
S1
R7
w1740495519
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv
L0 1
R8
r1
!s85 0
31
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/motorcontrol_michael.sv|
!i113 0
R10
R2
vmotorcontrol_tb
R4
R5
!i10b 1
!s100 :B8Yi2Oo;QP<8>OCdD=f33
IR^J9km[@a77RRWkS:_SJk2
R6
!s105 motorcontrol_tb_sv_unit
S1
R7
w1740496451
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv
L0 3
R8
r1
!s85 0
31
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv|
!i113 0
R10
R2
vrobot
R4
R5
R6
r1
!s85 0
31
!i10b 1
!s100 mVi_ba`j8N<PSzPBMal]O3
ITC_l9_PEoDlj5@GNF[iln1
!s105 robot_sv_unit
S1
R7
R11
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv
L0 1
R8
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/robot.sv|
!i113 0
R10
R2
vrobot_tb
R4
R5
R6
r1
!s85 0
31
!i10b 1
!s100 NZM8Q:n0DD=[0kz35fN@^2
IXL_`E`R4o6WPXd3n0Z1Fc3
!s105 robot_tb_sv_unit
S1
R7
w1739890970
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv
L0 3
R8
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/robot_tb.sv|
!i113 0
R10
R2
vtimebase
R4
R5
R6
r1
!s85 0
31
!i10b 1
!s100 M[4BXP_R;98<_<a5jJ8Pn3
I]32Z_d:L7GJJ1>Iz^BSQc2
!s105 timebase_sv_unit
S1
R7
w1740405912
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv
L0 1
R8
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/entities/timebase.sv|
!i113 0
R10
R2
vtimebase_tb
R4
R5
!i10b 1
!s100 ZG5RGR?<h9f]acR@9Tboi2
I>VfX@M7fPgCD8V`eeBk_^1
R6
!s105 timebase_tb_sv_unit
S1
R7
w1739989146
8/home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv
L0 3
R8
r1
!s85 0
31
R9
!s107 /home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv|
!s90 -reportprogress|300|-work|work|-vopt|-sv|-stats=none|/home/nano/Documents/EE/DS-B/LineFollower-DSB/timebase_tb.sv|
!i113 0
R10
R2
d/home/nano/Documents/EE/DS-B/randomVerilog

Binary file not shown.

View File

@ -1,4 +0,0 @@
m255
K4
z0
cModel Technology