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

dpavlov

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

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

  • Посещение

Репутация

3 Обычный

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

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

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

572 просмотра профиля
  1. Доступен еще один СФБ для вычисления БПФ/ОБП. Реализация в процессе регистрации в “ФЕДЕРАЛЬНОЙ СЛУЖБЕ ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ”. Блок построен по схеме RADIX-4 и поддерживает конфигурирование для следующих размеров БПФ/ОБПФ: 16, 64, 256, 1024, 4096. Разрядности входных и выходных данных конфигурируются в диапазоне 16-24 бита. СФБ разработан на SystemVerilog для использования в проектах разработки микросхем (ASIC). Есть возможность предоставить модель(скомпилировано с помощью Verilator) для оценки характеристик модуля Возможна модификация модуля под ваши требования.
  2. Добрый день, Если не найдете проблему, присылайте подробности в личку. Дмитрий
  3. Разработаю по вашему ТЗ сложно-функциональные блоки для использования в проектах разработки микросхем (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 Или здесь в "личку" Дмитрий
  4. Добрый день, Как я написал ранее, задачу можно условно разделить на две части: подготовка RTL и Back-End. Даже наверное на три, еще непосредственно производство/изготовление на фабрике. По RTL-ым работам, финансовые затраты будут сильно зависеть от сложности самого проекта и объема работ, связанных с разработкой IP на замену существующим IP от FPGA вендора. Найти одного инженера, который Вам все сделает - задачи практически нереализуемая. Найти несколько независимых инженеров можно, но организовать их совместную командную работу - будет достаточно сложно. Оптимальный вариант, искать компанию, которая "сделает все под ключ". Учитывая, что Вы хотите за полгода сделать все, скорее всего, полгода уйдет только на RTL. Если взять за основу, что потребуется задействовать 5-6 инженеров на полгода, то получится примерно 10М+, только на RTL. Но все будет зависеть от сложности проекта. Дмитрий
  5. Добрый день, Очень сильно будет зависеть от самого проекта. Но для начала, нужно определиться что Вам нужно: подготовить 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 - это качественно новый уровень разработки проектов. Это как переход футбольной команды из первой лиги в высшую. Дмитрий
  6. Добрый день, Возможно, младшие биты не реализованы. Попробуйте в MTVEC записать FF....FF(все единицы) и прочитать обратно. Прочитаются тоже все 1 ? Дмитрий
  7. Добрый день, Согласно официальной версии (file:///C:/Users/dmitr/Downloads/riscv-privileged-20211203.pdf, раздел 3.1.7, стр. 29) для битов MTVEC[1:0] значения "10" и "11" являются зарезервированными. Возможно в QingKeV4 используется кастомизация. Дмитрий
  8. Добрый день, В общих чертах: при появлении прерывания или детектировании исключения процессор переходит на обработку этого события по адрессу, определяемому MTVEC. Во время этого перехода, ядро записывает тип и номер события в MCAUSE. Обработчик должен определить тип события и номер события программно. В зависимости от реализации процессора, значение MTVEC может быть изменяемым. Таким образом, Вы можете изменять положение обработчика. В некотрых реализациях есть еще поддержка векторного режима для обработки прерываний. Если поддержка есть и она включена, то процессор при переходе на обработку прерывания будет использовать не MTVEC значение, а (MTVEC+4*IRQ_NUM). В качестве номера прерывания используется номер из регистра MIP. Есть еще реализации процессора с CLIC, но это уже отдельная история. Дмитрий
  9. Добрый день, Исследование интересное, но не уверен что корректное. Нужно все-таки сравнивать "сравнимые" вещи, я имею ввиду одинаковые конфигурации и одинаковый функционал. SCR1 - полноценное микроконтроллерное ядро, для интеграции в уже существующие SoC, с возможностью исполнения в ASIC. Коротко просмотрел исходники предлагаемого вами контроллера(от YosysHQ😞 Все модули в одном файле - без комментариев. JTAG - я не заметил в коде JTAG интерфейса и TAP контроллера. Как отлаживать код ? Внешний модуль ? HW BRK - тоже не обнаружил IRQ контроллер - на сколько я понял, используется нестандартный механизм поддержки прерываний. В SCR1 используется полноценный контроллер, с поддержкой разных видов прерываний (по уровню, по фронту) и использованием приоритетов. Интерфейсы - есть только поддержка AXI lite. Resets - используется синхронный сигнал сброса. Для FPGA - подойдет, но если решите делать ASIC - нужно будет все переделывать(или искать другое решение). Использование сигнала резета в комбинаторике - без комментариев. Использование блокирующих и неблокирующих присвоений в одном процессе - без комментариев. Назначение однобитным сигналам десятичного значения - без комментариев. Назначение Х-ов. Для симуляции это ок(отлавливать ошибки), но для синтеза - не допустимо (результат работы синтезатора непредсказуем). Еще был "камешек" в сторону SCR1 по поводу TCM. В предложенном вами варианте я вообще не обнаружил TCM. Если подвести итог, то предложенный вами микроконтроллер - это уровень университетской разработки. Использовать для FPGA в качестве программируемой FSM в не критических проектах - можно. Для чего-то более серьезного - нет. Эта дискуссия уже вышла за рамки первоначальной темы, если есть интерес - предлагаю создать отдельную тему. Дмитрий
  10. Добрый день, А вы сравнивали ? Детали в студию ! Дмитрий
  11. Добрый день, Я с ним не работал, ничего сказать не могу (ни хорошего, ни плохого). Дмитрий
  12. Добрый день, Рассмотрите SCR1 - там есть возможность как конфигурирования ядра (длинная конвейера, функциональность), так и выбор внешних интерфейсов (AXI/AHB). Дмитрий
  13. Добрый день, Во-первых, вы контролируете содержимое и можете его изменять под свои нужды(что-то добавить или улучшить). В случае использования готовой микросхемы - вы уже ничего изменить не можете. Во-вторых, если содержимое полностью вами разработано (не используются сторонние IP), вы сможете это переносить на другие FPGA или даже в ASIC (хотя согласен, здесь тоже есть свои подводные камни). Что до тестирования - то тестировать нужно всё и всегда, особенно, если планируете выпустить свой ASIC (цена ошибки велика). Дмитрий
  14. Добрый день, FPGA - это уже готовый продукт, который можно завести по параллельному импорту. Главное - это содержимое. Если предполагается мелкосерийное производство - то подойдет. На сколько знаю, еще в Воронеже делают какие-то ПЛИС, но про их характеристики и возможности поставок - не скажу. По поводу SMIC и прочих китайцев для производства микросхем - да, все непросто. Пытаюсь найти выходы(хоть какие-то), пока безрезультатно. Дмитрий
×
×
  • Создать...