Перейти к содержанию
    

dpavlov

Участник
  • Постов

    21
  • Зарегистрирован

  • Посещение

Репутация

3 Обычный

Информация о dpavlov

  • Звание
    Участник
    Участник

Посетители профиля

1 455 просмотров профиля
  1. Добрый день, По поводу моделирования алгоритмов отдельных компонентов у меня есть небольшая статья на хабре: https://habr.com/ru/articles/824958/ Возможно, кому то будет полезно. Там описана методика моделирования блока FFT. Дмитрий
  2. Добрый день, Спасибо за цифры, будет с чем сравнивать. Но как я уже написал выше, я не занимался оптимизацией под FPGA. Задачи достичь максимальной частоты тоже не было. Например, для low-power решений длинные конвейеры могут оказаться скорее недостатком. Необходимо было разработать сбалансированное решение для использования в ASIC. У меня есть несколько уточнений по цифрам, но это уже в "личку" напишу. Дмитрий
  3. Размер входных/выходных данных задается параметром: 16, 20, 24. Но можно и для других размеров собрать. Проводил пробный синтез для разрядности 20 бит, для xcvu9p-flga2104-2L-e при заданной частоте 300МГц (период = 3.33ns). Отрицательный слэк составил -0.116, т.е. достижимая частота получилась ~290МГц. Сильно оптимизацией для FPGA не занимался, основной упор делался на качество кода для использование проектах для ASIC. Пробный синтез для TSMC90 : заданная частота 250МГц(период 4ns), uncertainty = 10%, отрицательный слэк составил -0.13, т.е. частота ~242МГц. Если интересно, возможна модификация для обработки векторов 64К и коэффициентом параллельности 16. Детали можно обсудить в личке.
  4. Доступна расширенная версия СФБ для вычисления БПФ/ОБПФ для векторов размерностью 16К и параллельной обработкой 4 последовательных отсчетов: позволяет обрабатывать данные полученные на частоте дискретизации в 4 раза выше частоты работы СФБ. На хабре есть статья описывающая методику и результаты моделирования для однопоточного блока БПФ на 1К отсчетов: https://habr.com/ru/articles/824958/
  5. Доступен еще один СФБ для вычисления БПФ/ОБП. Реализация в процессе регистрации в “ФЕДЕРАЛЬНОЙ СЛУЖБЕ ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ”. Блок построен по схеме RADIX-4 и поддерживает конфигурирование для следующих размеров БПФ/ОБПФ: 16, 64, 256, 1024, 4096. Разрядности входных и выходных данных конфигурируются в диапазоне 16-24 бита. СФБ разработан на SystemVerilog для использования в проектах разработки микросхем (ASIC). Есть возможность предоставить модель(скомпилировано с помощью Verilator) для оценки характеристик модуля Возможна модификация модуля под ваши требования.
  6. Добрый день, Если не найдете проблему, присылайте подробности в личку. Дмитрий
  7. Разработаю по вашему ТЗ сложно-функциональные блоки для использования в проектах разработки микросхем (ASIC). Возможно проведение консультирования/обучения в области разработки RTL проектов для ASIC. О себе: опыт разработки RTL более 20 лет. Опыт разработки СФБ для ASIC более 15 лет, включая проектирование, разработку, верификацию. Предыдущие места работы: Internet Telecom, Intel, Syntacore. Реализованные проекты: CФ блоки для DSP обработки (NCO, FIR, FFT), микроконтроллеры x86, RISC-V. Прямо сейчас доступен СФБ "Цифровой генератор комплексной экспоненты"(NCO) собственной разработки. Содержит фазовый аккумулятор, синтезатор комплексной экспоненты и модулятор входного сигнала. Фазовый аккумулятор обеспечивает точность задания начальной фазы и фазового изменения (фазового инкремента) : 2*PI/(2^32). Кроме того, фазовый аккумулятор поддерживает возможность однократного изменения фазы (может использоваться для фазовой коррекции). Синтезатор сигнала использует таблицу значений Sin/Cos размером ~2кБайта. В качестве входного сигнала используются 16-битные комплексные значения (RE[16] + IM[16]). Минимальное значение SNR на выходе модулятора > 94dB. Максимальное значение шума на выходе модулятора < -104dB (SFDR > 104dB). Тестовое покрытие > 99% СФБ разработан на SystemVerilog для использования в проектах разработки микросхем (ASIC). Есть возможность предоставить модель(скомпилировано с помощью Verilator) для оценки характеристик модуля Возможна модификация модуля под ваши требования. Контакты: Skype: dmitri.pavlov1 Или здесь в "личку" Дмитрий
  8. Добрый день, Как я написал ранее, задачу можно условно разделить на две части: подготовка RTL и Back-End. Даже наверное на три, еще непосредственно производство/изготовление на фабрике. По RTL-ым работам, финансовые затраты будут сильно зависеть от сложности самого проекта и объема работ, связанных с разработкой IP на замену существующим IP от FPGA вендора. Найти одного инженера, который Вам все сделает - задачи практически нереализуемая. Найти несколько независимых инженеров можно, но организовать их совместную командную работу - будет достаточно сложно. Оптимальный вариант, искать компанию, которая "сделает все под ключ". Учитывая, что Вы хотите за полгода сделать все, скорее всего, полгода уйдет только на RTL. Если взять за основу, что потребуется задействовать 5-6 инженеров на полгода, то получится примерно 10М+, только на RTL. Но все будет зависеть от сложности проекта. Дмитрий
  9. Добрый день, Очень сильно будет зависеть от самого проекта. Но для начала, нужно определиться что Вам нужно: подготовить RTL для изготовления своего ASIC(на выходе SV) или нужна еще и топология(GDSII) ? "FPGA proven" - это хорошо. Это необходимое но недостаточное условие. Для начала, нужно будет заменить все FPGA-ые элементы на модули написанные на Verilog/SystemVerilog. Возможно, какие-то IP придется покупать. В зависимости от качества существующего RTL, что-то придется переписывать, чтобы снизить количество Lint-warnings (анализировать 1000-и ворнингов на предмет наличия реальной проблемы в RTL - плохая практика, лучше сразу готовить RTL правильно). Клоки: если в проекте используется несколько клок-доменов - решить проблемы, связанные с CDC. Если необходимо экономить power - нужно разработать структуру гэйтирования клоков(в FPGA, скорее всего, проверить работу гэйтирования не получится). Резеты: продумать структуру резетов. Для FPGA рекомендуется использовать синхронный резет. Для ASIC рекомендуется использовать асинхронный резет. Есть определенный требования на генерацию резетов. Возможно придется переписывать код. Если в проекте используется несколько клок/резет доменов - решить проблемы связанные с RDC. Память: вынести все блоки памяти в отдельные модули, чтобы на BE заменить на сгенерированные памяти от фаба. X-propagation: проанализировать текущий дизайн на предмет X-optimism/pessimism. Возможно, придется что-то переписывать. Тестирование: выполнить верификацию и валидацию дизайна (отдельная, трудоемкая задача). DFT: существуют определенный требования к коду, для интеграции с DFT. Для клоков/резетов лучше сразу внести необходимые модификации. Памяти - отдельная история. Отладка(debug) : в ASIC вы не сможете подключить чипскоп или сигналтап. Стоит сразу подумать про возможности отладки через JTAG. Это все работы, связанные только с RTL. По поводу топологии, думаю коллеги смогут лучше меня проконсультировать. В любом случае, свой ASIC - удовольствие не дешевое. С другой стороны, свой ASIC - это качественно новый уровень разработки проектов. Это как переход футбольной команды из первой лиги в высшую. Дмитрий
  10. Добрый день, Возможно, младшие биты не реализованы. Попробуйте в MTVEC записать FF....FF(все единицы) и прочитать обратно. Прочитаются тоже все 1 ? Дмитрий
  11. Добрый день, Согласно официальной версии (file:///C:/Users/dmitr/Downloads/riscv-privileged-20211203.pdf, раздел 3.1.7, стр. 29) для битов MTVEC[1:0] значения "10" и "11" являются зарезервированными. Возможно в QingKeV4 используется кастомизация. Дмитрий
  12. Добрый день, В общих чертах: при появлении прерывания или детектировании исключения процессор переходит на обработку этого события по адрессу, определяемому MTVEC. Во время этого перехода, ядро записывает тип и номер события в MCAUSE. Обработчик должен определить тип события и номер события программно. В зависимости от реализации процессора, значение MTVEC может быть изменяемым. Таким образом, Вы можете изменять положение обработчика. В некотрых реализациях есть еще поддержка векторного режима для обработки прерываний. Если поддержка есть и она включена, то процессор при переходе на обработку прерывания будет использовать не MTVEC значение, а (MTVEC+4*IRQ_NUM). В качестве номера прерывания используется номер из регистра MIP. Есть еще реализации процессора с CLIC, но это уже отдельная история. Дмитрий
  13. Добрый день, Исследование интересное, но не уверен что корректное. Нужно все-таки сравнивать "сравнимые" вещи, я имею ввиду одинаковые конфигурации и одинаковый функционал. SCR1 - полноценное микроконтроллерное ядро, для интеграции в уже существующие SoC, с возможностью исполнения в ASIC. Коротко просмотрел исходники предлагаемого вами контроллера(от YosysHQ😞 Все модули в одном файле - без комментариев. JTAG - я не заметил в коде JTAG интерфейса и TAP контроллера. Как отлаживать код ? Внешний модуль ? HW BRK - тоже не обнаружил IRQ контроллер - на сколько я понял, используется нестандартный механизм поддержки прерываний. В SCR1 используется полноценный контроллер, с поддержкой разных видов прерываний (по уровню, по фронту) и использованием приоритетов. Интерфейсы - есть только поддержка AXI lite. Resets - используется синхронный сигнал сброса. Для FPGA - подойдет, но если решите делать ASIC - нужно будет все переделывать(или искать другое решение). Использование сигнала резета в комбинаторике - без комментариев. Использование блокирующих и неблокирующих присвоений в одном процессе - без комментариев. Назначение однобитным сигналам десятичного значения - без комментариев. Назначение Х-ов. Для симуляции это ок(отлавливать ошибки), но для синтеза - не допустимо (результат работы синтезатора непредсказуем). Еще был "камешек" в сторону SCR1 по поводу TCM. В предложенном вами варианте я вообще не обнаружил TCM. Если подвести итог, то предложенный вами микроконтроллер - это уровень университетской разработки. Использовать для FPGA в качестве программируемой FSM в не критических проектах - можно. Для чего-то более серьезного - нет. Эта дискуссия уже вышла за рамки первоначальной темы, если есть интерес - предлагаю создать отдельную тему. Дмитрий
  14. Добрый день, А вы сравнивали ? Детали в студию ! Дмитрий
×
×
  • Создать...