หากมีการกําหนด State Machine เพื่อให้บิตสถานะหนึ่งตัวขึ้นไปมีสถานะไม่อยู่ในสถานะรีเซ็ต คุณควรรีเซ็ตเครื่องสถานะอย่างชัดแจ้งโดยใช้สัญญาณรีเซ็ต (ดูด้านล่าง) หากไม่ได้รีเซ็ตเครื่องสถานะอย่างชัดแจ้งในกรณีนี้ เครื่องแสดงสถานะอาจทํางานเป็นสถานะที่ไม่ได้กําหนด และ MAX PLUS® II จะส่งข้อความต่อไปนี้:
ข้อมูล: ต้องรีเซ็ตเครื่องสถานะ '<name>' เพื่อรับประกันการทํางานที่เหมาะสม
เพื่อแก้ไขปัญหานี้ ควรรีเซ็ตเครื่องสถานะอย่างชัดแจ้ง ตัวอย่างรูปแบบรายการออกแบบ AHDL, VHDL และ Verilog HDL มีแสดงอยู่ด้านล่าง
สําหรับ AHDL ควรประกาศและรับรองสัญญาณรีเซ็ต
SUBDESIGN statemachine ( clk, reset, ena, d : INPUT; q : OUTPUT; ) VARIABLE ss: MACHINE WITH STATES (s0=1, s1=0); -- reset state is s0, state register is non-zero BEGIN ss.reset = reset; -- assert this signal to properly reset the state machine
สําหรับ VHDL สถานะเริ่มต้นอาจถูกกําหนดโดย IF
คําสั่งและสัญญาณรีเซ็ต
ENTITY statemachine IS PORT( clk : IN STD_LOGIC; input : IN STD_LOGIC; reset : IN STD_LOGIC; output : OUT STD_LOGIC); END statemachine; ARCHITECTURE a OF statemachine IS TYPE STATE_TYPE IS (s1, s2); -- reset state is s1 ATTRIBUTE ENUM_ENCODING : STRING; ATTRIBUTE ENUM_ENCODING OF STATE_TYPE : TYPE IS "1 0"; -- state register for s1 is non-zero SIGNAL state : STATE_TYPE; BEGIN PROCESS (clk) BEGIN IF reset = '1' THEN state <= s2; -- causes state machine to power up in state s2 IF (clk'EVENT AND clk = '1') THEN CASE state IS
สําหรับ Verilog HDL ต้องกําหนดสถานะเริ่มต้นด้วยคํา IF
แถลงและ
สัญญาณรีเซ็ต เช่น
module statemachine (clk, in, reset, out); input clk, in, reset; output out; reg out; reg state; parameter s1 = 1, s2 = 0; always @ (state) begin case (state) -- define outputs s1: out = 0; always @ (posedge clk or posedge reset) begin if (reset) state = s1; -- causes state machine to power up in state s1 else case (state) -- define state transitions s1: if (in) state = s2;
สําหรับรูปแบบ HDL ทั้งหมด หากคุณไม่ได้กําหนดสถานะเริ่มต้นของ State Machine ให้เป็นศูนย์ทั้งหมด ให้รีเซ็ตเครื่องสถานะอย่างชัดแจ้ง เนื่องจาก State Machine จะเปิดเครื่องต่ํา
ดูส่วน AHDL, VHDL และ Verilog HDL ของความช่วยเหลือ MAX PLUS II สําหรับ ข้อมูลทั้งหมดเกี่ยวกับการปรับใช้เครื่องสถานะใน MAX PLUS II