|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- module Fsm
- (
- input wire clk,
- input wire inAlarmAmpel,
- input wire inDataValid,
- input wire inTasteAktiv,
- output logic outAlarm_R,
- output logic outSendData,
- output logic outTimerEN
- );
- real IDLE = 0;
- real ALARM = 1;
-
- logic state;
- initial begin
- #0 state <= IDLE;
- #0 outAlarm_R <= 0;
- #0 outSendData <= 0;
- #0 outTimerEN <= 0;
- end
-
- always @(posedge clk) begin
- case(state)
- IDLE: begin
- if(inDataValid) begin
- outSendData <= 1;
- end
- else begin
- outSendData <= 0;
- end
- if(inAlarmAmpel) begin
- outAlarm_R <= 1;
- state <= ALARM;
- end
- end
- ALARM: begin
- if(inDataValid) begin
- outSendData <= 1;
- end
- else begin
- outSendData <= 0;
- end
- if(inTasteAktiv) begin
- outAlarm_R <= 0;
- state <= IDLE;
- end
- end
- default: ;
- endcase
- end
-
- endmodule
|