|
Синтез асинхронных логических схем |
|
|
|
Mar 15 2014, 13:48
|
Группа: Новичок
Сообщений: 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 )
|
|
|
|
|
 |
Ответов
|
Mar 18 2014, 18:39
|
Группа: Новичок
Сообщений: 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
|
|
|
|
|
Mar 27 2014, 13:59
|

Профессионал
    
Группа: Участник
Сообщений: 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 ) Ну, и зачем это здесь? В разделе "Ищу работу"? Что сказать-то хотели? Что владеете неким ноу-хау? Ну, так напишите по-русски. И сопроводите конкретикой.Чувака прет - не обращайте внимания...
|
|
|
|
Сообщений в этой теме
bsa1969 Синтез асинхронных логических схем Mar 15 2014, 13:48 andrewkrot Вы ищете работу по синтезу асинхронных схем? Mar 15 2014, 15:43 bsa1969 Цитата(andrewkrot @ Mar 15 2014, 19:43) В... Mar 18 2014, 12:14 Anton75 ЦитатаБолее того, разработана методика синтеза аси... Mar 17 2014, 06:00 Corner Цитата(Anton75 @ Mar 17 2014, 10:00) Вы н... Mar 17 2014, 12:44 RVlad Может это наша реинкарнация <<NULL Conventi... Mar 17 2014, 15:50 Shivers Какой макcимальный размер синтезируемого STG в ваш... Mar 18 2014, 02:19 bsa1969 Цитата(Shivers @ Mar 18 2014, 06:19) Како... Mar 18 2014, 07:47 Shivers bsa1969
Написал на почту Mar 18 2014, 09:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|