• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
MaDiEQ

Как грамотно писать на VHDL?

8 сообщений в этой теме

MaDiEQ    0

При проектировании устройств какие конструкции языка VHDL лучше использовать ?

1 State machine организовывать как переменную со своим типом state1, state2 ... или можно создать variable state: natural range 0 to (конечное состояние):=0; Какая конструкция будет занимать меньше ресурсов?

2 Операторы ветвления if else или case?

3 Если нужен переход по изменению сигнала wait или опять же if?

4 Как использовать Component / port map? использую только в тестбенче но возможно так вот кодом соединять провода нескольких файлов vhd? хотелось узнать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Vascom    605

0. Я бы рекомендовал Verilog. Код на нём проще, понятнее, более читаемый.

1, 2, 3. Не важно, синтезатор всё оптимизирует.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
aitras    1 323

4. Сначала в разделе объявлений архитектуры объявляется вставляемый компонент. Потом уже в теле архитектуры описываются экземпляры этого компонента, которые при помощи port map подключаются к конкретным сигналам и портам описываемой схемы.

2016-11-25_09-51-42.png

Если планируете сделать схему, состоящую только из компонентов, то на мой взгляд удобнее и нагляднее нарисовать именно схему, чем описывать кодом.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MaDiEQ    0

в институте vhdl учил так что мне привычнее, а на первый взгляд отличие между verilog и vhdl не заметно по моему

если надо протестировать тестбенчем систему из нескольких vhd как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vascom    605

Если учил в институте, то странные вопросы задаёшь.

В чём конкретно проблема тестировать сразу несколько vhd файлов, модулей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MaDiEQ    0

провинциальный институт не дает столько знаний сколько необходимо

я не знаю как сразу несколько тестировать, если подскажешь где почитать буду признателен ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vascom    605

В тестбенче можно инстанциировать несколько модулей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Meteor77    10

Вот сколько работал, вставка нескольких блоков в проект верхнего уровня среды и последующая компиляция проходят на ура (квартус), но при моделировании (моделсим) такой фокус не проходит - приходилось создавать проекты для тестирования вставляемых файлов, и только затем собирать весь проект. Особенно плохо получается с проектом в котором есть память (приходится пересобирать из раза в раз после замены данных в памяти).

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Гость Антон
      Автор: Гость Антон
      Доброго времени суток. Нужна помощь с программированием простеньких схем цифровой схемотехники. Нужно на 2 языках написать код+tb. Всего схем около сотни. В них входят мультиплексоры, демультиплексоры, декодеры, счетчики. Естественно не за бесплатно. Это пример самой сложной ( по моему субъективному мнению) схемы.
      По всем вопросам и предложениям можете написать мне на почту tarasov123789@mail.ru
       


    • Автор: Rine
      process (int,b) begin if (int'event and int='1') then if (b="01") then x<='1'; b1 <= "00"; else b<=b+1; x<='0'; end if; end if; end process; ;
       
      Здравствуйте! Не подскажите как правильно понять этот кусок кода...
      В списке чувствительности сигнал int он периодически меняется, по его изменению выполняется код ниже... Но непонятно зачем в список занесли b, этот сигнал меняется только в этом коде и нигде больше...  К примеру изменился в коде b и процесс выполняется еще раз, или изменение сигналов чувствительности во время выполнения процесса не активируют выполнение процесса еще один раз?
    • Автор: rekrut1993
      Добрый день всем!
       
      Говорю сразу, что я начинающий разработчик FPGA и опыта огромного нет, а эту задачу мне дали в качестве курсовой работы. Поэтому, заранее говорю спасибо всем откликнувшимся!
      Задача состоит вот в чем:
      Есть FPGA Altera Cyclone IV на которой нет сетевого модуля под Ethernet, но есть сетевой модуль Arduino ENC28J60.
      Стоит задача написания драйвера для взаимодействия сетевого модуля Adruino и ПЛИС через протокол SPI, причем с возможностью отсылать данные(по Ethernet) на плис с компьютера(как я понимаю на стороне компьютера должен быть написан клиент для соединения с модулем Adruino), к примеру, буфер размером 64Кб(Но в идеале размер буфера может регулироваться на стороне клиента) и получения уведомления от ПЛИС о принятии этого буфера. Почитал про протокол SPI, теория понятна. Понятно как это должно работать(на основе двух 8-битовых сдвиговых регистров), понятно , что ПЛИС будет выступать в качестве Master-устройства. а Arduino в качесвте Slave-устройства. Понятно как их подсоединить (4 провода: MISO, MOSI, SCLK и SS(slave select)). Есть так же идея реализовать на стороне ПЛИС(Master-устройство) 3 функции на языке Verilog: 1 - функция инициализации, которая будет говорить модулю Adruino о том, что сейчас будут посылаться данные с компьютера, 2 - функция чтения одного байта с сдвигового регистра ардуино, 3 - функция записи одного байта в сдвиговый регистр ардуино.  Но а что тогда должно быть на стороне Arduino(Slave-устройство)? На каком языке и что нужно там описать? С пониманием небольшие трудности. Так же не понятно как это все должно взаимодействовать с компьютером? Какую библиотеку использовать для отсылки данных на модуль Arduino? Использовать сокеты? Подойдёт ли Boost asio или может что-то другое?

      Подскажите пожалуйста куда мне двигаться дальше и с чего начать вообще.
      Фотографии ПЛИС и сетевого модуля прилагаю.