jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба Получил новую плату с 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).В чем может быть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба я бы еще глянул CONF_DONE, прогрузился ли чип или нет. То есть промониторил, вышел ли он в user mode Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба Хм... А у Вас точно все правильно синтезируется? В VHDL же нельзя написать так (при использовании стандартных библиотек): led_counter <= led_counter + '1'; Наподобие такой строчки можно записать так если led_counter объявлен как unsigned Но тогда инкрементирование счетчика должно выглядеть так: led_counter <= led_counter + "1"; Может в этом есть проблема ? А так вроде ничего криминального не вижу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 (изменено) · Жалоба я бы еще глянул CONF_DONE, прогрузился ли чип или нет. То есть промониторил, вышел ли он в user mode мда... спасибо. CONF_DONE заходит напрямую на пин контролера. а должен быть пулап 10К на питание. наверно это и причина. есть решение проблемы. определю в контролере инпут с пулапом. Хм... А у Вас точно все правильно синтезируется? use ieee.std_logic_unsigned.all; а что делать? жизнь такая. непростая. Изменено 18 сентября, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба use ieee.std_logic_unsigned.all; а что делать? жизнь такая. непростая. Ах вот он какой олень северный :rolleyes: Ну с этой библиотекой можно писать, как у Вас написано. А если не секрет, почему стандартный use numeric_std.all; не применяете ? Привычка ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба Ах вот он какой олень северный :rolleyes: Ну с этой библиотекой можно писать, как у Вас написано. А если не секрет, почему стандартный use numeric_std.all; не применяете ? Привычка ? так с numeric_std.all квартус ругается на led_counter <= led_counter + '1'; . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба так с numeric_std.all квартус ругается на led_counter <= led_counter + '1'; . А Вы замените одиночные кавычки на двойные и будет Вам счастье. Ещё вроде если объявлен как unsigned, то можно вообще единичку без кавычек писать как integer. Но это не точно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 (изменено) · Жалоба А Вы замените одиночные кавычки на двойные и будет Вам счастье. Ещё вроде если объявлен как unsigned, то можно вообще единичку без кавычек писать как integer. Но это не точно. ну я пользуюсь примерами старших товарищей. ни разу не видел применение двойных кавычек. лучше я пойду проторенной дорогой. :) Изменено 18 сентября, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба ну я пользуюсь примерами старших товарищей. ни разу не видел применение двойных кавычек. лучше я пойду проторенной дорогой. :) Проторенная дорога - строгое соблюдение стандартов VHDL, в которые библиотека std_logic_unsigned как раз и не входит. Да и старшие товарищи иногда могут ошибаться ;) Если Вы всегда работаете с одной и той-же версией САПР - то может оно и ничего. Но никто и никогда не даст гарантию того, что после обновления САПР старый код на нестандартизированных библиотеках будет работать как и раньше. Но в то-же время я ещё не слышал про то, что обновление САПР привело к неработоспособности\изменения работы кода, написанного на нестандартных библиотеках... Так-что может не так страшен код, как его малюют :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба инпут с пулапом помог. обделался отделался легким испугом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба инпут с пулапом помог. обделался отделался легким испугом. поздравляю, быстро вы решили =)) я кстати в счетчиках не использую <=, только =. Сам не силен, но постоянно такой инкремент не работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 сентября, 2018 Опубликовано 18 сентября, 2018 (изменено) · Жалоба поздравляю, быстро вы решили =)) я кстати в счетчиках не использую <=, только =. Сам не силен, но постоянно такой инкремент не работает. вам спасибо. ну как мне когда то объяснили если мы хотим синтезируемый код то тогда std_logic и тогда <= Изменено 18 сентября, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 19 сентября, 2018 Опубликовано 19 сентября, 2018 · Жалоба ну как мне когда то объяснили если мы хотим синтезируемый код то тогда std_logic и тогда <=Либо вы не так поняли, либо тот, кто объяснял, сам чего-то не понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 19 сентября, 2018 Опубликовано 19 сентября, 2018 · Жалоба вам спасибо. ну как мне когда то объяснили если мы хотим синтезируемый код то тогда std_logic и тогда <= Не совсем так. Можно прекрасно обойтись например и bit_vector, у которого есть одно важное свойство - он не resolved и ,как следствие, можно внести в код некоторый контроль ошибок. И для синтеза прекрасно применяется variable, что приведет к меньшим потребляемым ресурсами системы на моделировании - и как следствие большей скорости моделирования. И integer\natural(который я всегда применяю) - прекрасно синтезируются. А <= это оператор назначения сигнала. И только. Но важно не забывать про свойство этого оператора - дельта задержке. Применяйте тот тип с которым Вам проще описать схему - и забудьте про ограничение : если мы хотим синтезируемый код то тогда std_logic и тогда <= Оно было придумано только от непонимания языка(хотя я сам ещё не все фишки VHDL понимаю) P.S. Вот только с Shared variable надо быть очень осторожным... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 19 сентября, 2018 Опубликовано 19 сентября, 2018 · Жалоба Можно прекрасно обойтись например и bit_vector, у которого есть одно важное свойство - он не resolved и ,как следствие, можно внести в код некоторый контроль ошибок.У него есть недостаток -- нет, например, Z. Есть тип std_ulogic, который unresolved std_logic. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться