SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Как правильно в плис делить, очень медленная операция, на высокой частоте появляются слаки. Если сдвигом то можно поделить на 2 4 8 16.... а если нужно поделить на 9 или 5? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Мне вот если делители известны заранее нравится умножать делимое на (2^n/делитель), а затем полученное число делить на 2^n. Можно даже составить таблицу соответствия делитель--множитель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Делить правильно делителем. Видов делителей великое множество, надо реализовать один из них и все. Самый простой реализует метод деления столбиком. Делитель двигаете максимально вправо, сравниваете со старшей частью делимого, если оно больше 1 и вычитаете делитель, остаток сносите, если нет 0, и просто сносите остаток, сдвигаете делитель и так далее... а можно так reg [15:0] A; reg [15:0] B; reg [15:0] C; always... C <= A/B; и посмотреть вдруг то что придумает синтезатор вас устроит:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Вариантов много, но нужно еще и быстрый. То что синтезатор сделал по времени не проходит слаки появляются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demon3200 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба А что если задействовать аппаратный делитель? У Альтеры его можно конвейеризировать, устанавливая параметр pipeline. С Ксайлинксами не работал, но подозреваю, что там тоже есть что-то подобное. По идее, при увеличении ступеней максимальная частота тоже должна рости. Но это если Ваш алгоритм допускает конвейеризацию данных. Вернее, не аппаратный, а библиотечный. Прошу прощения за неточность Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Как правильно в плис делить, очень медленная операция, на высокой частоте появляются слаки. Если сдвигом то можно поделить на 2 4 8 16.... а если нужно поделить на 9 или 5? можете посмотреть это Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Вариантов много, но нужно еще и быстрый. То что синтезатор сделал по времени не проходит слаки появляются. берете деление столбиком и конвейризируете пока не надоест. я делал для сыклона 32 на 16 на 200МГц работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Сейчас попробую, у циклона 3 есть dsp, если их задействовать будет быстрее? квартус сам может их задействовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Сейчас попробую, у циклона 3 есть dsp, если их задействовать будет быстрее? квартус сам может их задействовать? зачем для реализации деления нужны умножители (DSP блоки)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Если на нем сделать сдвиг, что бы сдвиг выполнился за один так. но это так мысли еще не подумал ). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Если на нем сделать сдвиг, что бы сдвиг выполнился за один так. но это так мысли еще не подумал ). а Вы не хотите для начала взять для начала за основу предложенный мной в сообщеннии 6 (через ссылку) реализацию/алгоритм? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Благодарю за информацию, ссылок много сейчас смотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба 2 Maverick я так понял, что человеку надо min latency и одновременно max FREQ, вы сделали всё что смогли ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Да очень благодарен Maverick по ссылкам есть то что искал раньше. Как оптимизировать что бы получить min latency max FREQ ? Битовый сдвиг выполняется за одну операцию, или на каждый бит по такту? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба И снова CORDIC cordic____.pdf стр 6 документа - умножение с накоплением и деление с накоплением, используются только сложения и сдвиги. Преимущества Можно получить fmax > 200 MHz при обработке потока порядка 32 бит и даже больше (конечный результат будет зависеть от ПЛИС) Можно реализовать большим ресурсами так, что fs = fmax При fs << fmax очень экономная корка, хотя обычный pipeline дулитель столбиком, про который упоминал des00 может занять меньше ресурсов Недостатки Latency = количество итераций * 1/fmax. При fs = fmax получится довольно толстая корка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться