문서 ID: 000080719 콘텐츠 형태: 문제 해결 마지막 검토일: 2012-09-11

전원이 켜진 상태 시스템의 초기 상태는 무엇입니까?

환경

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명 Altera® 장치에 대한 상태 머신을 합성할 때는 상태 머신이 제대로 재설정되었는지 확인해야 합니다. Not-Gate-Push-Back을 사용하거나 레지스터에 전원이 공급되는 높은 옵션이 설정되지 않는 한 Altera 장치의 모든 레지스터는 낮은 상태에서 전원을 공급합니다. 모든 Altera 장치는 Not-Gate-Push-Back을 지원합니다.

상태 머신이 하나 이상의 상태 비트가 리셋 상태에서 0이 아닌 상태로 정의되면 리셋 신호를 사용하여 상태 컴퓨터를 명시적으로 재설정해야 합니다(아래 참조). 이 경우 상태 시스템이 명시적으로 재설정되지 않으면 상태 컴퓨터가 정의되지 않은 상태로 전원을 공급할 수 있으며, PLUS II MAX® 다음 메시지를 제공합니다.

정보: 상태 컴퓨터 '< 이름>'을 재설정하여 적절한 작동을 보장해야 합니다.

이 문제를 해결하려면 상태 컴퓨터를 명시적으로 재설정해야 합니다. 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의 경우, 초기 상태는 명령문과 a 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 형식의 경우 상태 머신의 초기 상태를 모든 0으로 정의하지 않으면 상태 머신 이후 상태 컴퓨터를 명시적으로 재설정합니다. 전원이 낮아지게 됩니다.

AHDL, VHDL 및 Verilog HDL 섹션의 MAX PLUS II 도움말 을 참조하십시오. MAX PLUS II에서 상태 머신 구현에 대한 완전한 정보.

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

인텔® 프로그래밍 가능 장치

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.