реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Возможно ли?
Adv
сообщение Aug 1 2009, 21:13
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 1 2009, 23:54) *
Что значит " во всех 4-х числах этот код один и тот же " ?


Это после предполагаемого табличного кодирования 8-ми разрядного числа в 32-х разрядное. Хотя, я уже вижу , что не понял Вас правильно в этом месте.

Цитата(тау @ Aug 1 2009, 23:54) *
Я принял как факт что на входе у вас 32 разряда, то есть 4 байта по 8 бит. Все вместе 32 этих бита используются в операции с заранее переданной маской М в приемнике. Тогда 14 бит сразу после AND говорят - попали во множество валидных ключей или нет. А потом уже, если надо, делаете доп дешифровку или по маленькой табличке (если выходных переменных много , как у Вас выходов мультиплексора) либо простым сравнением с другим ,уникальным для девайса, 14-битным числом.


Ключи (адреса) я не задаю, требуется определить (точно) пришедший адрес из списка, или нет. АДРЕСА МОГУТ БЫТЬ ЛЮБЫЕ. Их в 14 разрядов не впихнёшь. Подчёркиваю - ЛЮБЫЕ, и в ЛЮБОМ СОЧЕТАНИИ и 12000 - 18000 адресов. А было бы здорово , если это было возможно....
И это несколько в сторону от вопроса - "математического дешифратора"
Это уже простой двухступенчатый дешифратор
(хотя, правды ради он делается немного по-другому: компаратарами дешифрируются несколько десятков (до сотни, больше трудно впихнуть не используя память, у меня же её и нет) старших 16-ти бит адреса, а потом полная дешифрация оставшихся 16-ти бит, но это уже серьёзное ограничение на парамерты дешифрации)
требующий ресурсов (хоть и меньше, но достаточно много). Да, в ряде случаев - это решение. Но не в этом. Посмотрите исходные для задачи и задачу в начале темы.

Сообщение отредактировал Adv - Aug 1 2009, 21:21
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 2 2009, 05:40
Сообщение #32


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Adv @ Aug 1 2009, 15:53) *
Или ещё пример - есть ОЗУ с 8-ми битным входным адресом в котором при поступлении на вход адресов 1, 3, 8, 23, 46, 74, 124, 234, 245 на выходе будет еденица (ДА). Для остальных адресов -ноль (НЕТ).

Сделайте неполный дешифратор, делов-то. Не более 8 инверторов, 9 восьмивходовых элементов И, и один девятивходовый элемент ИЛИ. После оптимизации логического выражения (возможно) получится еще меньше. Если входные коды могут быть произвольными, то можно целенаправленно подобрать их так, что результирующее логическое выражение будет наиболее простым. Но часто лучше оптимизировать сразу схему, скажем, по числу корпусов, а не логическое выражение.
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 2 2009, 05:54
Сообщение #33


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Цитата(Adv @ Aug 1 2009, 21:40) *
Табличное преобразование - макс. ОБЩИЙ объём памяти для ВСЕХ преобразований (В СУММЕ) 64 кбайта.

Цитата(Adv @ Aug 2 2009, 01:13) *
АДРЕСА МОГУТ БЫТЬ ЛЮБЫЕ. Их в 14 разрядов не впихнёшь. Подчёркиваю - ЛЮБЫЕ, и в ЛЮБОМ СОЧЕТАНИИ и 12000 - 18000 адресов. А было бы здорово , если это было возможно....


Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 2 2009, 09:11
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 2 2009, 08:54) *
Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.


Спасибо. Вы предложили неплохое решение. Но у него есть (как и у всего) недостаток - как и любой поиск по маске (а это ВСЁ ТОТЖЕ ПОИСК ПО МАСКЕ) требует ресурсов, причём правильной конфигурации (ОЗУ 16К х 32 бит). Аппаратно у меня их НЕТ. Из-за этого я вылез с темой-то!! 64К - это память с разрядностью 1 бит . Она может быть переконфигурирована в любую из списка: 8кх8, 4Кх16, 2Кх32(36) если использовать и бит паритета. это блоки М9К Алтеры. А задача поставлена была вообще классно - получить МАКСИМАЛЬНО ВОЗМОЖНОЕ количество ключей, это потом одумались хоть сократили... Послушав всех прихожу к выводу, что кроме ступенчатой дешифрации решенй для задачи нет.
Но всё равно - спасибо всем, кто откликнулся.

ЗЫ. Но здорово было бы узнать, так есть ли МАТЕМАТИЧЕСКОЕ решение для задачи, а не применение только комбинации схемотехнических?? Последние сильно ограничивает возможности поиска, из-за наложения ограничений на совместно используемые ключи (адреса). Надеюсь, для Вас, тау это тоже не безинтересно....

Сообщение отредактировал Adv - Aug 2 2009, 09:38
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 3 2009, 19:17
Сообщение #35


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Как уже правильно Вам сказал scifi, решение задачи невозможно , у Вас слишком ограниченные ресурсы.
Вы мечтаете ужать совершенно случайную информацию объемом 64 килобайта до размеров ваших ресурсов, которые заведомо меньше. А это невозможно. Никакая арифметика тут не поможет. Белый шум (ваши ключи) , если он действительно белый , если бы можно было сжимать без потерь, то был бы сурьезный прорыв в науках. А его нет.

Сообщение отредактировал тау - Aug 3 2009, 19:19
Go to the top of the page
 
+Quote Post
lead_seller
сообщение Aug 27 2009, 14:19
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-10-08
Пользователь №: 41 225



Делите свой 4-х байтный код на две части по 2 байта. 1 - ю часть для валидного кода назначаете (т.о. у вас будет 32+ тысячи валидных кодов). 2 - ю часть вычисляете по какому нибудь алгоритму (главное обратимому) из первой части, например инвертируете все разряды. Т.о. если применить обратный алгоритм кодирования к второй части валидного адреса (кода) первая и вторая половина совпадут, если же код не валиден то вероятность совпадения достаточно мала.

Сообщение отредактировал lead_seller - Aug 27 2009, 14:20
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016