|
|
|
MAX10 прожигается но не работает |
|
|
|
Sep 18 2018, 05:05
|
Профессионал
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075
|
Получил новую плату с MAX10. Для проверки хочу помигать ледом. Код process (CLK) begin
if (rising_edge(CLK)) then led_counter <= led_counter + '1'; if (led_counter > X"01C9C37F") then led_counter <= (others =>'0'); led_sig <= not led_sig; LED_B1 <= led_sig; LED_B2 <= led_sig; LED_B3 <= led_sig; LED_B4 <= led_sig; LED_B5 <= led_sig; LED_B6 <= led_sig; end if; end if; end process; Все прожигается без проблем. Но леды не мигают. На ножках 3.3В. Тот же код работает на демо плате. Клок на ноге 26 присутствует. Нога NCONFIG = 1 а CONFIG_SEL = 0 (CMF0).В чем может быть проблема?
|
|
|
|
|
Sep 18 2018, 05:32
|
В поисках себя...
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140
|
Хм... А у Вас точно все правильно синтезируется? В VHDL же нельзя написать так (при использовании стандартных библиотек): Код led_counter <= led_counter + '1'; Наподобие такой строчки можно записать так если led_counter объявлен как unsigned Но тогда инкрементирование счетчика должно выглядеть так: Код led_counter <= led_counter + "1"; Может в этом есть проблема ? А так вроде ничего криминального не вижу.
|
|
|
|
|
Sep 18 2018, 05:49
|
Профессионал
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075
|
Цитата(new123 @ Sep 18 2018, 11:23) я бы еще глянул CONF_DONE, прогрузился ли чип или нет. То есть промониторил, вышел ли он в user mode мда... спасибо. CONF_DONE заходит напрямую на пин контролера. а должен быть пулап 10К на питание. наверно это и причина. есть решение проблемы. определю в контролере инпут с пулапом. Цитата(Flip-fl0p @ Sep 18 2018, 11:32) Хм... А у Вас точно все правильно синтезируется? Код use ieee.std_logic_unsigned.all; а что делать? жизнь такая. непростая.
Сообщение отредактировал Jenya7 - Sep 18 2018, 05:48
|
|
|
|
|
Sep 18 2018, 05:53
|
В поисках себя...
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140
|
Цитата(Jenya7 @ Sep 18 2018, 08:49) Код use ieee.std_logic_unsigned.all; а что делать? жизнь такая. непростая. Ах вот он какой олень северный Ну с этой библиотекой можно писать, как у Вас написано. А если не секрет, почему стандартный use numeric_std.all; не применяете ? Привычка ?
|
|
|
|
|
Sep 18 2018, 13:32
|
Частый гость
Группа: Участник
Сообщений: 140
Регистрация: 30-11-17
Пользователь №: 100 438
|
Цитата(Jenya7 @ Sep 18 2018, 09:46) инпут с пулапом помог. обделался отделался легким испугом. поздравляю, быстро вы решили =)) я кстати в счетчиках не использую <=, только =. Сам не силен, но постоянно такой инкремент не работает.
|
|
|
|
|
Sep 19 2018, 05:46
|
В поисках себя...
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140
|
Цитата(Jenya7 @ Sep 18 2018, 18:00) вам спасибо.
ну как мне когда то объяснили если мы хотим синтезируемый код то тогда std_logic и тогда <= Не совсем так. Можно прекрасно обойтись например и bit_vector, у которого есть одно важное свойство - он не resolved и ,как следствие, можно внести в код некоторый контроль ошибок. И для синтеза прекрасно применяется variable, что приведет к меньшим потребляемым ресурсами системы на моделировании - и как следствие большей скорости моделирования. И integer\natural(который я всегда применяю) - прекрасно синтезируются. А <= это оператор назначения сигнала. И только. Но важно не забывать про свойство этого оператора - дельта задержке. Применяйте тот тип с которым Вам проще описать схему - и забудьте про ограничение : Цитата если мы хотим синтезируемый код то тогда std_logic и тогда <= Оно было придумано только от непонимания языка(хотя я сам ещё не все фишки VHDL понимаю) P.S. Вот только с Shared variable надо быть очень осторожным...
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|