Я работаю в аппаратном домене. Мне нужно сгенерировать все nCk комбинации чисел от 0 до n-1. Это легко сделать с помощью программного обеспечения, но это нужно делать с использованием HDL - VHDL. Я не могу много тратить на вычислительную сложность и должен генерировать со скоростью 1 образец/секунда (1 clk цикл за комбинацию). Доступна промежуточная память.Создание nCk комбинаций чисел от 0 до n-1
Например: - пусть для 6C4, мне нужно генерировать
(1,2,3,4) (1,2,3,5) (1,2,3,6) (1,2 , 4,5) (1,2,4,6) (1,2,5,6) (1,3,4,5) (1,3,4,6) (1,3,5,6) (1,4,5,6) (2,3,4,5) (2,3,4,6) (2,3,5,6) (2,4,5,6) (3,4, 5,6)
Порядок важен.
Редактировать: 'k' и 'n' всегда равны. Есть ли способ упростить логику, принимая это во внимание.
В этом случае «п» и «K» входные данные для объекта может изменяться («п» с верхним пределом 16)
Почему бы не попробовать сделать это с помощью «несет». Каждый такт, увеличивайте последнее число. Если последнее число попадает в 'n', то добавьте его к предыдущему номеру и сбросьте последний номер и т. Д. – Lalaland