VHDL питання (процес здійснення, FSM)

T

TekUT

Guest
Шановні все,
Я вивчаю VHDL, після деяких простих прикладу, я буду уважно дивитися на реалізацію цього один генератор затримки пострілу, ось код:

Код:бібліотека IEEE;

ieee.std_logic_1164.all використання;

ieee.numeric_std.all використання;- Визначення особиорганізація є pulse_5clk

порт (

CLK, скидання: у std_logic;

йти, зупинити: в std_logic;

імпульсу: з std_logic

);

кінець pulse_5clk;- Визначення архітектуриархітектури fsmd_arch з pulse_5clk є

постійна P_WIDTH: натуральний: = 5;

Тип fsmd_state_type є (в режимі очікування, затримки);

сигнал state_reg, state_next: fsmd_state_type;

сигнал c_reg, c_next: непідписані (3 downto 0);

починати

- Державні і даних регістрів

процес (CLK, скидання)

починати

якщо (скидання = '1 '), то

state_reg <= простою;

c_reg <= (інші => '0 ');

ELSIF (clk'event і CLK = '1 '), то

state_reg <= state_next;

c_reg <= c_next;

кінець, якщо;

закінчення процесу;

- Наступного логічного стану і канал передачі даних функціональних підрозділів і маршрутизації

процесу (state_reg, іди, зупинка c_reg)

починати

імпульсу <= '0 ';

c_next <= c_reg;

state_reg випадку є

при простої =>

якщо йти = '1 ', то

state_next <= затримок;

ще

state_next <= простою;

кінець, якщо;

c_next <= (інші => '0 ');

, Коли зволікання =>

якщо зупинити = '1 ', то

state_next <= простою;

ще

якщо (= c_reg P_WIDTH - 1), то

state_next <= простою;

ще

state_next <= затримок;

c_next <= c_reg 1;

кінець, якщо;

кінець, якщо;

імпульсу <= '1 ';

кінець справі;

закінчення процесу;

кінець fsmd_arch;

 
Шановні все,
Я прийняв нове прочитання процесу відзначає і я бачу, що в цей процес усіх сигналу assignement оновлюються в кінці процесу, то я bcz другий assignement заяву в якості імпульсу <= '1 ', це виграш по перший і один сигнал управління був встановлений на 1, а не 0.Я думаю, щоб зрозуміти точку, хтось може підтвердити, що я правий?

Спасибо заранее
Powermos

 

Welcome to EDABoard.com

Sponsor

Back
Top