ID Artikel: 000080719 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 11/09/2012

Apa yang dimaksud dengan keadaan awal mesin status yang menyala?

Lingkungan

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Deskripsi Saat mensintesis mesin status untuk perangkat Altera® , Anda harus memastikan mesin status diatur ulang dengan benar. Semua register di perangkat Altera akan dinyalakan dalam keadaan rendah, kecuali Not-Gate-Push-Back digunakan atau opsi daya tinggi diatur pada register. Semua perangkat Altera mendukung Not-Gate-Push-Back.

Jika mesin status didefinisikan sehingga satu atau beberapa bit status tidak nol dalam status reset, maka Anda harus secara eksplisit mengatur ulang mesin state menggunakan sinyal reset (lihat di bawah). Jika mesin status tidak secara eksplisit mengatur ulang dalam kasus ini, mesin status dapat menyala menjadi keadaan yang tidak terdefinisi, dan MAX PLUS® II akan memberikan pesan berikut:

Info: '<name>' mesin status harus diatur ulang untuk menjamin pengoperasian yang tepat

Untuk mengatasi masalah ini, mesin status harus secara eksplisit mengatur ulang. Contoh untuk format entri desain AHDL, VHDL, dan HDL Verilog ditampilkan di bawah ini.

Untuk AHDL, sinyal reset harus dinyatakan dan ditegaskan.

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



Untuk VHDL, status awal dapat didefinisikan oleh IF pernyataan dan sinyal reset.

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







Untuk HDL Verilog, status awal harus didefinisikan oleh pernyataan IF dan reset signal, yaitu

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;



Untuk semua format HDL, jika Anda tidak mendefinisikan status awal mesin status menjadi semua nol, mengatur ulang mesin status secara eksplisit, karena mesin status akan meningkatkan daya rendah.

Lihat bagian HDL AHDL, VHDL, dan Verilog dari Bantuan MAX PLUS II untuk informasi lengkap tentang menerapkan mesin status di MAX PLUS II.

Produk Terkait

Artikel ini berlaku untuk 1 produk

Perangkat yang Dapat Diprogram Intel®

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.