Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Языки описания аппаратуры (VHDL и др.)

Verilog. В разных блоках always @(posedge CLK) при определнных "асинхронных" условиях нужно сделать +1 и -1 или что-то одно счетчику(+)

Отправлено Sergei_Ilchenko 16 сентября 2008 г. 18:07


События асинхронны относительно друг-друга но синхронны относительно CLK. События могут совпасть по времени. Как сделать корректно, что-бы выполнялось или +1 к счетчику или -1 либо, если события наступили одновременно не делать ничего?


always @(posedge CLKIN) // FSM for write operation.
begin
if(RESET)
begin
r_notempty <= 1'b0;
r_wrst <= FSMRW_INIT;
end
else
begin
case(r_wrst)
2'b00:
if(r_cp)
begin
r_notempty <= 1'b1;

r_wrst <= r_wrst + 1;
end

2'b01:
if(fb_notempty)
begin
r_notempty <= 1'b0;

r_wrst <= r_wrst + 1;
end

2'b10:
if(!fb_notempty)
if(w_deccp)
begin
r_cp <= r_cp - 1;

r_wrst <= FSMWR_INIT;
end
endcase
end


always @(posedge CLKIN)
begin
r_din_dv <= DIN_DV;

if(RESET)
begin
r_pwraddr <= 2'b00;
r_pwe <= 1'b1;
r_cp <= 3'b0;
r_full <= 1'b0;
end

else
begin
if((DIN_DV == 1'b0) && (r_din_dv == 1'b1)) // Negadge front DIN_DV.
begin
if(r_cp <= 3)
begin
r_pwraddr <= r_pwraddr +1;
r_cp <= r_cp + 1;
end

if(r_cp >= 4) // Enable or Disable Packet Write Enable.
r_pwe <= 1'b0;
else
r_pwe <= 1'b1;
end

if((DIN_DV == 1'b1) && (r_din_dv == 1'b0)) // Posedge front DIN_DV.
if(r_cp >= 3)
r_full <= 1'b1;

end
end


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru