Jump to content

    

nbjkm

Участник
  • Content Count

    8
  • Joined

  • Last visited

Everything posted by nbjkm


  1. Да, совершенно точно. При работе с квартусом на машине, подключенной по RDP, постоянно получал какие-то ошибки, то на фиттере вылетал (error send Intel и до свидания), то на assembler пишет "у вас нет лицензии на выбранный кристалл". Причем если прийти и запустить компиляцию напрямую на машине, без rdp, то все итерации проходили без ошибок. Все-таки засомневался и полез в док на signaltap Возможно я получал ограничение по каким-то иным причинам, но не по числу линии мониторинга
  2. О превышении лимита подключенных сигналов signaltap сообщает и больше линиий добавить не может. У меня подобная проблема наблюдалась при копировании проекта по разным папкам, в таких случаях квартус просто не обновлял sof-файл после компиляции. Удалите sof-файл и проведите заново его генерацию (щелкните пункт assembler). Есть ли какие-то ошибки в панели сообщений в самом quartus? Он должен писать код ошибки с описанием
  3. не сталкивался с проблемами при одновременном чтении/записи. Шина сама всё разрулит. И да, как уже заметил new123, запрос на чтение/запись можно (и нужно) подавать когда waitrequest в единице и дожидаться его освобождения. Как только шина освободится от другого мастера (арбитраж не позволит одному мастеру занимать шину вечно), шину займет другой мастер и т.д.
  4. DSP Builder так и не научился нормально использовать, ошибка на ошибке и ошибкой погоняет. К тому же на высокоскоростной IP RS нет лицензии в Quartus, а в MATLAB всё выглядело довольно удобненько. Кстати, к слову, раньше сталкивался с генерацией Lookup table из того же матлаба. Это была обычная ROM, но синтезировалась точно таким же образом как и в данном случае. Там всё легко можно было руками поправить, я просто менял wire на logic и квартус все прекрасно понимал. Но опять же, делалось это только вручную.
  5. Доброго здоровья! В MATLAB имеется блок "RS Encoder/Decoder HDL Optimized". Я синтезирую его HDL-код, получается неплохо + еще довольно читабельно. И казалось бы можно праздновать, но нет. В синтезированном коде есть много объявлений памяти и её инициализации в виде wire [7:0] gfomegapowertable_43 [0:255]; // ufix8 [256] assign gfomegapowertable_43[0] = 8'b00000000; assign gfomegapowertable_43[1] = 8'b10000000; assign gfomegapowertable_43[2] = 8'b00011101; assign gfomegapowertable_43[3] = 8'b10011101; assign gfomegapowertable_43[4] = 8'b00111010; .... assign gfomegapowertable_43[255] = 8'b01100010; assign omega8powertable = gfomegapowertable_43[omega8powerreg]; Подсовываю код в квартус и получаю закономерный результат - он вообще не определяет данный код как память и клепает всё на логике. В результате чего получаю скорость ~70 МГц, что неприемлемо. Данный способ объявления памяти я встречаю впервые, поскольку альтера рекомендует описывать память только через регистры. Сталкивался ли кто-нибудь с подобными вещами? Самостоятельно переписывать весь код больно уж ресурсозатратно. Да и к тому же матлаб везде нахваливают за его удобство и чуть ли не пару кнопок нажал и всё - код сгенерирован и можно работать. Использование директив ramstyle не дало никакого эффекта
  6. Руками писал. Можно было использовать и готовые ядра, но мне это было не столь интересно
  7. Я делал СФ по схеме FIR-фильтра, тупо оцифровал распознаваемый сигнал и запихнул его в качестве коэффициентов фильтра, предварительно переставив местами. И все дела. Работало на отлично. На частоте в 213 МГц