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

 
 
> Вопрос по реверсивному счетчику.
Iptash
сообщение Jun 5 2011, 04:50
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Здравствуйте все.
Объясните пожалуйста, почему реверсивный счетчик в виде:
Код
always @ (posedge UP, posedge DW) begin
if(UP)
   counter <= counter + 1'b1;
else if(DW)
   counter <= counter - 1'b1;
end

работает хаотично, неправильно (в симуляторе Quartus, а в Modelsim работает правильно). Хотя сигналы UP и DW выделяются синхронизирующим сигналом clk.
А если сделать так:
Код
always @ (negedge clk) begin
    if(UP) begin
     ck <= 1;
     end
    else if (DW) begin
     ck <= 1;
     end
    else
     ck <= 0;
end        

always @ (posedge ck) begin
if(UP)
   counter <= counter + 1'b1;
else if(DW)
   counter <= counter - 1'b1;
end

то работает отлично, и ресурсы на много меньше использует. Микросхема MAX II.
Go to the top of the page
 
+Quote Post



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

 


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


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