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

 
 
 
Reply to this topicStart new topic
> Чайниковый вопрос по ASIC, Сколько гейтов весит один двухвходовой XOR ?
SKov
сообщение Dec 13 2010, 11:13
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Извиняюсь за чайниковый вопрос:
Сколько гейтов весит один двухвходовой XOR при реализации в ASIC ?
Понимаю, что вопрос, возможно, некорректен, и ответ может зависеть от каких-нибудь библиотек какого-нибудь синопсиса...
Но очень надо хоть примерно ценить сложность устройства в гейтах, которое почти все состоит из XOR - ов.
Ну хотя бы очень примерно..
И еще: трехвходовой XOR - это всегда эквивалент (по сложности) двух двухвходовых, или меньше?
Спасибо!
Go to the top of the page
 
+Quote Post
zzzzzzzz
сообщение Dec 13 2010, 11:20
Сообщение #2


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

Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641



При реализации в эйсик это 1 ячейка библиотечная, как правило. Если XOR2 или XNOR2. Реже бывает в либе и XOR3, XOR4. Делаются чаще всего в виде MUX c инверторами. Но, бывает и минимальная, 6-ти транзисторная реализация.
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 08:57
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(zzzzzzzz @ Dec 13 2010, 14:20) *
При реализации в эйсик это 1 ячейка библиотечная, как правило. Если XOR2 или XNOR2. Реже бывает в либе и XOR3, XOR4. Делаются чаще всего в виде MUX c инверторами. Но, бывает и минимальная, 6-ти транзисторная реализация.

Спасибо!
Можно для надежности я уточню? 1 ячейка библиотечная - это и есть один гейт, или все сложнее?
Нашел статью (правда, не спеца по ASIC), где XOR почему-то приравнивался к трем гейтам.. ;((((
Go to the top of the page
 
+Quote Post
garlands
сообщение Dec 14 2010, 10:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



ну тогда может быть начать с терминологии? Вот именно Вы конкретно что понимаете под словом "гейт"?...
транзистор (один), два, или сколько?.. wink.gif
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 10:09
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(garlands @ Dec 14 2010, 13:01) *
ну тогда может быть начать с терминологии? Вот именно Вы конкретно что понимаете под словом "гейт"?...
транзистор (один), два, или сколько?.. wink.gif

Да в том-то и дело, что я не знаю, что это такое.
Я разработал устройство, в котором надо суммировать по модулю два ну, скажем, миллион бит.
Причем, не последовательно, а параллельно. Т.е. нужно примерно миллион сумматоров.
Мне потенциальный покупатель этого устройства задает вопрос: а какова (примерно) сложность (в гейтах)
реализации в ASIC такого устройства?
Я не спец в ASIC, как уже все догадались, но хочется дать
какой-то разумный ответ покупателю, и при этом его не сильно обмануть wink.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 14 2010, 10:14
Сообщение #6


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Так устройство разработано? Берете synopsys, берете библиотеку у заказчика, если даст или что-то иное (найти можно, например Nangate OpenCell), синтезируете и смотрите в лог. Будет не примерно, а точно.
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 10:35
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(DmitryR @ Dec 14 2010, 13:14) *
Так устройство разработано? Берете synopsys, берете библиотеку у заказчика, если даст или что-то иное (найти можно, например Nangate OpenCell), синтезируете и смотрите в лог. Будет не примерно, а точно.

Оно разработано на бумаге ( в обще-теоретическом виде). Синопсису пока скармливать нечего.
Кстати, я слышал, что синопсис дает площадь кристалла, а не гейты. Нет?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 14 2010, 10:51
Сообщение #8


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(SKov @ Dec 14 2010, 13:35) *
Оно разработано на бумаге ( в обще-теоретическом виде). Синопсису пока скармливать нечего.

Искать покупателей на проект в миллионы гейтов, когда нет на демонстрацию вообще никаких, хотя бы ключевых блоков - это афера, IMHO. Потому что в процессе моделирования и отладки его он может внезапно измениться в размерах. Он может не влезть в тайминги предложенной потенциальным заказчиком библиотеки. Вообще может не заработать. Поэтому если это вещь логически емкая - разрабатывать ее "от" и "до" теоретически не имеет смысла. Если работа емкая математически - ее стоит промоделировать в MatLab например для начала, оттуда прямо сгенерить HDL-код (он будет кривой, конечно, но будет), и его отсинтезировать как пример. А так... Нас в школе конечно учили писать программы сначала полностью в тетрадке, но тогда машинное время было час в неделю, а сейчас такой подход абсолютно неоправдан.

Цитата(SKov @ Dec 14 2010, 13:35) *
Кстати, я слышал, что синопсис дает площадь кристалла, а не гейты. Нет?

Он все дает. Если бы он такой статистики не давал - какой был бы смысл заказчику на нее опираться?
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 11:42
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(DmitryR @ Dec 14 2010, 13:51) *
Искать покупателей на проект в миллионы гейтов, когда нет на демонстрацию вообще никаких, хотя бы ключевых блоков - это афера,

Ну, я так и знал, что кто-нибудь привяжется к этому миллиону. Хорошо, что еще не спросили, что за устройство,
и не дали пару хороших советов типа: оптимизируй до ста ХOR-ов, тогда точно все будет пучком wink.gif
Давайте не будем отвлекаться от вопроса.
В топике абсолютно конкретный вопрос. Возможно, не совсем правильно заданный.
Получил один вполне конкретный ответ, просто хотелось бы уточнить для чайника.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 14 2010, 11:55
Сообщение #10


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Вы если почитаете этот форум то увидите, что тут всегда задают наводящие вопросы, лишь только начинает попахивать сферическим конем в вакууме. Потому что если из вашего вопроса вычленить только суть без уточнений (сколько "гейтов" займет один миллион элементов XOR2), то можно ответить и три миллиона, и пять миллионов, а кто-то скажет - десять, и возможно не сильно соврет. Потому что как минимум библиотеки различаются сильно. Различается понятие "гейт". Они у вас как-то соединены с другой логикой, синтезатор будет логику объединять в более крупные элементы, они могут быть меньше. Не говоря уже о том, что проект при переносе с бумаги в железо может вырасти заметно, а иногда и в разы вырастает. У меня вон тут планировался один блок Рида-Соломона, по скорости не влез - пришлось поставить 4 в параллель. Не на каждом шагу, но такое бывает. Поэтому вам пытаются дать пути для получения более-менее точного ответа, а не с точностью до порядка, а вы еще и обижаетесь.
Go to the top of the page
 
+Quote Post
zzzzzzzz
сообщение Dec 14 2010, 12:10
Сообщение #11


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

Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641



Под гейтом чаще всего понимают AND2, NAND2, OR2, NOR2. То есть, двухвходовку из 4х транзисторов. (Но, это не правило, может быть по всякому. Зависит от задачи)
Реализация (полная, полностью буферизированная, на MUX) XOR2 состоит из 5 инверторов и 2 инвертора с ключами по питанию и земле. Итого 10+8 транзисторов = 18.
Частично буферизированная схема состоит из 3 инверторов и 2 с ключами, итого 14 транзисторов.
Не буферизированная - 2 инвертора + 2 с ключами = 12 тр.
Минимальная - 6 транзисторов.
Минимальная с буферами = 12 транз. Но уступает полной по топологии.

Полная схема наиболее адекватна моделирование-практика и менее чувствительна ко всяким "неожиданностям".

Число транзисторов разделите на 4 = оценочное количество гейтов.
Но лучше всего для оценки разделить площадь ячейки XOR2 на площадь NOR2. Хотя, нафига это, если уже есть площадь XOR2? sm.gif
Если у Вас есть *.lib, то в нем площадь для каждой ячейки приведена.
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 13:11
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(DmitryR @ Dec 14 2010, 14:55) *
Они у вас как-то соединены с другой логикой, синтезатор будет логику объединять в более крупные элементы, они могут быть меньше. Не говоря уже о том, что проект при переносе с бумаги в железо может вырасти заметно, а иногда и в разы вырастает. У меня вон тут планировался один блок Рида-Соломона, по скорости не влез - пришлось поставить 4 в параллель. Не на каждом шагу, но такое бывает. Поэтому вам пытаются дать пути для получения более-менее точного ответа, а не с точностью до порядка, а вы еще и обижаетесь.

Я не обижаюсь. И не против уточнения моего вопроса - наоборот, мне это и нужно. Я просто пытался противодействовать переводу обсуждения в плоскость "миллион XOR - это афера". Тем более что никто не говорил о миллионе XOR. Я говорил "ну, скажем, миллион XOR". Чувствуете разницу? wink.gif В остальном - большое спасибо за Ваш второй ответ. Он был очень "в тему".
Если у Вас будут трудности с Ридом (или с Соломономwink.gif) - обращайтесь, всегда помогу земляку, тем более, что в этой области есть хороший опыт.
(мой "миллион XOR" - это кодер длинного LDPC кода)
Еще раз спасибо.
Цитата
Под гейтом чаще всего понимают AND2, NAND2, OR2, NOR2. То есть, двухвходовку из 4х транзисторов. (Но, это не правило, может быть по всякому. Зависит от задачи)
.....

Теперь понятно. Значит - примерно 1.5 - 3 гейта. Спасибо!
Go to the top of the page
 
+Quote Post
yes
сообщение Dec 14 2010, 13:38
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(SKov @ Dec 14 2010, 16:11) *
Теперь понятно. Значит - примерно 1.5 - 3 гейта. Спасибо!


чтоб не было такой уверенности sm.gif приведу пример из конкретной либы, это кусок таблицы

Cell Name | Gate Count | Width(um)
ND2D0BWP12T 1 0.56
ND2D16BWP12T 16 6.02

можно видеть, что NAND2 в 1 строке занимает 1 гейт, а NAND2 во 2 строке занимает 16 гейт

и какая между ними разница?
разница в нагрузочной способности (выходном транзисторе),
поэтому бумажные оценки могут в 10 раз отличаться от реальности

Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 14 2010, 14:19
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(yes @ Dec 14 2010, 16:38) *
и какая между ними разница?
разница в нагрузочной способности (выходном транзисторе),
поэтому бумажные оценки могут в 10 раз отличаться от реальности

Это понятно. Если большое разветвление по выходу - то это должно быть дороже.
У меня это редкий случай.
Go to the top of the page
 
+Quote Post

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

 


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


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