Nếu máy trạng thái được định nghĩa sao cho một hoặc nhiều bit trạng thái không bằng 0 ở trạng thái đặt lại, thì bạn nên đặt lại dứt khoát máy trạng thái bằng tín hiệu đặt lại (xem bên dưới). Nếu máy trạng thái không được đặt lại rõ ràng trong trường hợp này, máy trạng thái có thể bật nguồn vào trạng thái không xác định và MAX PLUS® II sẽ gửi thông báo sau:
Thông tin: Máy trạng thái '>' phải được đặt lại để đảm bảo hoạt động bình thường
Để khắc phục vấn đề này, máy trạng thái phải được thiết lập lại rõ ràng. Ví dụ về định dạng mục nhập thiết kế AHDL, VHDL và Verilog HDL được hiển thị bên dưới.
Đối với AHDL, tín hiệu đặt lại phải được khai báo và khẳng định.
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
Đối với VHDL, trạng thái ban đầu có thể được xác định bằng một IF
tuyên bố và tín hiệu đặt lại.
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
Đối với Verilog HDL, trạng thái ban đầu phải được xác định bởi IF
một tuyên bố và một
tín hiệu đặt lại, ví dụ:
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;
Đối với tất cả các định dạng HDL, nếu bạn không xác định trạng thái ban đầu của máy trạng thái là tất cả các số không, hãy đặt lại dứt khoát máy trạng thái vì máy trạng thái sẽ tiết kiệm điện.
Xem các phần AHDL, VHDL và Verilog HDL của Trợ giúp MAX PLUS II cho thông tin đầy đủ về việc triển khai máy trạng thái MAX PLUS II.