Jump to content

    

Search the Community

Showing results for tags 'xilinx'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

  1. Всем привет. Не могу понять как поднять sfp на zc706 dev kit. Vivado 2018.3 В общем есть кит zc706 и sfp (1Gbps) модуль d-link DEV-310T. Для начала нужно просто запустить в internal loopback режиме. Как я понял этот режим работы конфигурируется через configuration_vector порт ip ядра 1G/2.5G Ethernet PCS/PMA or SGMII, поставил const ip на 5 разрядов со значением 2 (1G/2.5G Ethernet PCS/PMA or SGMII v16.0 LogiCORE IP Product Guide стр. 62), вроде никаких больше установок для этого вектора не нужны (в тч Auto-Negotiation Enable). Ядро настроенно как Tri-Mode Ethernet MAC, стандарт 1000BASEX, Receive GMII Clock Source: TXOUTCLK. после сборки и портированрия бинарника и hw файла в sdk, запустил в нём lwIP Echo server пример в котром проследил что тактовый генератор (SI5324) запрограммировался (если верить статусам драйвера i2c), но сам phy изернета проходит только пару шагов инициализации по I2С и начинает слать статус ошибки. Коллега мне объяснил что phy не нужно инитить и он должен работать по дефолту, я функцию закоментировал. пример шлёт в терминал: -----lwIP TCP echo server ------ Start PHY autonegotiation Waiting for PHY to complete autonegotiation. autonegotiation complete link speed for phy address 0: 1000 DHCP Timeout Configuring default IP of 192.168.1.10 Board IP: 192.168.1.10 Netmask : 255.255.255.0 Gateway : 192.168.1.1 TCP echo server started @ port 7 и повисает, при этом после строчки "link speed for phy address 0: 1000" пример секунд 10 ждет. Не очень понимаю, это ошибка сборки моего проекта или он ждёт каких то действий) Народ подскажите куда копать что бы sfp начало что то слать в loopback. xlconstant_1[0:0] == 1 xlconstant_2[4:0] == 2 (loopback control == 1) status_vector порт ethernet ip идущий на vio == 0, что говорит: бит 0 и 1 -> нет линка (1G/2.5G Ethernet PCS/PMA or SGMII v16.0 LogiCORE IP Product Guide стр. 64), а loopback он должен быть? Еще уточнение, sfp заткнут заглушкой, те без патчкорда, но на сколько я понимаю в данном режиме это не важно. Заранее спасибо за советы. design_1.pdf
  2. Всем привет, друзья помогите разобраться с AXI lite. Vivado 2018.3, linux mint Для начала, думаю можно просто зажечь диоды(их всего 4) на платке с помощью axi_gpio ip и моего контроллера, который пока не работает. Кто знает, может подскажет где ошибка. Диоды исправные, назначены верно, частота подается. Спасибо `timescale 1 ns / 1 ps module project_1 # ( parameter integer C_M_AXI_ADDR_WIDTH = 32, parameter integer C_M_AXI_DATA_WIDTH = 32 ) ( input wire CLK, input wire A_RESET_N, output wire [C_M_AXI_ADDR_WIDTH-1 : 0] M_AXI_AWADDR, output wire [2 : 0] M_AXI_AWPROT, output wire M_AXI_AWVALID, input wire M_AXI_AWREADY, output wire [C_M_AXI_DATA_WIDTH-1 : 0] M_AXI_WDATA, output wire [C_M_AXI_DATA_WIDTH/8-1 : 0] M_AXI_WSTRB, output wire M_AXI_WVALID, input wire M_AXI_WREADY, input wire [1 : 0] M_AXI_BRESP, input wire M_AXI_BVALID, output wire M_AXI_BREADY, output wire [C_M_AXI_ADDR_WIDTH-1 : 0] M_AXI_ARADDR, output wire [2 : 0] M_AXI_ARPROT, output wire M_AXI_ARVALID, input wire M_AXI_ARREADY, input wire [C_M_AXI_DATA_WIDTH-1 : 0] M_AXI_RDATA, input wire [1 : 0] M_AXI_RRESP, input wire M_AXI_RVALID, output wire M_AXI_RREADY ); reg axi_awvalid; reg axi_wvalid; reg [C_M_AXI_DATA_WIDTH-1 : 0] axi_ardata; reg start_single_read; reg start_resp_read; reg axi_arvalid; reg axi_rready; reg axi_bready; assign M_AXI_BREADY = axi_bready; assign M_AXI_RREADY = axi_rready; // адрес на axi, он же регистр данных порта 1 axi_gpio assign M_AXI_AWADDR = 32'h40000000; // записать в регистр данных порта gpio 1 данные, значение должно загореться на диодах assign M_AXI_WDATA = 32'h0000000A; assign M_AXI_AWPROT = 3'b000; assign M_AXI_AWVALID = axi_awvalid; assign M_AXI_WVALID = axi_wvalid; assign M_AXI_WSTRB = 4'b1111; always @(posedge CLK) begin if (A_RESET_N == 0) begin axi_awvalid <= 1'b0; axi_wvalid <= 1'b0; end else begin axi_awvalid <= 1'b1; axi_wvalid <= 1'b1; if (M_AXI_AWREADY && axi_awvalid) begin axi_awvalid <= 1'b0; start_single_read <= 1'b1; end if (M_AXI_WREADY && axi_wvalid) begin axi_wvalid <= 1'b0; end end end always @(posedge CLK) begin if (A_RESET_N == 0) begin axi_bready <= 1'b0; end else if (M_AXI_BVALID && ~axi_bready) begin axi_bready <= 1'b1; end else if (axi_bready) begin axi_bready <= 1'b0; end ; end assign M_AXI_ARADDR = 32'h40000008; assign M_AXI_ARPROT = 3'b001; assign M_AXI_ARVALID = axi_arvalid; always @(posedge CLK) begin if (A_RESET_N == 0) begin axi_arvalid <= 1'b0; end else if (start_single_read) begin axi_arvalid <= 1'b1; end else if (M_AXI_ARREADY && axi_arvalid) begin axi_arvalid <= 1'b0; end end always @(posedge CLK) begin if (M_AXI_RVALID && ~axi_arvalid) begin axi_ardata <= M_AXI_RDATA; end end always @(posedge CLK) begin if (A_RESET_N == 0 ) begin axi_rready <= 1'b0; end else if (M_AXI_RVALID && ~axi_rready) begin axi_rready <= 1'b0; end else if (axi_rready) begin axi_rready <= 1'b0; end end endmodule
  3. Всем привет. Мы проводим стримы по FPGA/ПЛИС тематике на твиче по адресу twitch.tv/fpgasystems Обычно, это среда и суббота в 20:00. Записи прошедших стримов лежат на youtube: youtube.com/c/fpgasystems Ждём Вас на стриме. Анонсы предстоящих эфиров в группе в телеграм @fpgasystems (https://t.me/fpgasystems) и VK и FB
  4. Приглашаем специалистов, работающих с ПЛИС и системами на кристалле, на бесплатный технический вебинар «Создание кастомного контроллера в среде Vivado». При разработке систем на кристалле на платформе Xilinx не всегда удается собрать систему только из «стандартных», то есть входящих в IP-каталог модулей. В таких случаях приходится разрабатывать собственный (кастомный) контроллер. Как организовать такую разработку наиболее эффективным способом будет рассказано и показано на вебинаре на примере контроллера PWM. Программа вебинара: создание проекта с использованием стандартного шаблона структура каталогов и файлов проекта кастомизация автоматически сгенерированных файлов добавление в проект собственных исходных файлов автономная отладка контроллера с использованием эмулятора шины обеспечение совместимости для различных серий ПЛИС задание параметров для контроллера упаковка контроллера и создание кастомного IP-ядра создание собственного репозитория и размещение в нем упакованного IP-ядра кастомного контроллера подключение IP-ядра к проекту действия при модернизации контроллера демонстрация работы IP-ядра контроллера PWM Ведущий вебинара – инженер технической поддержки (FAE) по продукции Xilinx Владимир Викулин. Вебинар состоится 11 августа в 14:00 (мск). Повтор вебинара 12 августа в 10:00 (мск). Участие в вебинаре бесплатное, после предварительной регистрации. Зарегистрироваться на вебинар Компания Макро Групп является официальным партнером Xilinx в России и странах СНГ.
  5. Москва, Очаковское шоссе, 34 зп от 120 до 150 тыс.руб. Связаться: 8-968-526-19-31 (Наталья), 8-965-336-65-96 (Николай Николаевич), orlova@form.ru Обязанности: Разработка проектов ПЛИС ALTERA/XILINX в составе сложных систем Тестирование и отладка проектов ПЛИС Разработка документации на проекты ПЛИС Требования: Высшее техническое образование в области радиотехники/радиоэлектроники Отличные навыки разработки, отладки и верификации проектов на ПЛИС ALTERA и/или XILINX Устойчивые навыки работы со средствами симуляции и средствами отладки проектов, лабораторными приборами и аппаратурой Уверенные знания языков Verilog/VHDL, высокоскоростных интерфейсов DDR, PCI Express, 1G/10G Ethernet и т.п. Иностранный язык: Английский чтение – перевод технических документов по специальности Будет преимуществом: Навыки разработки ЧТЗ и ПМИ на разрабатываемый проект, исходя из анализа ЧТЗ на модуль и ТЗ на изделие Навыки системного мышления, опыт декомпозиции задач по разработке проектов ПЛИС и предварительной оценки трудоемкости Условия: Работа в коллективе профессиональных разработчиков, нацеленных на результат. ФОРМ более 20 лет обеспечивает внутренний рынок электроники своей инновационной высокотехнологичной продукцией и представляет свои результаты на зарубежном рынке Предоставляются возможности для профессионального и карьерного роста в направлениях: Схемотехника, Системотехника, Программирование, управление продуктами и проектами НИОКР Оформление и работа - в полном соответствии с ТК РФ Вы будете обеспечены всеми необходимыми техническими средствами и современным рабочим местом для эффективной работы Конкурентная белая заработная плата, Размер заработной платы обсуждается с успешным кандидатом по результатам собеседования Работа на территории группы ФОРМ в БЦ West Park c доставкой до и от метро на корпоративном автобусе Скользящий рабочий график - начало рабочего дня с 7:30 до 10:00 Задачи, которые предстоит решать, настолько амбициозны, насколько они должны быть для конкуренции на зарубежном рынке средств измерений для электроники
  6. Искал домой подходящий роутер под Linux, как вариант, рассматривал тонкие клиенты. Наткнулся на Авито на нечто, называемое DZ22-2 и DZ19-2 (производства Fujitsu). Это мониторы, со встроенным тонким клиентом. Тонкий клиент собран на Spartan-6. Это чудо стоит 1500 руб. Ссылку не привожу - по модели легко найти. Не могу оценить, насколько это перспективное приобретение, так как сам занимаюсь Альтерой. Тем не менее, вдруг кому пригодится.
  7. Xilinx, Spartan6, Synplify, ISE. Я использую библиотечный модуль ICAP, который нужен для управления прошивками в конф флешке. Его инстанцирование выглядит так: ICAP_SPARTAN6 ICAP_SPARTAN6 ( .CLK ( CLK ), // <- .CE ( icap_c ), // <- .WRITE ( icap_c ), // <- .BUSY ( ), // -> .I ( icap_i ), // <- [15:0] .O ( ));// -> [15:0] Оптимизатор в Synplify удаляет нахрен этот ICAP, потому что в инстансе не используются выходы. В реальности этот ICAP присоединен к загрузочной флешке и еще к каким то кишкам внутри контроллера загрузки fpga, и очень нужен. Но синтезатор это не видит, дурак он.. Мне приходится использовать выход BUSY, тянуть его по проекту и подключать куда то, где он почти не будет мешать и не сможет оптимизироваться в никуда. Должно же быть более изящное решение! Я знаю, есть директивы /* synthesis syn_keep = 1 syn_preserve = 1*/. Я уже делал так, не помогло: ICAP_SPARTAN6/* synthesis syn_keep = 1 syn_preserve = 1*/ ICAP_SPARTAN6/* synthesis syn_keep = 1 syn_preserve = 1*/ ( .CLK ( CLK ), // <- .CE ( icap_c ), // <- .WRITE ( icap_c ), // <- .BUSY ( ), // -> .I ( icap_i ), // <- [15:0] .O ( ));// -> [15:0] Что делать? Спасите.
  8. На вебинаре вы познакомитесь с новой средой разработки Vitis, в которой реализована парадигма высокоуровневого проектирования, и с двумя новыми аппаратными платформами от Xilinx – Versal и Alveo, для которых разработка в среде Vitis наиболее эффективна. Вебинар предназначен как для разработчиков для ПЛИС и СнК, желающих повысить свою продуктивность с помощью средств высокоуровневого проектирования, так и для программистов, ищущих возможности повышения производительности своих компьютерных систем с помощью адаптируемых аппаратных ускорителей Xilinx Alveo. Вебинар состоится 31 марта в 14:00 (мск). Повтор вебинара 2 апреля в 10:00 (мск). Участие в вебинаре бесплатное, после предварительной регистрации. Регистрация на вебинар
  9. Nexys 3 Spartan-6 Производитель: DIGILENT Микросхема: Xilinx Spartan-6 XC6LX16-CS324 Ссылка на подробную информацию: https://store.digilentinc.com/nexys-3-spartan-6-fpga-trainer-board-limited-time-see-nexys4-ddr/ В наличии есть 5 штук. Все платы находятся в штатных пластиковых коробках. Цена: 8000 руб ------------------------------------------------------------------------------------------- Spartan-6 FPGA SP605 Evaluation Kit Производитель: Xilinx Микросхема: Spartan-6 XC6SLX45T-FGG484-3C Ссылка на подробную информацию: https://www.xilinx.com/products/boards-and-kits/ek-s6-sp605-g.html В наличии есть 1 штука в штатной коробке. Цена: 18000 руб ------------------------------------------------------------------------------------------- Virtex-6 FPGA ML605 evaluation kit Производитель: Xilinx Микросхема: Virtex-6 XC6VLX240T-1FFG1156 Ссылка: https://www.xilinx.com/products/boards-and-kits/ek-v6-ml605-g.html В наличии есть 1 штука в штатной коробке. Цена: 22000 руб ------------------------------------------------------------------------------------------- Платы почти не использовались - лежат без дела. Пересылать почтой России их не хотелось бы, но в Москву и другие близлежащие города можно будет передать. Доп. фото:
  10. Дооброго времени суток. Читал я тут соседние темы на форуме и вспомнилась старая задача для проекта на Zynq. А именно как можно увеличить адресное пространство (в Address Editor BD) с одного гигабайта до хотя бы двух. В спецификации указано что из 32х бит адресного пространства 3 Гб зарезервировано под внутренние нужды ARM и только 1 Гб доступен для адрессации "периферии" в PL. Один из вариантов - это сделать переключатель по какому-то адресу и свитчить выходные адреса старшим/младшим виртуальным битом. В таком случае проблема вылазит в конфигурации карты и сложность в обратоном чтении от устройств (их около 2х десятков). Второй вариант - подключить несколько устройств на одинаковые адреса, но управлять сигналом разрешения работы (нет необходимости работать паралельно). Проблема конфигурации карты остаётся ну и частичнаф сложность в реализации. Собственно какой вариант лучше/использовался юзерами. Или же есть ещё какой-то способ проще/лучше p.s. Раздумия над AXI передачей наводят на мысль, что собственно адреса "раздаёт" AXI Interconnect, при том, что вся остальная перифферия особо то ничего и не знает что и где лежит (отсюда и требование подключения одной связки master-slave). Насколько данная мысль правильная? Может есть какой-то способ "обмануть" или конверизировать адреса в Interconnect'е, тогда задача решится сама собой.
  11. Добрый день, форумчане! Встал вопрос о внедрении системы контроля версий (Git) в процесс проектирования с использованием САПР Vivado. Немного покопавшись в этих самых интернетах, вычитал, что народ создает файловую структуру рядом с проектом, в которой хранятся исходники проекта (*.v, *.vhdl, *.xci, *.elf и прочее и прочее). Собственно, эту самую структуру и засовывают в СКВ. Далее вопрос: Как заполнить эту самую структуру перед коммитом? *Мысли в слух* Вариант 1. У меня есть отлаженный проект. И я ручками/не ручками (скриптами) из финальной версии проекта перетаскиваю в файловую структуру для СКВ все исходники. При этом в IDE исходники подключены из папки проекта. Коммитим. Когда вытаскиваем данный коммит (pull) из СКВ ручками/скриптами подсовываем в директорию проекта, затем собираем. Вариант 2. У меня есть неотлаженный проект. Я по мере допиливания проекта добавляю IP и исходники, затем ручками перетаскиваю во внешние папки и далее в IDE указываю расположение исходников во внешних папках. В финальной версии проекта перед коммитом все файлы уже на своих местах, т.е. в файловой структуре для СКВ. Коммитим. При вытаскивании из СКВ файлы исходников автоматически подменятся и останется только собрать проект. Вариант 3. Накатать скрипт, который из финальной версии проекта вытаскивает нужные исходники и генерирует скрипт, который на основании исходников создает проект с нуля (recreate). Все это добро коммитится. Вариант 4. Мыслю вообще не в том направлении.
  12. Всем привет! Возникла проблема в конфигурации FPGA в режиме PCIE3.0 Tandem у отладочной платы KCU105. В проекте есть светодиод (led 0 на плате), который при второй стадии загрузки (по PCIE3.0) должен включатся. Порядок действий: Собираю проект design example. Констрейны для bitstream: После сборки генерирую MCS командой: Прошиваю конфигурационную память скриптом который есть в архиве program_spi.tcl Выключаю хост. Потом включаю. После загрузки вижу девайс: Читаю регисры с помощью mcap версия bitstream совпадает с ожидаемой. Прошиваю второй стадией: Поле прошивки ядро выдает сообщеие: После этого светодиод не горит, а mcap говорит: А если прошить FPGA по JTAG первой стадией, затем сделать reboot и прошить mcap воторой стадией, то светодиод горит и сообщения в ядре по irq нет. Данное IRQ принадлежит: Память конфигурационная память прошивается, через JTAG бластер по разъему J3. Версии: Vivado v2019.1 (64-bit) Хост в котором карточка Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux Утилиты MCAP взята отсюда https://www.xilinx.com/support/answers/64761.html Ревизия KCU105 C Версия pci-utils pciutils-3.3.1 пробовал и с 3.6.3 одинаковый результат. В чем может быть проблема? pcie3_ultrascale_0_ex.zip
  13. Итак новая платформа с новыми возможностями и отсутствием вменяемых гайдов. Всё как обычно, но работать то нужно, отсюда возникает задача создать проект и залить его на Гит. Для одного компа всё вроде бы работает, но создаётся впечатление, что в объективных файлах проекта (bare metal) прописывается абсолютный путь ибо на других машинах уже ничего не рабоатет. Возможно кто-то использовал Vitis с Git'ом или знает как это делать. Буду благодарен за любую информацию от ссылок где кто-то как-то делал гайды или конкретную документацию (ug1400 не помог никапли). Создаётся впечатление, что как в Vivado придётся создавать tcl скрипты с организацией проекта и последующей генерацией структуры, а этого очень не хочется.
  14. Всем привет! vivado 2018.3 artyx7 ac701 development kit. Столкнулся с проблемой в назначение ножек. В идеи когда при создание проекта выбирается борда вместо отделенного ПЛИСа, то Vivado в настройках ip позволяет сделать привязку к определённым в отладочной плате выводам. Как я и сделал в моём случае. Дело в том что среде ругается на отсутствие назначений ножек для axi_ethernetlite. На схеме к отладке ножек этих нет. Что делаю не так?) phy_col, phy_crs, phy_rst_n ... phy_tx_data[3:0] при этом phy_mdc, phy_mdio_i,phy_mdio_o,phy_mdio_t среда назначила нормально. Схему block design прикрепил в атач. Заранее спасибо за помощь) ethernet_lite.pdf
  15. Всем привет, подскажите пожалуйста, как правильно подключить ddr к microScale? Задача для многих простая, но боюсь что я подвис. Дело в том что проц удержеваеться в ресете при дэбаге в SDK. Использую отладку, но при создание проекта абстрагировался от нее и выбрал просто плисину. Vivado 2018.3 Artix 7 Constraint file: set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design] set_property CFGBVS VCCO [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property PACKAGE_PIN P6 [get_ports {reset}] set_property IOSTANDARD SSTL15 [get_ports {reset}] set_property PACKAGE_PIN U19 [get_ports {tx}] set_property IOSTANDARD LVCMOS18 [get_ports {tx}] set_property PACKAGE_PIN T19 [get_ports {rx}] set_property IOSTANDARD LVCMOS18 [get_ports {rx}]
  16. Всем привет! Возможно, вопрос обсуждался, но мне найти не удалось. Суть в следующем. Есть проект, успешно собирается и даже работает. Но при синтезе возникают тонны предупреждений такого рода: WARNING: [Synth 8-3331] design <...> has unconnected port <...>. Выглядит угрожающе, но на деле по нетлисту (схематику) видно, что сигналы-то на месте, всё подключено. Анализ показывает, что почти все они относятся к сигналам интерфейсов. И похоже, что синтезатор ругается на сигналы модпортов интерфейса, которые не используется в том или ином модуле. Т.е. насколько понимаю, картина такая: есть интерфейс, у него есть модпорты m0, m1, s0, модпорт m0 подключается к модулю master0, модпорт m1 - к модулю master1, а модпорт s0 - к модулю slave0. Получается, что интерфейс прокинут во все модули, но часть сигналов, которые относятся к другим модпортам, естественно в данном конкретном модуле не подключена - например, в модуле master0 не подключены сигналы модпоротов m1 и s0. Получается, что ругань как бы не по делу. Собственно вопрос: как с этим бороться, т.к. подобные предупреждения выглядят неприятно?
  17. Проходим туториалы по Zynq-7000 с платкой Minized. Есть как теоретическая часть, так и практическая. Лекции и простенькие лабораторные работы -- то что нужно для начала освоения системы-на-кристалле от Xilinx. Ссылка на плейлист: https://www.youtube.com/playlist?list=PLWMg96mLREOekNVh8-3U5JZv2NTCLMbP5
  18. Всем привет! Прошу помощи. Кто-нибудь знает, как правильно пользоваться сигналами fc_* из ядра PCIe? Вообще суть проблемы такая. Имеется плата с Spartan 6 45T. Firmware предоставляет регистры для записи-чтения по инициативе процессора (как memory), через них задаётся, что делать. Потом firmware делает запросы к памяти (DMA). Я реализовал flow control по четвёртому методу DATA_FC из UG672. Значения Total_CplH и Total_CplD брал, как рекомендовано, из таблицы E-1 (для моего случая 32 и 256 соответственно), хотя там дальше говорится: In the case where infinite credits have been advertised to the Link Partner for a specific Credit pool, such as Completion Credits for Endpoints, the user application should use this value along with the methods described in Appendix E, Managing Receive-Buffer Space for Inbound Completions to avoid completion buffer overflow. И до поры, до времени всё работало замечательно, но вот я нарвался на то, что передача данных затыкается при работе с процессорным модулем ComExpress - запросы из FPGA MEMORY_READ ушли, а ответов на них не пришло. Подозреваю, что у этого модуля более суровые ограничения на число запросов в очереди. Решил посмотреть на то, какие значения выставляются на fc_ph, fc_pd, fc_nph, fc_npd, fc_cplh и fc_cpld для разных значений fc_sel в разные моменты времени. Должен сообщить, что значения эти выглядят странными и непонятными, причём, я не нашёл какого-то внятного user guide, чтобы там объяснялось, как этими сигналами правильно пользоваться для целей flow control. Например, для fc_sel=000 (Receive Credits Available Space) значения такие: fc_ph = 32, fc_pd = 211, fc_nph = 8, fc_npd = 8, fc_cplh = 40, fc_cpld = 211 (Крайне смущают очень маленькие значения для fc_nph и fc_npd.) для fc_sel=100 (Transmit Credits Available Space) значения такие: fc_ph = 12, fc_pd = 80, fc_nph = 12, fc_npd = 1, fc_cplh = 0x7F, fc_cpld = 0x7FF (в соответствии с таблицей 5-17 из UG672 значения 0x7F и 0x7FF обозначают Infinite credits available). Я правильно понимаю, что мне надо взять fc_nph = 8, fc_npd = 8 вместо 32 и 256 для Total_CplH и Total_CplD?
  19. Сборка софт процессора MicroBlaze от Xilinx на русском в пошаговом режиме с огромным количеством картинок в нескольких частях: Разработка процессорной системы на базе софт-процессора MicroBlaze в среде Xilinx Vivado IDE/HLx. Часть 1. Разработка процессорной системы на базе софт-процессора MicroBlaze в среде Xilinx Vivado IDE/HLx. Часть 2. Программирование загрузочной FLASH для запуска MicroBlaze Подключение подсистемы памяти к MicroBlaze (MIG 7 Series)
  20. Доброго времени суток, уважаемые форумчане. Балуюсь с ядром ПФ в Vivado. Ядро сконфигурировано следующим образом: - размер - 8192 точки. - Тактовая - 100 МГц. - Сэмплинг - 100 Msps. - Без масштабирования (Unscaled). - convergent rounding. - натуральный порядок вывода. В качестве тестового сигнала использую сумму двух комплексных экспонент, однак на выходе модуля получаю паразитные гармоники (см. рис.). Причем, мнимая часть более ли менее похожа на правда, а шум появляется именно в реальной части. Чем это может быть вызвано и как с таким бороться? На сколько правильно вообще у меня сконфигурировано ядро? Заранее благодарен за ответы. Код модуля: module tb_xfft(); reg CLK = 0; always #5 CLK = ~CLK; wire [31:0] signal1, signal2, signal; wire signal1_valid, signal2_valid, signal_valid; assign signal_valid = signal1_valid & signal2_valid; dds_out16 inst_dds_out16( .aclk(CLK), .m_axis_data_tdata(signal1), .m_axis_data_tvalid(signal1_valid) ); dds_out16_3M inst_dds_out16_3M( .aclk(CLK), .m_axis_data_tdata(signal2), .m_axis_data_tvalid(signal2_valid) ); wire signed [15:0] sin1, cos1, sin2, cos2, sin, cos; wire signed [16:0] ssin, scos; assign sin1 = signal1[31:16]; assign cos1 = signal1[15:0]; assign sin2 = signal2[31:16]; assign cos2 = signal2[15:0]; assign ssin = sin1 + sin2; assign scos = cos1 + cos2; assign sin = ssin[16:1]; assign cos = scos[16:1]; assign signal = {sin, cos}; wire fft_valid; wire [31:0] fft; wire new_fft; wire config_valid; reg [7:0] config_data = {7'b0, 1'b1}; xfft inst_xfft( .aclk(CLK),//aclk : IN STD_LOGIC; .s_axis_config_tdata(config_data),//s_axis_config_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0); .s_axis_config_tvalid(config_valid),//s_axis_config_tvalid : IN STD_LOGIC; .s_axis_config_tready(config_valid),//s_axis_config_tready : OUT STD_LOGIC; .s_axis_data_tdata(signal),//s_axis_data_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0); .s_axis_data_tvalid(signal_valid),//s_axis_data_tvalid : IN STD_LOGIC; //.s_axis_data_tready(),//s_axis_data_tready : OUT STD_LOGIC; //.s_axis_data_tlast(),//s_axis_data_tlast : IN STD_LOGIC; .m_axis_data_tdata(fft),//m_axis_data_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); .m_axis_data_tvalid(fft_valid),//m_axis_data_tvalid : OUT STD_LOGIC; .m_axis_data_tready(1),//m_axis_data_tready : IN STD_LOGIC; //m_axis_data_tlast : OUT STD_LOGIC; .event_frame_started(new_fft) ); wire [15:0] fft_re, fft_im; assign fft_re = fft[15:0]; assign fft_im = fft[31:16]; wire [31:0] Re, Im; mult_16x16 inst_mult_re( .CLK(CLK), .A(fft_re), .B(fft_re), .P(Re) ); mult_16x16 inst_mult_im( .CLK(CLK), .A(fft_im), .B(fft_im), .P(Im) ); reg [32:0] Abs = 0; always @(posedge CLK) begin if (fft_valid) begin Abs <= Re + Im; end else begin Abs <= 0; end end endmodule
  21. Продам отладочный комплект Artix-7 (AES-A7EV-7A50T-G). Новый, коробка не открывалась. Описание по ссылке: https://www.xilinx.com/products/boards-and-kits/1-4pilqh.html Цена: 20 000 руб. Территориально - Москва. Отправка почтой не проблема.
  22. Взял за основу пример UDP обмена на плате Spartan 6. Используюя накопленный опыт, решил использовать струтуру в которой не нужно выравнивания (надеюсь ;-)) // структура короткого запроса typedef struct{ int cmd; // код команды/запроса int addr; // адрес обращения int data; // данные для записи/чтения unsigned int crc; }SHORT_CMD; Обрабатываю пакеты под отладчиком в плате. 1) Копирую нужную часть memcpy(&short_cmd, udp_packet, sizeof(SHORT_CMD)); 2) Подсчитываю контрольную суссу, она сходиться 3) По коду запроса вызываю функцию обработки В отладчике видно что поле data имеет значение 0xAA 4)Захожу в функцию Параметр data передается в функцию с перестановкой байт. addr, наверное тоже, но не видно так как он равен нулю. Настройки процессора следующие: Допустим можно попутать big/little endian. Почему компилятор корректно извлекает из структуры число, а передает его в функцию некорректно?
  23. Приветствую! Недавно пересел с PlanAhead на Vivado и как обычно полезли проблемы. При перезапуске симуляции в окне Vivado происходит вылет всей IDE без ошибок и/или каких-либо всплывающих окон, просто терминация процесса. ПК: Windows 10 x 64 Vivado 2018.3.1 x64/ симулятор встроенный, XSIM Проект написан полностью на SystemVerilog (3 регистра) и тестбенч тоже Есть какое-то решение более-менее адекватное или стоит подождать Vivado 2019?
  24. Добрый день, хочу поделится ссылкой на проект U-boot для платы ZedBoard Возможно будет полезно новичками которые хотят подробнее разобраться с загрузчиком или что-то подправить под себя. Проект позволяет собирать U-boot из исходников и так же запускать его из под SDK с точками останова как в режиме bare-metal. Все инструкции в репозитории + видеоинструкция. Если у кого получится повторить буду рад услышать ответ. Из особенностей для отладки пришлось закомментировать часть функций SPL, все комментарии добавленные мной начинаются с /* mollex: comment , количество небольшое. Ссылка на проет: https://github.com/mollex/workspace20154_uboot_dev
  25. Есть готовые устройства на Xilinx Zinq 7010, надо как-то защитить прошивку от реверс инжиниринга, копируют пока ладно, пусть. без модификации плат. Желательно чтоб можно было стандартными имеющимися средствами обновить прошивку (уже есть это, линукс стоит, можно и u-boot обновить). Идеи - так как устройства IoT, на связи с нашими серверами, можно через защищенный канал что-то делать, например после обновления подгружать сгенерированную прошивку именно для этого чипа по защищенному каналу. Есть под них прошивка с U-BOOT, исходники. Прошивка должна будет загружаться как и сейчас для обновления по HTTP, а также иметь механизм возврата на старую (незащищенную) стандартную версию. Мы в Москве, возможна удалённая работа, образцы железяк дадим или организуем удалённый доступ. Сроки и бюджет обсуждаемы. может поможет https://www.xilinx.com/support/documentation/application_notes/xapp1226-protecting-info.pdf