Jump to content

    

Flip-fl0p

Свой
  • Content Count

    951
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Flip-fl0p

Контакты

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

Информация

  • Город
    Санкт-Петербург

Старые поля

  • skype
    Flip-fl0p
  • Vkontakte
    https://vk.com/id4024060

Recent Profile Visitors

5171 profile views
  1. Есть 2 книги: Дж. Уэйкерли "проектирование цифровых" устройств и Харрис Сара Л., Хэррис Дэвид М. "Цифровая схемотехника и архитектура компьютера" Крайне советую к их прочтению.
  2. Тут мы расскажем как правильно сделать, можем показать пример как можно сделать. Но код за Вас писать никто не будет. Если кратко: для того, чтобы моргать Вам надо отсчитать периоды в одну секунду. В цифровой схемотехнике для счета почти всегда используется счетчик. Вспоминаем курс цифровой схемотехники: у нас у счетчика есть несколько выходов. Каждый следующий вывод переключается с частотой в два раза меньше чем предыдущий. Сколько выходов у счетчика определяется разрядностью счетчика. Например вот у нас есть 32 разрядный счетчик. signal counter : unsigned(31 downto 0) := (others => '0'); Так вот если Вам если нет требования моргать с частотой РОВНО в 1 секунду, то просто берете нужный разряд счетчика и используйте его в качестве сигнала разрешения. Соответственно когда разрешено - светодиоды горят, когда запрещено не горят.
  3. А мне бы тоже ссылочку. Самому интересно одним глазком глянуть )
  4. DVI констрейны по данным и не нужны по сути ) В соответствии со стандартом - положение клока относительно данных может быть абсолютно случайным. Задача приемника по тестовым данным (которые передаются пока DE = 0) подстроиться под центр глаза - соответственно констрейны никак не помогут P.S. Лучше не в сдвиговый регистр 1:10 данные принимать. А в DDR регистр - сможете больше разрешений принять.
  5. Есть файл конфигурации FPGA, он хранится на чем-то энергонезависимом, например EEPROM. Внутри самой FPGA прошивка хранится в что-то вроде SDRAM памяти (поправьте если я ошибаюсь) Так вот саму FPGA конфигурировать можно сколь угодно много раз. А вот читать память с файлом конфигурации - зависит только от этой памяти. Поэтому в Вашем случае все зависит от памяти, откуда ARM ядро вычитывает прошивку для конфигурирования FPGA.
  6. Вот этого не скажу. У меня в проекте почти всегда есть PLL. PLL генерирует сигнал locked. Соответственно пока у меня не завелась PLL все в сбросе. А сбрасываю только то, что должно быть сброшено.
  7. Типа того... Очень грубо говоря: при инициализации ПЛИС, после её конфигурации происходит глобальный сброс, который как раз и инициализирует регистры. Инициализация единицами может потребовать дополнительный слой логики, что может ухудшить времянку. Но про инициализацию лучше читать в даташите на ПЛИС.
  8. В VHDL список чувствительности не влияет на синтез. Влияет только на симуляцию. Про поддержку в Q 9.0 не скажу. Смотрите описание.
  9. И не говорите... В 2019 году не полностью поддерживать VHDL2008... Они там сговорились что-ли ?
  10. https://www.google.com/search?ei=41ufXYXYKIXKrgTauKrgAw&q=xilinx+block+ram&oq=xilinx+идщсл+к&gs_l=psy-ab.1.0.0i13l6j0i13i30l4.1713.2912..3576...0.0..0.57.358.7......0....1..gws-wiz.......0j0i22i30.mqH0DM3sq90
  11. Потому-что надо использовать память, а не триггеры.
  12. В списке чувствительности в VHDL2008 можно писать all, и не заморачиваться.
  13. В данном конкретном случае у нас нет никакой разницы: писать ветку else или же нет. Quartus и Vivado нормально такие конструкции раскладывают, проблем выявлено не было.
  14. По поводу тредов - проблема решается просто: создается скрипт, который выполняется автоматически по запуску Vivado. Вот там Вы и указываете необходимое количество потоков.
  15. Если протокол передачи предусматривает подачу тестовых данных, то есть варианты, когда можно играя фазой клока\задержкой данных на входе автоматически подстроиться ровно в центр. Тогда вообще можно без выходных констрейнов для клока и данных обойтись.