Мне нужны псевдослучайные числа, сгенерированные для оборудования (либо на VHDL, либо на Verilog), которые соответствуют следующим критериям.
- Каждое число является 1-битным (не обязательно, но это еще больше усложнит ситуацию) - N псевдо случайные числа не могут быть связаны друг с другом. - N псевдослучайных чисел должны быть сгенерированы одновременно (каждый фронт тактов).
Я понимаю, что следующее не будет работать: - Использование N разных начальных чисел для заданного полинома - они будут просто сдвинутыми версиями друг друга - Использование N разных полиномов для заданной длины LFSR - нецелесообразно, поскольку N может достигать 64, и я не знаю, какой длины LSFR даст 64 различных комбинации касаний, слишком много, если вообще возможно.
При использовании LFSR длины не обязательно должны быть идентичными. Для небольшого N, скажем, 4, я подумал об использовании 4 разных длин простых чисел (чтобы свести к минимуму повторяемость), например, 15, 17, 19, 23, но опять же, для большого N это становится очень грязным. Скажем, что-то порядка 2^16 дает достаточную длину для LFSR.
Есть ли элегантный способ решения этой проблемы? Под элегантным я подразумеваю отсутствие необходимости кодировать N различных уникальных модулей (15, 17, 19, 23 выше в качестве примера). Использование N разных экземпляров Mersenne Twister с разными семенами? У меня нет неограниченного количества аппаратных ресурсов (FF, LUT, BRAM), но ради этого обсуждения, вероятно, лучше игнорировать проблемы с ресурсами.
Чем вы заранее.