Комментарии 23
Ультрамикропотребляющее. Очень дешевое.
А где вообще эти iCE40 добывать то в России? Ну, так чтобы по 1-2 штуки…
Кстати точно так же можно делить, если делитель постоянный. Ряд только становится с отрицательной степенью двойки и меняется направление сдвига.
как вариант, самый ленивый:
1) результат деления представляется с ценой мл. разряда 2^-n;
2) рассчитывается множитель A=divider/(2^-n);
3) делаем для полученного множителя схему по приведенной статье.
Собственно все, на выходе умножалки будет число поделенное на divider с ценой мл. разряда 2^-n.
Меня самого в этой истории больше всего прикололо то, что для чисел более не менее приличной разрядности максимальная сложность умножения существенно меньше разрядности. Например для 14-разрядных чисел, умножение требует не более 8 операций сложения/вычитания. Для бОльших разрядностей не считал. Интуитивно мне казалось, что найдётся n-разрядное число, требующее n-1 операций. Хотелось бы исследовать этот вопрос математически.
Читайте Кнута, там, емнип, и это тоже было.
Посылаю голову пеплом, это не у Кнута, это у Уоррена, раздел 8.4.
Краткие поиски ведут к ответу, что число операций для умножения n-разрядных чисел не превышает n/2+1, в силу существования nonadjacent form таких чисел в двоичной системе счисления с допустимыми цифрами {-1, 0, 1}. См. Sec. 2.3, вебархив для https://ccrwest.org/gordon/half.pdf
и увы, умножителей там нет.
У соседей по семейству, из серии Ultra/UltraPlus умножители таки есть.
Но там ног, правда, немного, самый большой корпус — QFN48.
Будь умножитель это конечно сильно бы выручило. Не пришлось бы делать его руками, освободилось бы куча ресурсов на кристалле и не пришлось бы так предельно ужиматься. А малое количество ног бывает иногда и малозначащим. В том проекте у меня например использовалось всего 9 ног. Кстати для аудио приложений (где всё последовательное) это довольно типичная ситуация. Вобщем в целом семейство отличное. И очень хорошая отладочная плата iCE40-HX8K Breakout Board. Всем кто начинает с FPGA её рекомендую. И из всего домашнего зоопарка это пожалуй моя любимая зверушка. Во всяком случае наиболее используемая.
И спасибо за статью.
Домашка по арифметике