Jump to content

    

Igor657

Участник
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Igor657

  • Rank
    Участник

Recent Profile Visitors

3570 profile views
  1. Добрый, день, Могу предложить сделать проект с бер тестером (см список ip ядер в Vivado) Установить скорости трансиверов, соотвествующие Вашему Pcie. В этой корке есть режим перебора разных настроек трансиверов. Может найдёте какую-нибудь закономерность. Вот только как уговорить Pcie корку использовать подобранные параметры не подскажу, но исходники корок можно править в Vidado. Успехов !
  2. Про эмуляцию стандартной карты - не думаю, что это простой путь. Обычно их производители не раскрывают внутреннюю структуру и исходный код драйвера и следовательно повторить их будет не просто. Обработка на уровне MAC не сложна, но с интерфейсом чип PHY-FPGA не всё так просто. Если опыта нет, то время потратите. Это я про 1G. С 10G не работал. Как я понимаю стандарта на межпортовое взаимодействие сетевых карт в Виндовс нет. Каждый делает как хочет. Драйвер для PCIe на таких скоростях потребует поддержки DMA, что сильно усложняет дизайн как в FPGA так и в драйвере. Успехов!
  3. Нашел ошибку в блоке Гарднера. Спасибо.
  4. Добрый день, Пытаюсь поcтроить модель демодулятора QPSK. Сейчас на этапе символьной синхронизации. Есть блок Фарроу, есть блок Гарднера, есть Loop фильтр(2-го порядка, пропорц+интегр части), есть аккумулятор мю для фарроу. В принципе работает как ожидается, но только на модельном сигнале "11,00,11,00 ..." т.е. когда по i и по q максимум переходов через ноль На случайном сигнале ошибку (выход после loop фильтра) начинает достаточно сильно колбасить. В принципе это понятно - переходы через ноль теперь есть не каждый такт и следовательно на Гарднера приходят комплекты отсчётов, у который межсимвольный отсчёт не всегда ноль, что даёт большие значения на его выходе. Loop фильтр их гасит похоже не очень эффективно, т.к. у него есть пропорциональная часть. Я всё-таки предполагал, что выход loop фильтра должен быть очень стабилен. Ну максимум шевелится в каком-то далёком знаке. Как с этим бороться ? 1. Фильтровать данные, поступающие на Гарднера ? Подавать только те, у которых межсимвольный отсчёт около нуля? 2. Считать коэффициенты loop фильтра как-то по другому ? Считал по документу http://ece485web.groups.et.byu.net/ee485.f...s/pll_notes.pdf, стр 333. K0 = 1 Kp = 1 bandwidth (% of symbol speed) = 0.125 получил k1 0,003992012 k2 3,99201E-06 3. Есть какой-то секретный ингредиент ? Заранее спасибо за ответы.
  5. Подскажите пожалуйста почему на Altere (Stratix 5, Arria 10) не получается добиться отсутствия setup и hold violation для такого интерфейса ? На Xilinx вроде получается - Virtex 4, Virtex 6 (уже похуже) Для эксперимента попробовал Stratix 2 GX - тоже компилируется без проблем. Т.е. чем новее чип тем хуже. Проблемы именно с путём от пинов до DDR регистра. Source-synchronous интерфейс(только входы). PLL в source-synchronous режиме и сдвигает клок на + 90 градусов. Тестовый проект прилагается. Заранее спасибо за ответы. lvds.zip
  6. Доброго времени суток. Стоит ли пытаться трассировать плату с 5 и возможно 10 гигабитными трансиверами (Pcie + 1Gsps ADC c Jesd204b) в Алтиуме(есть опыт) или начинать сразу изучать Cadence ? И ещё вопрос. Технологии целостности сигнала реально полезная и необходимая вещь или достаточно делать цепи покороче, чтобы заработало. Заранее спасибо за ответы
  7. В том то и дело, что я SOPC Builderом не пользуюсь Просто сделал варацию мегафункции в мегавизарде, подключил к pll. Памяти он не ест, по отчёту до оптимизации 1344 Combinational ALUTs и 652 Dedicated Logic Registers Если кто пользуется данным блоком на Arria V или на Stratix V напишите сколько у Вас ячеек уходит на этот блок.
  8. Здравствуйте, Правильно ли я понял, что в пятом циклоне у ПЛЛ уже нет доступа к сканчейну и переконфигурировать её можно только c помощью функции altera_pll_reconfig Я подключил, она поела около 1000 ALM, это у всех так ? это нормально? Вроде должен быть элементарный преобразователь на шину avalon причём когда разворачиваю вложенные блоки после компиляции непонятно откуда небегает 1000 ALM Квартус 13 sp1 Заранее спасибо за ответы.
  9. Что купить за $ 3000-4000 ? Задача - Мелкосерийная пайка BGA - около 100 шт в месяц + ремонт (выпаивание, восстановление шариков) и создание прототипов. Я так понимаю самая продвинутая технология - это горячим воздухом в малом объёме. Дорогущие импортные станции имеенно так сделаны в большинстве своём. видел такую у Madeltech, но где купить не понятно. У инфракрасных бывают проблемы с перегревом или недогревом, особенно для бессвинцовых микросхем. Переимущество - возможна индивидуальная работа с каждой микросхемой. Есть настольные печи - горячим воздухом в большом объёме. как я понимаю качество пайки высокое, но непонятно как выпаивать. И нагревается вся плата целиком. Как решаете эти проблемы, что используете ? Заранее спасибо за ответы.
  10. Доброго времени суток, Обнаружилась проблема с AD8369ARUZ (новая бессвинцовая). Управляю усилением в режиме SPI. Устанавливаемое усиление бывает непредсказуемо, если код, задающий усиление отличается от 0000 или 1111 С AD8369ARU (старая со свинцом) проблемы нет. Код на микроконтроллере тот же самый, частота SPI много меньше максимальной. Заранее спасибо за ответы.
  11. Опыт работы с: MCU Arm7, 51-е семейство; IAR, Keil; FPGA Altera; разработка интерфейса пользователя (символьные и графические ЖКМ); Pcb PCAD 200x; Адрес электронной почты: igor657@mail.ru
  12. E1 CRC MFAS

    А не подскажите ли в какой рекомендации это указано ? Про 2 раза я читал, но это косалось _CAS_ MFAS, а про _CRC_ MFAS в G.706 я ничего не нашел. Успехов во всех начинаниях !
  13. E1 CRC MFAS

    Добрый день. Подскажите пожалуйста, каковы критерии потери синхронизации CRC MFAS ? Нужно ли после неё сбрасывать синхронизацию FAS ? Заранее спасибо за ответы.
  14. Спасибо, Doka. Могли бы Вы пояснить почему делите именно на 2^14 ? Я попробовал изменить разрядность линий задержки. Уменьшил их до 16 бит. В этом случае оказалость что мне нужно делать смещение 2 бита вправо, чтобы фильтр работал корректно. Коэффициенты оставил 16-ти битные. Мое смещение вправо эквивалентно умножению. т.о. если бы я ограничивал разрядность на выходе своего сумматора (пусть его разрядность 32) я бы брал старшие 16 бит (что эквивалентно делению на 2^16), а потом умножал бы на 2^2 (смещение вправо). В итоге получается, что это эквивалентно делению на 2^14. Хочу понять принцип.
  15. Доброго времени суток ! Я пытаюсь разобраться как работает фильтр баттерворта 1-го порядка. Использую Matlab и компоненты DspBuilder (что это такое могу пояснить, если необходимо) Фильтр целочисленный Для определенности: структура фильтра - Direct form I ФВЧ частота дискр = 256000 Гц, f_-3дБ = 18000 Коэффициенты - 16 бит (b0=32767, b1=-32767; a1=21000) Входные значения 13 бит Разрядность линий задержек - 18 бит В настройках компонентов указываю signed integer, хочу все сделать в целых числах. при умножении и коэффициенты и входные значения подвергаются sign extension до 18 бит Никак не могу понять как формируется линия обратной связи В примерах, которые мне удалось найти выходного значение основного сумматора ограничивается до разрядности линий задержек. Причем обычно - это старшие биты. У меня же фильтр начинает корректно работать если брать эти 18 старших бит со сдвигом в 4 бита вправо. т.е. если выходная разрядность сумматора 18+18+1=37 бит [36..0], то мне приходится делать так: feedback[17..0] = adder_out[32..15] Никак не могу понять почему именно 4 бита и какова общая закономерность? Заранее спасибо за ответы.