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

 
 
> Синтез асинхронных логических схем
bsa1969
сообщение Mar 15 2014, 13:48
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 15-03-14
Пользователь №: 80 934



Про достоинства асинхронных схем известно - это пониженное энергопотребление.
Недостатки же - меньшее быстродействие(?), большая площадь, худшая тестируемость. На самом деле это миф, основанный на единственном недостатке асинхронных схем: неумении
их синтезировать. Мною разработан формальный метод синтеза асинхронных схем на стандартной элементной базе (в том числе и на самых простых двухвходовых элементах NOR,
NAND), который полностью устраняет вышеперечисленные недостатки.
Более того, разработана методика синтеза асинхронных схем, нечувствительных к задержкам даже в проводах. Правда для таких схем используются нестандартные элементы, похожие
на 2NOR, 2NAND. Единственное отличие - дополнительный выход, по сути являющийся инверсией одного из входов. Я не специалист по железу, поэтому корректная работа такого
элемента под вопросом.
Для наглядности пример (в базисе 2NAND, 2NOR, NOT). Исходное задание в виде STG.

# rcv-setup
# HP controller, by K. Stevens
# Meat state encoding
.inputs reqrcv sending acksend
.outputs enwoq rejsend
.graph
# 0
reqrcv+/1 enwoq+/1
sending+ place_1
# -> 1
place_1 sending-/1 reqrcv+/2
# -> 5
enwoq+/1 reqrcv-/1
# 5
reqrcv-/1 enwoq-/1
# -> 0
enwoq-/1 place_0
# 1
reqrcv+/2 rejsend+
sending-/1 place_0
# -> 2
rejsend+ sending-/2 acksend+
# 2
sending-/2 rejsend-
acksend+ rejsend-
# -> 3
rejsend- acksend-
# 3
acksend- enwoq+/2
# -> 4
enwoq+/2 reqrcv-/2
# 4
reqrcv-/2 enwoq-/2
# -> 0
enwoq-/2 place_0
place_0 reqrcv+/1 sending+
.marking { place_0 }
.end


enwoq = AND ( g, k )
rejsend = NOR ( i, k )
f = NOT ( reqrcv )
g = NOR ( f, sending )
h = AND ( sending, reqrcv )
i = NOR ( h, j )
j = NOR ( acksend, i )
k = NOR ( j, acksend )
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
andrewkrot
сообщение Mar 15 2014, 15:43
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106



Вы ищете работу по синтезу асинхронных схем?
Go to the top of the page
 
+Quote Post
Anton75
сообщение Mar 17 2014, 06:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 13-05-05
Из: Санкт-Петербург
Пользователь №: 4 982



Цитата
Более того, разработана методика синтеза асинхронных схем, нечувствительных к задержкам даже в проводах.


Вы не туда обратились. Вам в Нобелевский комитет.
Go to the top of the page
 
+Quote Post
Corner
сообщение Mar 17 2014, 12:44
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(Anton75 @ Mar 17 2014, 10:00) *
Вы не туда обратились. Вам в Нобелевский комитет.


или в РАН, там таких уже половина...
Go to the top of the page
 
+Quote Post
RVlad
сообщение Mar 17 2014, 15:50
Сообщение #5


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

Группа: Свой
Сообщений: 135
Регистрация: 15-03-05
Пользователь №: 3 378



Может это наша реинкарнация <<NULL Convention Logic >> ??
Theseus Research Inc
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 18 2014, 02:19
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Какой макcимальный размер синтезируемого STG в вашем алгоритме?
Все что было разработано ранее, окучивало максимум 50 переменных. Собственно, мэппинг умеет делать только один известный мне тул -Petrify.

О независимости от задержек в проводах, очень интригующее заявление. Можете уточнить, речь идет о NCL, или о чем то другом?
Вам известно, что размер независящих от задержек в проводах элементов на порядок превышает размеры обычной комбинационной логики?
Go to the top of the page
 
+Quote Post
bsa1969
сообщение Mar 18 2014, 07:47
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 15-03-14
Пользователь №: 80 934



Цитата(Shivers @ Mar 18 2014, 06:19) *
Какой макcимальный размер синтезируемого STG в вашем алгоритме?
Все что было разработано ранее, окучивало максимум 50 переменных. Собственно, мэппинг умеет делать только один известный мне тул -Petrify.

О независимости от задержек в проводах, очень интригующее заявление. Можете уточнить, речь идет о NCL, или о чем то другом?
Вам известно, что размер независящих от задержек в проводах элементов на порядок превышает размеры обычной комбинационной логики?

p.s. если будет любопытно пообщаться на тему асинхронных схем, пишите на shadowpine гаф list РУ



Ограничений по количеству переменных нет, поскольку алгоритм не занимается вычислением логических функций общего вида. Суть метода - корректное добавление дополнительных
сигналов с целью приведения исходного поведения к определенному виду. После приведения поведения к нужному виду вычисление логической функции (уже заранее известного
вида) - задача линейной сложности. Вообще метод не использует понятие состояние, только причинно-следственные связи между событиями.
Я знаком с Петрифай, более того знаком с его создателями. Могу сказать что недостатки Петрифай связаны с непониманием сути проблемы. Он эксплуатирует здравую идею
декомпозиции логических функций. Но известно, что далеко не всякую функцию можно разбить до нужного уровня. Петрифай пытается бороться с этим используя С-элементы,
упрощая тем самым функции возбуждения. Но это лишь несколько улучшает ситуацию, но не решает проблему. Проблема же декомпозиции связана исключительно с наличием кратных
сигналов, т.е. сигналов, которые "переключаются более чем 2 раза". Создатели же Петрифай, не понимая этого, жадничают при добавлении дополнительных сигналов. И как следствие
стараются добавлять именно кратные сигналы.
По независимости от задержек в проводах. Прошу прощения, я 10 лет был в творческом отпуске. Сходу не нашел в гугле, что такое NCL. Что касается элементов независящих от
задержек в проводах, о которых Вы говорите, я давно что-то читал. Они внутри себя содержат ряд ограничений, которые еще нужно реализовать. И конечно строить схемы из таких
огромных блоков слишком дорогое удовольствие. Я же веду речь о самом простом элементе на основе 2NOR, 2NAND (4 транзистора, или 5 для повышения устойчивости). Его впервые
описал Варшавскиий, а для схем независящих от задержек в проводах предложил использовать Стародубцев. Если найдете можно почитать Monotonic Circuits with Complete
Acknowledgement (Starodoubtsev, Bystrov, Yakovlev). Картинку прилепил. Суть этого элемента в новой реализации процесса перехвата. Подхватывающий сигнал подается на элемент,
затем снимается с дополнительного выхода этого элемента (уже в инвертированном виде), и только после этого запускает процесс приводящий к переключению подхватываемого
сигнала. Что касается сложности таких схем. На примере pe-send-ifc. На элементах NORAND NANDOR с произвольным числом входов: дополнительных сигналов 10, транзисторов 124.
На элементах NAND NOR с произвольным числом входов: дополнительных сигналов 18, транзисторов 176. На двухвходовых элементах: дополнительных сигналов 42, транзисторов 184.
Независящая от задержек в проводах: дополнительных сигналов 91, транзисторов 585. Основная причина удорожания последней схемы - кратные сигналы.
Если можно отправьте более точныt координаты для контактов на bsa1969@yandex.ru
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 18 2014, 09:25
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



bsa1969
Написал на почту
Go to the top of the page
 
+Quote Post
bsa1969
сообщение Mar 18 2014, 12:14
Сообщение #9





Группа: Новичок
Сообщений: 4
Регистрация: 15-03-14
Пользователь №: 80 934



Цитата(andrewkrot @ Mar 15 2014, 19:43) *
Вы ищете работу по синтезу асинхронных схем?



Было бы интересно попробовать.

Цитата(RVlad @ Mar 17 2014, 19:50) *
Может это наша реинкарнация <<NULL Convention Logic >> ??
Theseus Research Inc




Та не... Ведь все по-старому: транзистор открыт, транзистор закрыт?
Ну значит нагородили лишних сущностей.
Go to the top of the page
 
+Quote Post
bsa1969
сообщение Mar 18 2014, 18:39
Сообщение #10





Группа: Новичок
Сообщений: 4
Регистрация: 15-03-14
Пользователь №: 80 934



CODE
# pe-send-ifc
# HP controller, by K. Stevens
# Meat state encoding
.inputs reqsend treq rdiq adbldout ackpkt
.outputs tack peack adbld
.graph
# 0
reqsend+ adbld+/1
treq+/1 adbld+/1
rdiq+/1 adbld+/1
# -> 1
adbld+/1 place_1
place_1 adbldout+/1

# 1
adbldout+/1 peack+/1
# -> 2
peack+/1 rdiq-/1

# 2
rdiq-/1 adbld-/1 tack+/1 peack-/1
# -> 3
peack-/1 place_3_0
adbld-/1 adbldout-/1
tack+/1 treq-/1
place_3_0 ackpkt+/1 rdiq+/2
adbldout-/1 place_3_1
treq-/1 place_3_2

# 3
rdiq+/2 adbld+/2
place_3_1 adbld+/2
place_3_2 adbld+/2

ackpkt+/1 peack+/2
place_3_1 peack+/2
place_3_2 peack+/2
# -> 4
adbld+/2 adbldout+/2
# -> 8
peack+/2 ackpkt-/1

# 4
adbldout+/2 peack+/3
# -> 5
peack+/3 rdiq-/2

# 5
rdiq-/2 peack-/3 adbld-/2 tack-/2
# -> 6
adbld-/2 adbldout-/3
tack-/2 treq+/2
peack-/3 place_5_2
adbldout-/3 place_5_0
treq+/2 place_5_1
place_5_2 ackpkt+/2 rdiq+/3

# 6
place_5_0 peack+/4 tack+/3
place_5_1 peack+/4 tack+/3
ackpkt+/2 peack+/4 tack+/3

place_5_0 adbld+/3
place_5_1 adbld+/3
rdiq+/3 adbld+/3
# -> 1
adbld+/3 place_1
# -> 7
peack+/4 ackpkt-/3
tack+/3 treq-/3

# 7
ackpkt-/3 peack-/4 tack-/3
treq-/3 peack-/4 tack-/3
# -> 9
peack-/4 place_9_0
tack-/3 place_9_1
place_9_0 treq+/4 reqsend-
place_9_1 treq+/4 reqsend-

# 8
ackpkt-/1 tack-/4 peack-/5
# -> 9
peack-/5 place_9_0
tack-/4 place_9_1

# 9
treq+/4 tack+/5

# -> 0
# s4 conditions inputs... otherwise no USC !
reqsend- reqsend+ treq+/1 rdiq+/1
# -> 10
tack+/5 treq-/5

# 10
treq-/5 tack-/5
# -> 9
tack-/5 place_9_0 place_9_1

.marking { <reqsend-,reqsend+> <reqsend-,treq+/1> <reqsend-,rdiq+/1> }
.end


tack = NAND ( h2, i2 )
peack = NOR ( f2, w1 )
adbld = NAND ( u, f1 )
f = NAND ( reqsend , treq )
g = NAND ( rdiq , o1 )
h = NAND ( rdiq , p1 )
i = NAND ( adbldout , s )
j = NAND ( adbldout , r )
k = NAND ( ackpkt , o1 )
l = AND ( ackpkt , p1 )
m = AND ( l , j )
n = NOR ( m , o )
o = NOR ( n , f )
p = NOR ( h , f )
q = NAND ( j , p )
r = AND ( q , i )
s = NOT ( r )
t = NOR ( g , s )
u = NAND ( t , f )
v = NOR ( k , s )
w = NAND ( v , f )
f1 = NAND ( p , s )
g1 = NAND ( reqsend , h1 )
h1 = NAND ( w , g1 )
i1 = NOR ( w , g1 )
j1 = NOR ( u , j )
k1 = NOR ( i1 , j1 )
l1 = NAND ( i , m1 )
m1 = NAND ( k1 , l1 )
n1 = NAND ( h , l1 )
o1 = NAND ( n1 , k1 )
p1 = NOT ( o1 )
q1 = NAND ( n , t1 )
r1 = NAND ( reqsend , s1 )
s1 = NAND ( q1 , r1 )
t1 = AND ( r1 , u1 )
u1 = NAND ( v1 , q1 )
v1 = NOR ( o , t1 )
w1 = NOR ( g2 , u1 )
f2 = NOR ( n1 , p1 )
g2 = NAND ( m1 , p1 )
h2 = NOR ( o1 , t1 )
i2 = NOR ( k2 , j2 )
j2 = NOR ( f , r1 )
k2 = NOR ( f , g1 )


Ну, и зачем это здесь? В разделе "Ищу работу"? Что сказать-то хотели? Что владеете неким ноу-хау? Ну, так напишите по-русски. И сопроводите конкретикой.

Сообщение отредактировал Herz - Mar 19 2014, 16:29
Go to the top of the page
 
+Quote Post
Corner
сообщение Mar 27 2014, 13:59
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(bsa1969 @ Mar 18 2014, 22:39) *
CODE
# pe-send-ifc
# HP controller, by K. Stevens
# Meat state encoding
.inputs reqsend treq rdiq adbldout ackpkt
.outputs tack peack adbld
.graph
# 0
reqsend+ adbld+/1
treq+/1 adbld+/1
rdiq+/1 adbld+/1
# -> 1
adbld+/1 place_1
place_1 adbldout+/1

# 1
adbldout+/1 peack+/1
# -> 2
peack+/1 rdiq-/1

# 2
rdiq-/1 adbld-/1 tack+/1 peack-/1
# -> 3
peack-/1 place_3_0
adbld-/1 adbldout-/1
tack+/1 treq-/1
place_3_0 ackpkt+/1 rdiq+/2
adbldout-/1 place_3_1
treq-/1 place_3_2

# 3
rdiq+/2 adbld+/2
place_3_1 adbld+/2
place_3_2 adbld+/2

ackpkt+/1 peack+/2
place_3_1 peack+/2
place_3_2 peack+/2
# -> 4
adbld+/2 adbldout+/2
# -> 8
peack+/2 ackpkt-/1

# 4
adbldout+/2 peack+/3
# -> 5
peack+/3 rdiq-/2

# 5
rdiq-/2 peack-/3 adbld-/2 tack-/2
# -> 6
adbld-/2 adbldout-/3
tack-/2 treq+/2
peack-/3 place_5_2
adbldout-/3 place_5_0
treq+/2 place_5_1
place_5_2 ackpkt+/2 rdiq+/3

# 6
place_5_0 peack+/4 tack+/3
place_5_1 peack+/4 tack+/3
ackpkt+/2 peack+/4 tack+/3

place_5_0 adbld+/3
place_5_1 adbld+/3
rdiq+/3 adbld+/3
# -> 1
adbld+/3 place_1
# -> 7
peack+/4 ackpkt-/3
tack+/3 treq-/3

# 7
ackpkt-/3 peack-/4 tack-/3
treq-/3 peack-/4 tack-/3
# -> 9
peack-/4 place_9_0
tack-/3 place_9_1
place_9_0 treq+/4 reqsend-
place_9_1 treq+/4 reqsend-

# 8
ackpkt-/1 tack-/4 peack-/5
# -> 9
peack-/5 place_9_0
tack-/4 place_9_1

# 9
treq+/4 tack+/5

# -> 0
# s4 conditions inputs... otherwise no USC !
reqsend- reqsend+ treq+/1 rdiq+/1
# -> 10
tack+/5 treq-/5

# 10
treq-/5 tack-/5
# -> 9
tack-/5 place_9_0 place_9_1

.marking { <reqsend-,reqsend+> <reqsend-,treq+/1> <reqsend-,rdiq+/1> }
.end


tack = NAND ( h2, i2 )
peack = NOR ( f2, w1 )
adbld = NAND ( u, f1 )
f = NAND ( reqsend , treq )
g = NAND ( rdiq , o1 )
h = NAND ( rdiq , p1 )
i = NAND ( adbldout , s )
j = NAND ( adbldout , r )
k = NAND ( ackpkt , o1 )
l = AND ( ackpkt , p1 )
m = AND ( l , j )
n = NOR ( m , o )
o = NOR ( n , f )
p = NOR ( h , f )
q = NAND ( j , p )
r = AND ( q , i )
s = NOT ( r )
t = NOR ( g , s )
u = NAND ( t , f )
v = NOR ( k , s )
w = NAND ( v , f )
f1 = NAND ( p , s )
g1 = NAND ( reqsend , h1 )
h1 = NAND ( w , g1 )
i1 = NOR ( w , g1 )
j1 = NOR ( u , j )
k1 = NOR ( i1 , j1 )
l1 = NAND ( i , m1 )
m1 = NAND ( k1 , l1 )
n1 = NAND ( h , l1 )
o1 = NAND ( n1 , k1 )
p1 = NOT ( o1 )
q1 = NAND ( n , t1 )
r1 = NAND ( reqsend , s1 )
s1 = NAND ( q1 , r1 )
t1 = AND ( r1 , u1 )
u1 = NAND ( v1 , q1 )
v1 = NOR ( o , t1 )
w1 = NOR ( g2 , u1 )
f2 = NOR ( n1 , p1 )
g2 = NAND ( m1 , p1 )
h2 = NOR ( o1 , t1 )
i2 = NOR ( k2 , j2 )
j2 = NOR ( f , r1 )
k2 = NOR ( f , g1 )


Ну, и зачем это здесь? В разделе "Ищу работу"? Что сказать-то хотели? Что владеете неким ноу-хау? Ну, так напишите по-русски. И сопроводите конкретикой.


Чувака прет - не обращайте внимания...
Go to the top of the page
 
+Quote Post

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

 


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


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