Moore Machine for motor controller
This commit is contained in:
parent
4f0563da8c
commit
71272dc776
@ -1,4 +1,25 @@
|
||||
/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
|
||||
/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
|
||||
|
||||
@ -33,4 +54,11 @@ QuestaSim-64 vlog 10.6g Compiler 2019.08 Aug 2 2019
|
||||
Top level modules:
|
||||
timebase_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
|
||||
|
||||
} {} {}}
|
||||
|
||||
@ -834,7 +834,7 @@ Resolution = ns
|
||||
UserTimeUnit = default
|
||||
|
||||
; Default run length
|
||||
RunLength = 360 ms
|
||||
RunLength = 40 ms
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 10000000
|
||||
@ -2114,7 +2114,7 @@ Project_File_P_0 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_i
|
||||
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 cover_fsm 0 last_compile 1740008019 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 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 8 dont_compile 0 cover_expr 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 cover_fsm 0 cover_branch 0 vlog_noload 0 last_compile 1740057090 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 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 cover_fsm 0 cover_branch 0 vlog_noload 0 last_compile 1740061310 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 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 vlog_noload 0 last_compile 1740008019 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 6 dont_compile 0 cover_expr 0 cover_stmt 0
|
||||
Project_File_4 = /home/nano/Documents/EE/DS-B/LineFollower-DSB/blinking_led.sv
|
||||
|
||||
@ -6,44 +6,76 @@ module motorcontrol
|
||||
input logic [20: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;
|
||||
// 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
|
||||
|
||||
always_ff @(posedge clk)
|
||||
typedef enum logic { pwm_off, pwm_on } motor_controller_state;
|
||||
motor_controller_state state,next_state;
|
||||
always_ff @(posedge clk) begin
|
||||
if(reset)
|
||||
state <= motor_off;
|
||||
state<=pwm_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
|
||||
always_comb begin
|
||||
case(state)
|
||||
motor_off:
|
||||
pwm=0;
|
||||
motor_ccw:
|
||||
pwm_off:
|
||||
begin
|
||||
if(count_in <= 100000)
|
||||
pwm=1;
|
||||
else
|
||||
pwm=0;
|
||||
if(count_in ==? 0) begin
|
||||
next_state=pwm_on;
|
||||
end
|
||||
motor_cw:
|
||||
end
|
||||
pwm_on:
|
||||
begin
|
||||
if(count_in <= 200000 )
|
||||
pwm=1;
|
||||
if((direction ==? 0) && (count_in >= 100000)) begin //CCW
|
||||
next_state=pwm_off;
|
||||
end
|
||||
else if((direction ==? 1) && (count_in >= 200000)) begin
|
||||
next_state=pwm_off;
|
||||
end
|
||||
else
|
||||
pwm=0;
|
||||
next_state=pwm_on;
|
||||
end
|
||||
endcase
|
||||
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
18
work/_info
18
work/_info
@ -116,23 +116,23 @@ R8
|
||||
R1
|
||||
vmotorcontrol
|
||||
R2
|
||||
R9
|
||||
!s110 1740061324
|
||||
R4
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
!i10b 1
|
||||
!s100 K8[l6@OcQ9YNX==LlIUOX3
|
||||
IO?fk96X;Y9oaf[e1kUblg2
|
||||
!s100 ;emhoV3HFDWaaM1`aeWkc3
|
||||
If5hJo_lREHS9TNo3?Lhd]1
|
||||
!s105 motorcontrol_sv_unit
|
||||
S1
|
||||
R5
|
||||
w1740057090
|
||||
w1740061310
|
||||
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
|
||||
R6
|
||||
R11
|
||||
!s108 1740061324.000000
|
||||
!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
|
||||
@ -141,10 +141,13 @@ R1
|
||||
vmotorcontrol_tb
|
||||
R2
|
||||
R3
|
||||
R4
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
!i10b 1
|
||||
!s100 :B8Yi2Oo;QP<8>OCdD=f33
|
||||
IR^J9km[@a77RRWkS:_SJk2
|
||||
R4
|
||||
!s105 motorcontrol_tb_sv_unit
|
||||
S1
|
||||
R5
|
||||
@ -153,9 +156,6 @@ w1739890968
|
||||
F/home/nano/Documents/EE/DS-B/LineFollower-DSB/motorcontrol_tb.sv
|
||||
L0 3
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R7
|
||||
!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|
|
||||
|
||||
BIN
work/_lib.qdb
BIN
work/_lib.qdb
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user