3. Программирование ПЛИС: графическое представление, AHDL, VHDL, Verilog

Поделиться
HTML-код
  • Опубликовано: 17 окт 2024
  • Сравнение разных подходов к программированию ПЛИС с анализом того, как компилятор воспринимает разные языки

Комментарии • 22

  • @circuitcraftlab
    @circuitcraftlab 6 лет назад +3

    Отличный урок, ждем следующих видио)

  • @jvcr87
    @jvcr87 5 лет назад +6

    сравнительный анализ различного подхода к написанию конфигурации - да это ж КРУТЬ!

  • @andreyparovozz
    @andreyparovozz 3 года назад +1

    Видео высшей степени годности.

  • @Владимир-ж3х3и
    @Владимир-ж3х3и 4 года назад +2

    Счётчик считает от 0 до 50М? Значит частота моргания 50000000 Гц / 50000001, т.е. меньше 1 Гц.
    В VHDL и Verilog константа задана десятичным числом без ограничения разрядности, по умолчанию 32 бита, от того и получается перерасход.

  • @dp_74
    @dp_74 2 года назад

    Простой вопрос: можно ли запускать несколько модулей независимо друг от друга на одной плате? В виде схемы такое нарисовать получилось, а как это сделать в veriloig? В качестве главного указывается один модуль, остальные могут из него вызываться и быть с ним связанными. А полностью независимыми сделать можно, со своими входами и выходами?

    • @МихаилБонк-с9д
      @МихаилБонк-с9д Год назад

      Нельзя, топ модуль содержит порты связанные с физическими пинами на плате, разработка на FPGA всегда подразумевает работу на древовидной структуре. Проекты могут содержать несколько топ модулей, но это лишь позволяет переключаться между ними.

  • @julia_transformation_coach
    @julia_transformation_coach 5 лет назад

    Вопрос, если мы посылаем на светодиод 25ый бит то светодиод загорится чуть раньше чем досчитает до 50миллионов? Это специальные ограничения или стиль из экономии ячеек, или не важно точность в этом примере? А почему не включать светодиод после строки cnt = 0...

    • @Страничкаинженера
      @Страничкаинженера  5 лет назад +4

      Это не экономия ячеек, не неточность, так и было задумано - светодиод включается когда 25-й бит счетчика становится "1" и выключается, когда он становится "0". Да, скважность свечения не равна 2, так как включение светодиода происходит при значении счетчика 32М, а выключается при 50000000. И для светодиода это вполне приемлемо - глазами мы будем видеть моргающий светодиод один раз в секунду. Тем более что у человека в глазу есть инертность, заставляющая нас видеть яркое свечение дольше, чем оно было на самом деле :)
      Более точный способ - менять состояние светодиода 2 раза в секунду, когда счетчик достигает значения 25000000-1, но в данном примере такая точность была не нужна

  • @МихаилТ-г8д
    @МихаилТ-г8д 4 года назад +2

    Утверждение, что выражения внутри процесса исполняются последовательно, НЕКОРРЕКТНО!
    Пример:
    signal i: std_logic;
    signal ii: std_logic;
    --------------
    process(CLK)
    begin
    if rising_edge(CLK) then
    i

  • @migser7233
    @migser7233 4 года назад +1

    Подскажите пожалуйста как сделать в Quartus(-е) тёмный стиль интерфейса

    • @masteroogway7283
      @masteroogway7283 3 года назад

      Понял как ?

    • @migser7233
      @migser7233 3 года назад +1

      @@masteroogway7283 не понял, но нашёл куда более приемлемый способ. Пишу все ртл и бенчи в vs code, там можно и тему поменять, и фичи удобные есть. В квартусе тупо запускаю уже

  • @izotop1663
    @izotop1663 3 года назад

    Подскажите в подробностях как сделать блинк на макс 2 на визуальном языке за ранее спасибо

    • @МихаилБонк-с9д
      @МихаилБонк-с9д Год назад

      В подробностях описать не получится, но в двух словах делается с помощью блока счетчика и мультиплексора, в quartus эти модули в визуале есть

  • @julia_transformation_coach
    @julia_transformation_coach 5 лет назад +3

    В другой лекции слышал что если в Verilog число не описано он его делает 32 бит по умолчанию

    • @МихаилБонк-с9д
      @МихаилБонк-с9д Год назад

      Зависит от компилатора, но если регистр имеет большую разрядность, то все не используемые разряды обнуляются

  • @oblibox1
    @oblibox1 5 лет назад

    интересуют подробности в коде ahdl , if cnt [ ] == 50000000 , тут скобки нужны для того чтобы указывать откуда будет считываться 50000000 (тоесть скобки обозначается выход ?) и как зачем так мудрено задается кол-во тригеров [25..0]

    • @Страничкаинженера
      @Страничкаинженера  5 лет назад +2

      Со скобками все просто - есть группа триггеров из 26 штук. Можно анализировать выходы каждого триггера в группе, например, cnt.q10, а можно у всей группы, например, cnt.q[25..0] или cnt.q[] или ещё короче cnt[]. Последняя запись предполагает обработку всех выходов триггеров сразу

  • @МаксимСолодкий-ц1б
    @МаксимСолодкий-ц1б 4 года назад

    а как начать?

    • @МихаилБонк-с9д
      @МихаилБонк-с9д Год назад

      начать с самого простого, сложение чисел, условные структуры

  • @ЕаАс-ч4з
    @ЕаАс-ч4з 3 года назад

    Страшно подумать в случае тактовой частоты
    равной 1 ГГц....😨

    • @МихаилБонк-с9д
      @МихаилБонк-с9д Год назад

      Очень сложно собирать проекты на 1 ггц, особенно на больших кристаллах, так как на таких скоростях очень высокие требования по временным ограничениям