📄 time_state_machine.v
字号:
module TIME_STATE_MACHINE (TIME_BUTTON, HOURS_BUTTON, MINUTES_BUTTON, CLK, SECS, HOURS, MINS);input TIME_BUTTON, HOURS_BUTTON, MINUTES_BUTTON, CLK;output SECS, HOURS, MINS;parameter COUNT_TIME=0, SET_HOURS=1, SET_MINUTES=2;reg [1:0] CURRENT_STATE, NEXT_STATE;reg SECS, HOURS, MINS; always @ (CURRENT_STATE or TIME_BUTTON or HOURS_BUTTON or MINUTES_BUTTON)begin SECS =0; HOURS = 0; MINS = 0; NEXT_STATE = CURRENT_STATE; case (CURRENT_STATE) //synopsys full_case parallel_case COUNT_TIME: begin if (TIME_BUTTON & HOURS_BUTTON & !MINUTES_BUTTON) begin NEXT_STATE = SET_HOURS; HOURS = 1; end else if (TIME_BUTTON & !HOURS_BUTTON & MINUTES_BUTTON) begin NEXT_STATE = SET_MINUTES; MINS = 1; end else begin NEXT_STATE = COUNT_TIME; SECS = 1; end end SET_HOURS: begin if (TIME_BUTTON & HOURS_BUTTON & !MINUTES_BUTTON) begin NEXT_STATE = SET_HOURS; HOURS = 0; end else begin NEXT_STATE = COUNT_TIME; SECS = 1; end end SET_MINUTES: begin if (TIME_BUTTON & !HOURS_BUTTON & MINUTES_BUTTON) begin NEXT_STATE = SET_MINUTES; MINS = 0; end else begin NEXT_STATE = COUNT_TIME; SECS = 1; end end endcaseendalways @ (posedge CLK)beginCURRENT_STATE = NEXT_STATE;endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -