Перейти к содержанию

    

Jackov

Участник
  • Публикаций

    297
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Jackov

  • Звание
    Местный

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Н.Новгород
  1. Выдаёт ворнинги вида: Warning: Output pins are stuck at VCC or GND Warning (13410): Pin "Out[4]" is stuck at GND Warning (13410): Pin "Out[5]" is stuck at GND Warning (13410): Pin "Out[6]" is stuck at GND Warning (13410): Pin "Out[7]" is stuck at GND или Warning: 1 hierarchies have connectivity warnings - see the Connectivity Checks report folder Во втором случае идём в отчёты Analysis & Synthesis, переходим во вкладку Connectivity Checks и видим табличку со строками наподобие такой Port Type Severity Details ---------------------------------------- A Output Warning Output or bidir port (8 bits) is smaller than the port expression (11 bits) it drives. The 3 most-significant bit(s) in the port expression will be connected to GND.
  2. Ну вообще Квартус должен соответствующие ворнинги выдавать. Ещё в настройках можно включить Design Assistant-а.
  3. ищу учителя

    В дополнение, может оказаться полезным: https://www.youtube.com/playlist?list=PL4UM...dC8oO3HXrmGC1bm https://www.youtube.com/playlist?list=PL4UM...3XfsrFyK1laAchO
  4. Да это понятно, можно было и for(j = 0; j < 6; j = j +1) написать. Это же простой демонстрационный пример, сам тестбенч несколько сложнее.
  5. Собственно так и сделал. Странно, конечно, что отдельного оператора нет.
  6. Ну в SystemVerilog может быть. А в простом нету что ли?
  7. В Verilog-е есть оператор disable, это в некотором роде аналог оператора continue из языка Си. Убедиться в этом можно на простом примере: `timescale 1ns/1ps module Test(); integer i, j; always for(i = 0; i < 8; i = i + 1) begin for(j = 0; j < 8; j = j + 1) begin: _j if(j == 5) disable _j; #10; end end endmodule Видим, что переменная j в состоянии 5 задержку в 10 единиц не имеет, т.е. #10 не выполнилась, началась новая итерация цикла: Но мне, в тестбенче, нужно не начинать новую итерацию цикла, а нужно цикл завершить, нужен эквивалент оператора break. Искал - не нашёл. Стал думать, додумался до такого: always for(i = 0; i < 8; i = i + 1) begin: _i for(j = 0; j < 8; j = j + 1) begin if(j == 5) disable _i; #10; end end Неужели, в самом деле, нет отдельного оператора для такой цели?
  8. Ворнинги в Квартусе можно подавить. Правой кнопкой нажимаете на ненужном ворнинге и в всплывающем меню выбираете Suppress. Но я бы ворниги типа Pin "sdram_clk" is stuck at VCC давить бы не стал, т.к. они могут образовываться не только по причине того, что Вы повесили на этот сигнал константу, но и в результате компиляции проекта, когда Квартус сам присвоил сигналу константу. Так происходит в результате минимизации схемы, когда, например, в логике допущена ошибка и вся схема управляющая этим сигналом минимизируется.
  9. https://youtu.be/Bbusw6HbfEE Смотреть с 1:24:27 Для исключения метастабильности же, не?
  10. Цитата(Marat Zuev @ May 10 2018, 21:57) Может, signal_force вас спасёт? Примерно так и делаю. Но всё равно ведь ручками приходится. Хотелось бы чтобы он сам по умолчанке делал.
  11. Цитата(bogaev_roman @ May 10 2018, 10:49) to Sprite Посмотрел я на времянку и мозг отказал минут на 5 - как машина может находиться одновременно в нескольких состояниях? Там вообще мусор должен быть на моделировании - начальное состояние не определено - либо сброс добавьте, либо начальное условие при инициализации. Или это картинка не моделирования, а сигнал тап? Квартусовский симулятор сам инициализирует все триггеры нулями, ибо разработчики ПЛИС гарантируют, что по концу конфигурирования все триггеры в ПЛИС будут сброшены. Я всё ищу такую опцию для ModelSim-а, а то запарился каждый раз сброс прописывать.
  12. Цитата(nvpwybxd @ May 9 2018, 14:54) Реализуйте функциональную схему четырехразрядного демультиплексора 1:5 (Количество выходных сигналом - 5, разрядность - 4 бит). Скорее всего подразумевается шинный демультиплексор на 4 разряда. Т.е. нужно создать один демультиплексор на 5 выходов, а потом взять 4 таких демультиплексора. Для того чтобы построить демультиплексор, да и любую другую комбинационную схему, нужно знать всего две вещи - что такое таблица истинности и как минимизировать картами Карно. Посмотрите первые три части этого курса и Вы легко создадите любой демультиплексор: https://www.youtube.com/playlist?list=PL4UM...dC8oO3HXrmGC1bm
  13. Цитата(nekochanoide @ May 1 2018, 19:21) Действительно, спасибо, проблема решена. Ну вообще Квартус будет справедливо ругаться на триггерные схемы, т.к. данный подход в синхронном проектировании - не есть хорошо. Может быть, Вам, как начинающему, будет интересно: https://youtu.be/i1_VdJOMStE https://youtu.be/T5upUHhsBpw
  14. Цитата(nekochanoide @ May 1 2018, 17:54) Думаю, что с картинок будет все понятно. Помогите запустить симуляцию, пожалуйста. Имена должны с букв начинаться же.