Например TDA7294

Форум РадиоКот • Просмотр темы - е..нутый компилятор в Quartus
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт июл 19, 2019 04:39:18

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: е..нутый компилятор в Quartus
СообщениеДобавлено: Сб май 19, 2018 17:55:41 
Потрогал лапой паяльник

Зарегистрирован: Пт фев 08, 2008 14:46:03
Сообщений: 327
Откуда: Воронеж
Рейтинг сообщения: 0
Я б...ть чувствую что скоро буду схемы рисовать сам, а не верилог использовать.
Есть такая проблема, вот первое исполнение кода:
Код:
module TEST_COUNTER(
       input wire test_signal_0,
       output reg [7:0] time_count_1 = 0
);
   
   always @ (posedge test_signal_0)
   begin
     time_count_1 <= 123;
   end

endmodule

Здесь хочется, что бы при подаче положительного фронта сигнала test_signal_0 установилось значение на массиве выходных пинов = 123, при этом задаю начальное значение регистра time_count_1 = 0.
В итоге получается такая х...ня:

Изображение

Как видно из кода, результат должен быть: начальное значение регистра time_count_1 = 0 и должно безвозвратно устанавливаться в 123 по положительному фронту сигнала test_signal_0. Но видимо синтезатор решил забить на желания пользователя и сгенерировать х..ню.

Второй вариант кода:

Код:
module TEST_COUNTER(
       input wire test_signal_0,
       output reg [7:0] time_count_1 = 0
);
   
   always @ (posedge test_signal_0)
   begin
     time_count_1 <= time_count_1 + 123;
   end

endmodule

Изображение

А здесь всё чётко! Но также должно работать и в первом варианте.
В чём может быть проблема???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: е..нутый компилятор в Quartus
СообщениеДобавлено: Сб май 19, 2018 18:53:18 
Вымогатель припоя

Зарегистрирован: Пт янв 30, 2009 15:50:35
Сообщений: 603
Откуда: Солнечногорск
Рейтинг сообщения: 0
Компилятор увидел, что значение остаётся постоянным, и соптимизировал его, не учтя, что изначально там было установлено другое значение. Ну а второй раз Вы определили счётчик, чьё значение будет изменяться с каждым импульсом, посему компилятор и сделал, что от него хотели. Но, вероятно, это ошибка в компиляторе (я Верилог не использую, поэтому не могу с определённостью сказать, что его стандарт говорит по сему поводу, но вряд ли он допускает подобную оптимизацию).


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: е..нутый компилятор в Quartus
СообщениеДобавлено: Сб май 19, 2018 19:50:33 
Первый раз сказал Мяу!

Карма: 1
Рейтинг сообщений: 17
Зарегистрирован: Вс сен 03, 2017 20:43:57
Сообщений: 22
Рейтинг сообщения: 0
Может добавить в модуль сигнал reset и по нему устанавливать начальные значения регистров (да вроде это является правилом хорошего тона).
На различных форумах довольно много обсуждают начальную инициализацию регистров, почитайте. Данная процедура сильно зависит от производителя (altera, xilinx, actel).

_________________
наработки https://ru.files.fm/u/a2sfccuf#/list/


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: е..нутый компилятор в Quartus
СообщениеДобавлено: Пт май 25, 2018 20:08:20 
Первый раз сказал Мяу!

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 01, 2016 14:03:46
Сообщений: 24
Рейтинг сообщения: 0
Всегда используйте сигнал сброса в схемах! Далее используйте констркцию "if ... else".
Совет на будущее: в список чувствительности вносите ТОЛЬКО тактовый сигнал (clk) и сингал сброса (если таковой используется асинхронно).


Вернуться наверх
 
Плавкие предохранители LittelFuse. Грамотный подбор

Выбор оптимального плавкого предохранителя требует учета многих параметров. Для упрощения выбора оптимального предохранителя и автоматизации расчетов Littelfuse предлагает онлайн-утилиту. Подробнее>>
Не в сети
 Заголовок сообщения: Re: е..нутый компилятор в Quartus
СообщениеДобавлено: Пн окт 01, 2018 17:17:18 
Прорезались зубы

Зарегистрирован: Пн окт 21, 2013 08:33:45
Сообщений: 211
Рейтинг сообщения: 0
ощущение такое, что симулятор в начале фронт генерит.

я такую конструкцию (output reg [7:0] time_count_1) не использую.

вот так работает:
module TEST_COUNTER(
input wire test_signal_0,
output reg [7:0] time_count_1
);
initial time_count_1=0;
always @ (posedge test_signal_0)
begin
time_count_1 <= 123;
end

endmodule

а вообще инициализировать по ресету желательно

_________________
Шоб я польку танцевал..


Вернуться наверх
 
Немногим дороже дискретного решения: новое поколение импульсных стабилизаторов Mornsun

Практически во всех радиоэлектронных устройствах массово применяются линейные понижающие стабилизаторы напряжения типа КРЕН в корпусе TO220 (другое обозначение – 78хх) и им подобные для формирования основного напряжения питания схемы.
Данные стабилизаторы позволяют без особых затрат получить нужное для каскада или узла схемы напряжение, если устройство питается от внешнего источника с более высоким напряжением. Для этого требуются… Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y