Jump to content

    

olegras

Участник
  • Content Count

    113
  • Joined

  • Last visited

Community Reputation

0 Обычный

About olegras

  • Rank
    Частый гость
  • Birthday 12/05/1967

Контакты

  • Сайт
    http://
  • ICQ
    0
  1. Попробуйте так: даете клоковому сигналу жесткий констрейн. P&R выдаст отрицательный slack, вот там и посмотрите что именно не вписывается в нужный тайминг...
  2. А еще попробуйте (ради эксперимента чтобы сравнить тайминги) на выходе каждой BRAM подключить свой МАС-блок, а мультиплексором переключать только входы разрешения записи BRAM.
  3. Да ладно Вам, конечно правильнее. Я же написал "почти"... По поводу внешней памяти - если важнее количество параллельных блоков - внешняя память поможет. Если важнее скорость - внешняя память может стать узким местом.
  4. Без описания Вашего алгоритма, параметров "входного массива", что такое "на процессорах - совсем плохо " и др. - подсказать что-то конкретное довольно сложно. Судя по всему можно добиться выполнения одного шага алгоритма за один такт (если например получится разбить 3 обращения к массиву на чтение - на 1 обращение к 3 массивам). Расчитывайте на такты в сотни МГц. В любом случае задача полностью "подходит для реализации на плис". По поводу сколько одновременно выполняющихся таких "алгоритмов" врядли Вам кто-то поможет (см. выше). Можно поступить примерно так: В среде разработки выбрать "самую навороченную FPGA", реализовать алгоритм и посмотреть сколько он занимает емкости камня в процентах от общей емкости. А если мало - поставить несколько FPGA (т.к. все алгоритмы параллельны). Кстати, самые навороченные FPGA стоят тысячи долларов... Пока набирал текст - XVR уже ответил, получилось почти одно и тоже...
  5. UG383. Spartan-6 FPGA Block RAM Resources User Guide: ЦитатаISE software v13.2 (or later) is required to initialize the 9 Kb block RAM (RAMB8BWER). ... The bitstream update in ISE software v13.2 results in a small increase in bitstream size that depends on the quantity and location of the 9 Kb block RAM in the design (<1% increase). То есть возможное увеличение размера bit файла в зависимости от количества использованных 9 Kb block RAM - нормальная ситуация.
  6. Цитата(Golikov A. @ Jun 2 2014, 09:50) Сделай вы не классическое описание автомата в 2 частях из регистровой и комбинаторной. А лошпетское описание в одну часть, где у вас все переходы происходят и рассчитываются по клоку, проблем было бы на порядок меньше. Асинхронный сигнал портил бы вам жизнь только метастабильностью, вероятность которой сильно меньше. Когда-то делал эксперименты с автоматами. Хотел узнать разницу между асинхронно-синхронным и чисто синхронным автоматом. Описывал одни и те же автоматы двумя способами. Состояний на 10-15. После синтеза результаты были одинаковые. Это было хорошо видно в RTL вьюере. Выводы были такими, что в варианте с одним процессом мы описываем логику (ту, что на входах триггеров) и сами триггеры в одном процессе. В варианте с двумя - ту же логику описываем в асинхронном процессе, триггеры - в синхронном. И все. То есть разница только в способе представления/описания автомата. Сейчас работаю в 14-м ISE, у которого RTL вьюер паршивее, чем можно представить в страшном сне...
  7. Цитата(o_khavin @ Jun 1 2014, 23:51) Возможно, что не посылается инфа для неиспользуемых кусков FPGA (BRAM-ы или блоки логики), если они занимают какое-то количество целых сегментов. Т.е. это не компрессия, а просто выкидывание пустых данных. Похоже, что так и есть. Проект на S6 с ПЗУ на BRAM и без них имеют разный размер. Причем если нету BRAM то от количества задействованной логики (по крайней мере ~ от 1% до 30%) размер не меняется.
  8. Я бы все же состояние s31 явно бы описал. А входные rdy, miosio, miso у Вас асинхронные относительно clk?
  9. А зачем вообще нужны режимы с частью непередаваемых данных? Может это и не спортивно, но как вариант: Превратить хитроумный узел в тупое устройство. DSP всегда считывает с ПЛИС одну и ту же последовательность А1 - А8/А1 - А8... А использует те данные, которые ему нужны.
  10. Цитата(Golikov A. @ May 22 2014, 17:57) А вставить здоровый диагностический блок который будет отслеживать маловероятные события ... Тем более что диагностический блок - это тоже автомат?..
  11. Цитата(alexadmin @ May 22 2014, 17:11) Зуб даю, что они даже без сбоев могут не выполниться! Он имел ввиду что обе выполнятся
  12. Цитата(Leka @ May 22 2014, 17:00) Копаем глубже: Мне кажется это не совсем тот случай. if/else это все таки взаимоиключающее условие. Один провод с двумя возможными состояниями (а не с одним). Два провода - четыре состояния (а не два).
  13. Цитата(Golikov A. @ May 22 2014, 13:24) То есть для полностью определенных автоматов наличие дефалт как бы ничего не меняет. Возможно надо копать глубже и уже смотреть как там после синтеза это все имплементировалось в железе и как заполнены LUT переходов, но что-то у меня нет понимания как это сотворить достоверно... Вот такая вот информация... А меня еще интересует: есть у меня автомат на 57 состояний. Синтезатор имплементирует его по "one-hot", т.е. кодирует 57 битным словом, в котором каждому состоянию соответствует только одна 1, остальные 0. С одной стороны как бы понятно как будет работать вся логика по выходам такого автомата. С другой стороны - а если на выходе автомата появятся две, три единицы? Есть ли гарантия того что так не произойдет?
  14. Цитата(doom13 @ May 22 2014, 15:43) Немного отличается от того, что помогло старту PHY. Старту бы помогло, если ТС отреагировал хотя бы на один из советов/намеков (имеется ввиду по ресету, и кстати не только мои), так как от результата (ответа) зависели бы дальнейшие шаги. В том числе и предложенный Вами.
  15. Уважаемый ТС. Не поленитесь - перечитайте эту тему с самого начала. Посчитайте, сколько раз Вам намекали на ресет. Обидно блин...