Перейти к содержанию
    

Синтез асинхронных логических схем

Про достоинства асинхронных схем известно - это пониженное энергопотребление.

Недостатки же - меньшее быстродействие(?), большая площадь, худшая тестируемость. На самом деле это миф, основанный на единственном недостатке асинхронных схем: неумении

их синтезировать. Мною разработан формальный метод синтеза асинхронных схем на стандартной элементной базе (в том числе и на самых простых двухвходовых элементах 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 )

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Вы не туда обратились. Вам в Нобелевский комитет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не туда обратились. Вам в Нобелевский комитет.

 

или в РАН, там таких уже половина...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой макcимальный размер синтезируемого STG в вашем алгоритме?

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой мак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 координаты для контактов на [email protected]

post-80934-1395128153_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы ищете работу по синтезу асинхронных схем?

 

 

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

 

Может это наша реинкарнация <<NULL Convention Logic >> ??

Theseus Research Inc

 

 

 

Та не... Ведь все по-старому: транзистор открыт, транзистор закрыт?

Ну значит нагородили лишних сущностей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

# 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

# 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 )

 

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

 

Чувака прет - не обращайте внимания...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...