Device 5CGXFC7D6
Resource | Usage |
---|---|
Logic utilization (in ALMs) | 2,043 |
Total registers | 1467 |
Total block memory bits | 259,120 |
Fmax = 139MHz
Для каждого байта предрасчитаны следующие параметры:
-
максимальная длина подряд идущих единиц в слове
-
длина подряд идущих единиц в начале слова
-
длина подряд идущих единиц в конце слова
Пример:
Слово | End | Length | Start |
---|---|---|---|
0b0000_0000 | 0 | 0 | 0 |
0b1111_1111 | 8 | 8 | 8 |
0b1011_1011 | 1 | 3 | 2 |
0b1110_1011 | 3 | 3 | 2 |
В дальнейшем они каскадом соединяются
Пример:
0b1011_1011__1110_1011 -> ( 1 3 2 ) ( 3 3 2 ) -> ( 1 5 2)
Для подсчета нулей используется этот же модуль, на вход которого подано инвертированное слово
Для увеличения максимальной частоты для каждого байта предрасчитано количество единиц в байте, далее, все тем же каскадом суммируем все со всем
Вспоминаем что у ИСКЛ ИЛИ таблица истинности соответствует изменению 0-1 или 1-0, соответственно делаем XOR для всех рядом стоящих пар битов в слове, далее считаем количество единичных бит модулем, который у нас уже есть