Jump to content

    

hdl_student

Свой
  • Content Count

    145
  • Joined

  • Last visited

Community Reputation

0 Обычный

About hdl_student

  • Rank
    Частый гость
  • Birthday 09/13/1987

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

3058 profile views
  1. wolfman: Спасибо за ответ. А какой у Вас JTAG-адаптер? Моя проблема оказалась проще - JTAG-адаптер на PIC18 не работает с Nios II Eclipse под Linux. Родной (FT245 + CPLD) работает только в одном из моих портов USB 2.0 на новой материнке.
  2. Добрый день! Пробую запустить простой дизайн с Nios II на Quartus Lite/Standard 17.1-19.1 под Linux (Ubuntu 18.04 LTS). FPGA через сам Quartus прошивается и работает без проблем. При запуске 'Debug As..." в Eclipse начинается обмен по JTAG (видимо, среда пытается пообщаться с отладочным модулем Nios-а, прочесть System ID и т.д.), который приводит к выходу FPGA из usermode (наблюдаю по светодиодам и упавшему CONF_DONE). Пробовал на Quartus 17.1/18.0/19.1 Lite/Standard. Пробовал на 4 разных платах (Cyclone IV, V, 10LP, Arria II GX) и разных программаторах (копеечный с Али и родной). На том же железе и той же машине (dualboot) все прекрасно работает под Windows 7. Может ли кто-то подтвердить, что у него есть рабочий комплект Quartus с Nios II EDA (17.1 и старше) под Linux, а то начинаю терять веру в человечество. Если не трудно, напишите версию Quartus-а и дистрибутива. Заранее признателен.
  3. Тема стара, как мир, тем не менее, однозначного решения найти не удалось. Прототипируем фрагмент дизайна ASIC на самой большой UltraScale. Около 5000 ног интерконнекта висит в воздухе внутри FPGA, поэтому Vivada выбрасывает все, что не завязано на физические выводы, после чего часть дизайна перестает отзываться на запросы по интерфейсу, торчащему из FPGA. В Quartus есть замечательный неинвазивный инструмент как раз для такого случая - Virtual Pin, который позволяет сохранить возможность эффективного синтеза/раскладки и сохранить нужную логику от выбрасывания. Полный дизайн ASIC-а (включая подсистему, которую мучаю я) собирается и работает без проблем (т.к. в нем все ноги моей подсистемы подключены). Стоит задача собрать автономный дизайн с подсистемой, чтобы не ждать 1,5 дня на пересборку общего дизайна. Что испробовано на данный момент: 1. (* keep = "true" *) на сигналы, висящие в воздухе Как оказалось, это не уберегает логику, привязанную к этому сигналу от оптимизации. Через интерфейс видится только часть дизайна. 2. (* dont_touch = "true" *) на сигналы, висящие в воздухе Эта директива работает "рекурсивно" ко всей подключенной логике, запрещая какую-либо оптимизацию вообще, из-за чего на пустом месте растет resource optimization и появляются большие слаки. Через интерфейс все равно видится только часть дизайна. 3. (* mark_debug = "true" *) на сигналы, висящие в воздухе Какого-либо эффекта (в т.ч. автоматического создания ILA) не замечено. Через интерфейс видится только часть дизайна. 4. Выделение всей подсистемы в обертку в режиме Out-of-context. OOC, как я понял, работает только для синтеза, если входы подсистемы болтаются в воздухе, то на этапе implementation Vivado выдает ошибку - входы LUT должны быть подключены. Если на входы подсистемы повесить константу, implementation видит "constant propagation" и выбрасывает еще больше логики. На сайте Xilinx и нашем форуме поискал, в основном предлагаются перечисленные способы. Есть ли еще какие-либо человеческие способы, которые можно попробовать до того, как возиться с сдвиговыми регистрами на входах и выходах?
  4. Добрый день. Ищу работу в качестве разработчика проектов ПЛИС (в идеале) для радилокационных, SDR- или телеком-приложений. Имею 8-летний опыт работы в сфере радиолокации (2-, 3-х координатные РЛС/РЛСУ корабельного базирования в диапазонах S-, X-, Ка; самолетные РЛСУ). Разрабатывал модули (ЦОС, управления, сопряжения) на МК и ПЛИС; приборы; работал на системном уровне. В части ПЛИС, в основном, занимался задачами ЦОС, управления ВЧ-блоками, сопряжением. FPGA: Работал реимущественно с Intel/Altera: Cyclone IV E, Arria II GX, Startix IV GX. Имею ограниченный опыт работы с Xilinx в ISE 14.1 (Spartan 6), ActiveHDL + PlanAhead (Virtex 6 LX). HDL: Verilog/SystemVerilog (пишу); VHDL (читаю). Симулятор: ModelSim. Интерфейсы IP: Avalon-MM/ST, Avalon Verification Suite (BFM). Soft-CPU: Nios II (без MMU и внешней памяти). Опыт работы с синтезом RTL из Matlab (DSPBuilder) для трактов ЦОС РЛС в режиме Super-sample. Имеется начальный опыт работы с трансиверами до 6,25 Gbps и PCIe HIP Gen 1 на Arria II GX. Опыт разработки интерфейсов управления модулями в Quartus SystemConsole (с помощью Dashboard). MATLAB: Разработка BSP для обеспечения доступа разработчиков алгоритмов к аппаратной части модулей ЦОС (захват сигнала, управление режимами) с помощью Instrument Control Toolbox (через TCP/UDP), FPGA Verification Toolbox (FPGA Data Capture, aximaster). Управление измерительными приборами (генераторы СВЧ-сигналов, источники питания, электронные нагрузки) через SCPI/LAN для автоматизации измерений ОС: Опытный пользователь Linux (основной дистрибутив с 2006 г. – Gentoo). Опыт работы в QNX. Опыт программирования в среде Linux на C (file I/O, сокеты, pthread, GTK+, libftdi, примитивные драйверы PCI). Опыт работы в Cygwin. Контроль версий, планирование: SVN, Redmine, Microsoft Project Микроконтроллеры: AVR, ARM M0-M4 (STM32F4, Миландр). GNU Toolchain (AVR, ARM), OpenOCD. САПР ПП: PCAD-2006, Altium Designer Измерительное оборудование: широкополосные осциллографы (до 2,5 ГГц), в т.ч. с активными дифпробниками, логические анализаторы, активные нагрузки, СВЧ КИП Rohde&Schwarz, Agilent/Keysight, Anritsu (анализаторы спектра, генераторы, мощемеры, VNA). Резюме: https://hh.ru/resume/3594972dff062310550039ed1f726839505865 Предпочтительный способ связи: andrey.v.novikov гав ya.ru.
  5. Добрый день. А можете .qsys выложить? Никогда с таким поведением не сталкивался. Ради интереса собрал count_binary из туториала на 17.1 с PLL внутри Qsys (я обычно ставлю его в toplevel) - все работает нормально.
  6. Синтезатор имитирует tristate buf с помощью обычного мультиплексора с условием. Коллега имел в виду, что конкретный мультиплексор на tristate buf описать проще и нагляднее.
  7. А Вы хотите реализовать какую-то логику или исследовать поведение симулятора? Если первое, то не очень понятно, какого результата Вы хотите добиться. Похоже на попытку описать асинхронный мультивибратор. ( :
  8. Потратил несколько часов в попытках установить Modelsim 10.2c SE в современном 64-битном Linux (multilib). Прилагаю решение на случай, если кто-то захочет поставить относительно старую версию Modelsim SE. При запуске install.linux, установщик, написанный на Java падает с такой ошибкой: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xf7eee475, pid=13257, tid=4144433984 # # JRE version: 6.0_21-b06 # Java VM: Java HotSpot(TM) Server VM (17.0-b16 mixed mode linux-x86 ) # Problematic frame: # C [libpthread.so.0+0xd475] pthread_cond_wait+0x95 # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # Установщик идет со своей JRE, причем сами jar-ы на 7.x/8.x-версиях JRE уже не запускаются. Пляски с бубном (исследование пожеланий JRE с помощью ldd и strace, подсовывание старых версий библиотек через LD_PRELOAD) быстрого результата не принесли, в интернетах сведений о такой ошибки также не нашлось. В итоге было найдено следующее решение: заменяем 32-битную JRE, идущую в комплекте установщика, на 64-битную версию. 1. Ищем и скачиваем jre-6u45-linux-x64.bin. 2. Распаковываем: chmod +x jre-6u45-linux-x64.bin ./jre-6u45-linux-x64.bin 3. Копируем содержимое только что распакованной папки jre1.6.0_45 в папку ~/mgc/install.ixl/JRE (ее нам создал install.linux). 4. Запускаем установщик вручную: ~/mgc/install.ixl/mgc_install 5. Подсказываем установщику путь к modelsim-base.mis и другим .mis-файлам. Остальные телодвижения со старыми версиями 32-битных библиотек для запуска самого vsim остаются в силе.
  9. Можно проверить: 1. Power sequencing / ramp-up между двумя платами. 2. Номинал VCCPGM - у всех ли микросхем в JTAG-цепочке и на разъеме для программатора он одинаковый? 3. Сравнить шум/наводки на TDI/TDO между рабочей и нерабочей платой. Какая схема конфигурации у Arria 10?
  10. Тогда м.б. у Вас ModelSim-Intel FPGA Edition, которая поставилась вместе с Quartus? Тогда все библиотеки уже в него добавлены (см. вкладку Libraries в главном окне Modelsim). Чтобы запустить симуляцию проекта с LPM-функциями, подключите библиотеку altera_mf_ver: Simulate > Start Simulation > Вкладка Libraries > Add.
  11. 1. В Quartus II Handbook Volume 1: Design and Synthesis есть раздел Inferring Memory Functions from HDL Code, где подробно описывается, как нужно описать память желаемого типа, чтобы Quartus ее обнаружил, в т.ч. случаи, когда он не может расположить ее на BRAM. 2. У "почему не получается" факторов много. Приведите код или проект, чтобы кто-то мог посмотреть и подсказать. Может, у Вас Stratix V, где нет M9K. ( : 3. Добавить библиотеки мегафункций и моделей аппаратных блоков в Modelsim очень просто: В Quartus заходим Tools > Launch Simulation Library Compiler Выбираем Modelsim и папку с vsim.exe (...\modeltech64_10.2c\win64) Выбираем семейства (они нужны, если соберетесь симулировать gate-level или работать с трансиверами и др. аппаратными блоками; для ALTPLL они не нужны) Выбираем Verilog Выбираем Output directory Жмем Start Compilation После окончания компиляции в выбранной Output directory будет лежать modelsim.ini. Нужно скопировать строчки с библиотеками (altera_ver и другие) в секцию [Library] файлов ...\modeltech64_10.2c\modeltech.ini и в файл проекта (.mpf). В последующем, библиотеки Альтеры будут присутствовать в каждом новом проекте, т.к. каждый раз при создании проекта они копируются из ...\modeltech64_10.2c\modeltech.ini. 4. Синтез Quartus поддерживает инициализацию памяти с помощью $readmemb и $readmemh.
  12. Последняя версия Quartus II, где поддерживается FLEX/ACEX - 9.0 SP2. https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/rn/rn_qts_90sp2_dev_support.pdf:
  13. Опять я пришел только к концу обсуждения. ( : Вставлю пару вещей: 1. Используем AD9739 с выходом как на Figure 65 с TC1-33-75G+. Полет нормальный. 2. Коли есть (относительно) широкополосный осциллограф, лучше смотреть сигнал не через щуп, а напрямую - кабелем SMA-BNC, переключив осциллограф на 50-омный вход. 2.1. Нужен делитель ("тройник") или аттенюатор? 3. Функция FFT в осциллографах в случае ВЧ-измерений работает больше как "показометр" из-за низкого разрешения (см. https://electronics.stackexchange.com/questions/50581/oscilloscope-with-fft-or-a-spectrum-analyzer/284801#284801) - можно пропустить важные частотные составляющие, да и шум не оценить. Если есть доступ к анализатору спектра, лучше пользоваться им. А почему эта тема в ветке SoC?
  14. Насколько я помню, для серии ХС была фирменная утилита, которая в битстриме меняла местами выводы, т.к. была разница между разваркой IOB (блоков ввода-вывода) на ноги штатного QFP и металлокерамике в отечественной версии.
  15. Если речь именно про доступ к внутренним wire/reg модулей дизайна из тестбенча, то, как заметил misyachniy, нет ничего лучше обращения к ним прямо из тестбенча вглубь иерархии, как указано выше. Таким образом к сигналам можно обращаться из блоков always, initial, тасков и системных функций в тестбенче.