реклама на сайте
подробности

 
 
> проблемы с FSM
sp1
сообщение Nov 2 2011, 08:10
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 28-10-10
Пользователь №: 60 495



Здравствуйте. Помогите пожалуйста разобраться в следующей проблеме:

Я описал на Verilog конечный автомат
CODE

always @(posedge clk or negedge Rst)
if(~Rst)
FSM_st <= IDLE;
else
FSM_st <= FSM_n;

always @(FSM_st or start or byte_cf_sent or byte_cv_sent or sstrb1 or sstrb2 or cnt_Tx_byte_clr or dout_Rx)
case(FSM_st)
IDLE:
begin
if(start)
FSM_n = TRANSMIT_CONFIGURANION_BYTE;
else
FSM_n = IDLE;
end
TRANSMIT_CONFIGURANION_BYTE:
begin
if(byte_cf_sent)
FSM_n = TRANSMIT_CONVERTION_BYTE;
else
FSM_n = TRANSMIT_CONFIGURANION_BYTE;
end
TRANSMIT_CONVERTION_BYTE:
begin
if(byte_cv_sent)
FSM_n = WAITING_MAX_WORK;
else
FSM_n = TRANSMIT_CONVERTION_BYTE;
end
WAITING_MAX_WORK:
begin
if(~sstrb1 || ~sstrb2)
FSM_n = MAX_WORK;
else
FSM_n = WAITING_MAX_WORK;
end
MAX_WORK:
begin
if(sstrb1 && sstrb2)
FSM_n = RECEIVE_DOUT;
else
FSM_n = MAX_WORK;
end
RECEIVE_DOUT:
begin
if(dout_Rx)
FSM_n = CHECK;
else
FSM_n = RECEIVE_DOUT;
end
CHECK:
begin
if(cnt_Tx_byte_clr)
FSM_n = IDLE;
else
FSM_n = TRANSMIT_CONVERTION_BYTE;
end
default:
begin
FSM_n = IDLE;
end
endcase

закодировал состояния
Код
parameter        [6:0]        IDLE =                                             7'b0000001,
                    TRANSMIT_CONFIGURANION_BYTE = 7'b0000010,
                    TRANSMIT_CONVERTION_BYTE =       7'b0000100,
                    WAITING_MAX_WORK =                    7'b0001000,
                    MAX_WORK =                                   7'b0010000,
                    RECEIVE_DOUT =                             7'b0100000,
                    CHECK =                                          7'b1000000;

Сигнал Rst(асинхронный Reset) всегда в 1, сигналы sstrb1 и sstrb2 асинхронные, остальные синхронные.
При прошивке Virtex-4 сначала автомат работает нормально, потом автомат сваливается в состояние FSM_st = 7'b0000000 и не может из него выбраться, несмотря на то, что приходитят положительные фронты clk. Как такое вообще может быть?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016