?

Log in

No account? Create an account

Пятничное рабочее - Общество дровосеков Бердичева по изучению Мишны

Jun. 29th, 2012

05:50 pm - Пятничное рабочее

Previous Entry Share Next Entry

По просьбе tanchik показываю красотулечную змеючку из 50000 случайных вентилёчков, размещенную в FPGA Xilinx® Virtex5™ (XC5VLX330 для тех, кто понимает).
На последующих картинках схематично, в разных масштабах изображен электронный чип, который сам по себе ничего не делает, но позволяет загружать в себя и запускать схемы других электронных чипов для их отладки и тестирования перед передачей на изготовление.


Собственно змеючка (для сравнения, физический размер чипа, грубо, со спичечный коробок):


Я не ожидал, что она будет размещена столь прихотливо.

Увеличиваем: приглядевшись, можно увидеть синие (использованные) элементы.



Еще увеличиваем. Всё еще ничего интересного.



И вот теперь, наконец, что-то становится видно:


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

Еще увеличиваем.


Черные прямоугольные области, большие и маленькие узкие слева от синих прямоугольников, исчерканные "как попало" - секрет фирмы. Именно там делаются соединения между логическими элементами. "Соединительная сила" каждой такой области ограничена, поэтому выбор оптимального расположения элементов и соединений - всё еще скорее магия. Даже на современных процессорах поиск комбинации, удовлетворяющей всем условиям, может занимать многие часы, если занято больше половины элементов, а если больше трех четвертей, то, скорее всего, и вовсе не повезет.



А вот что находится внутри каждого синего прямоугольника:



Каждый из четырех прямоугольников слева способен вычислять логическую функцию от 6 аргументов.

Comments:

[User Picture]
From:ygam
Date:June 30th, 2012 02:49 am (UTC)
(Link)
FPGA - это современный ENIAC.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 02:58 am (UTC)
(Link)
И, что смешно, в них тоже, бывает, что-то "перегорает". Для больших FPGA нужно прогонять тесты и получать индивидуализированные файлы ограничений (place and route constraints). Как и на LCD, небольшое количество нефункциональных элементов или соединений допускается в поставляемых чипах.
(Reply) (Parent) (Thread)
[User Picture]
From:ftdf
Date:June 30th, 2012 06:30 am (UTC)
(Link)
Я, возможно, ошибаюсь, но стандартные девайсы полностью рабочие, без индивидуализации. Bitfile генерируется один под все чипы данной серии. С Virtex 2 и 5 (и Spartan 3) я с дефектами не сталкивался.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 06:44 am (UTC)
(Link)
Нам-то их сотни тысячи нужны, мы для дешевизны из bins похуже берем.

Edited at 2012-06-30 06:45 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]
From:ftdf
Date:June 30th, 2012 07:54 am (UTC)
(Link)
Да, я о таком варианте знаю. Но это "допускается в поставляемых чипах" с согласия клиента. Всё-таки стандартный случай - всё должно работать.

Просто есть фундаментальная разница с LCD, которые действительно, хочешь не хочешь, а допускают какое-то количество неработающих точек. Понятно, что для FPGA дефекты, смертельные для других микросхем, не беда. Но только если клиент хочет экономить и готов следить за индивидуальными файлами.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 08:00 am (UTC)
(Link)
Я думаю, что для критичных приложений (типа military, ATC, medical imaging) неработающие точки не допускаются. Т.е. в случае с LCD самый верхний bin обычному потребителю не показывают, потому что он от цен с ума сойдет. А с FPGA наоборот.

Если я помню более точно, основные проблемы там не столько внутри чипов, сколько в packaging, т.е. сonstraints в основном в I/O routing.
(Reply) (Parent) (Thread)
[User Picture]
From:ygam
Date:June 30th, 2012 02:50 am (UTC)
(Link)
До меня совсем недавно дошло, что F в FPGA и F в FET - это поле в разных метафорических смыслах.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 03:00 am (UTC)
(Link)
Да и по-русски "полевой транзистор" по-хорошему должен быть "польным". Я когда-то думал, что полевой транзистор - это прошедший (военную) приемку для работы в полевых условиях.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:June 30th, 2012 03:07 am (UTC)
(Link)
А чем не устраивает формулировка "ток, управляемый полем"? Ну и чисто визуально процесс как в водопроводном кране. Можно было бы и назвать вентилем (valve/gate). И у него есть sink, возможно для спама! :)

Edited at 2012-06-30 03:08 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 03:10 am (UTC)
(Link)
Эта формулировка меня устраивает. Меня не устраивает :), что при создании словосочетания "полевой транзистор" прилагательное "полевой" впервые в русском языке получило смысл "управляемый полем".
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:June 30th, 2012 03:13 am (UTC)
(Link)
Не совсем понял. С другим типом поля же есть полевой: полевые работы.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 03:36 am (UTC)
(Link)
Ну да. "Происходящие в поле", или "находящиеся в поле" (если цветы), или "сущность которых является полем" (полевая теория взаимодействия, полевые методы воздействия). "Полевой" в смысле "управляемый полем" - это новообразование.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:June 30th, 2012 03:39 am (UTC)
(Link)
Видимо, все будем говорить по-английски когда-то. :)
(Reply) (Parent) (Thread)
[User Picture]
From:radio_developer
Date:June 30th, 2012 03:39 am (UTC)
(Link)
ого. после мелких атмеловских контроллеров впечатляет
(Reply) (Thread)
[User Picture]
From:dglive
Date:June 30th, 2012 07:15 am (UTC)
(Link)
зашел по ссылке от танчика :))) космос какой то - ничего не понял
(Reply) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 07:18 am (UTC)
(Link)
Образно говоря, так (с большим увеличением) выглядит электронный конструктор для взрослых.
(Reply) (Parent) (Thread)
[User Picture]
From:_navi_
Date:June 30th, 2012 07:38 am (UTC)
(Link)
для богатых взрослых :-)
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 07:51 am (UTC)
(Link)
Данный конкретный - пожалуй, а на Spartan6 они смешных денег стоят, можно даже тинейджерам в подарок на sweet 16 покупать.
(Reply) (Parent) (Thread)
[User Picture]
From:dglive
Date:June 30th, 2012 06:15 pm (UTC)
(Link)
то что это что то по созданию микрочипов я как бы догадался....
все остальное для меня инопланетянская речь
(Reply) (Parent) (Thread)
[User Picture]
From:janatem
Date:June 30th, 2012 07:49 am (UTC)
(Link)
Эта схема имеет практический смысл? Ну вместо сравнительно долгого прожига плисины загружать новые схемы (только маленькие, потому что значительная ресурсов часть съелась) через штатный интерфейс памяти. Или просто для баловства?
(Reply) (Thread)
[User Picture]
From:spamsink
Date:June 30th, 2012 07:55 am (UTC)
(Link)
Практического не имеет, чисто экспериментальный для тестирования Xilinx-овского софта на предмет использования нетривиальных соединений. В хард я даже и не загружал, нет необходимости.
(Reply) (Parent) (Thread)
[User Picture]
From:janatem
Date:June 30th, 2012 08:31 pm (UTC)
(Link)
Что-то я заподозрил, что мы говорим о разных вещах.

«изображен электронный чип, который сам по себе ничего не делает, но позволяет загружать в себя и запускать схемы других электронных чипов»

Я вначале подумал, что сказанное относится к конкретной схеме — красотулечной змеючке. То есть функция этой схемы — загружать и исполнять другие схемы. Получается схемный аналог программы-интерпретатора.

Но потом подумал, что процитированное всё же относится к FPGA как таковой — просто популярное объяснение для тех, кто не в теме.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:July 3rd, 2012 08:10 pm (UTC)
(Link)
просто популярное объяснение для тех, кто не в теме

Это правильно. :)
(Reply) (Parent) (Thread)
[User Picture]
From:tanchik
Date:June 30th, 2012 08:21 pm (UTC)
(Link)
После прочтения поста и всех комментов уловила общий смысл в виде чего-то очень размытого, и то хлеб. ;)
А змейка прикольная, да.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:July 1st, 2012 12:51 am (UTC)
(Link)
Я давно знаю, что я хреновый педагог. :)
(Reply) (Parent) (Thread)
[User Picture]
From:sab123
Date:July 3rd, 2012 08:05 pm (UTC)
(Link)
Кстати, а вот у меня незавно возник вопрос: неужто они не только в книжках для начинающих, но и прям в индустрии изображают элементы AND и OR в виде таких хреновин странной формы? В отличие от ГОСТовских коробочек с "&" или "1" на них?
(Reply) (Thread)
[User Picture]
From:spamsink
Date:July 3rd, 2012 08:09 pm (UTC)
(Link)
Ну да, Xilinx-овская диаграмма устройства логического блока именно с такими "хреновинами". А что им ГОСТ? А как ГОСТ обозначает мультиплексор? Исключающее ИЛИ?
(Reply) (Parent) (Thread)
[User Picture]
From:sab123
Date:July 3rd, 2012 08:57 pm (UTC)
(Link)
Понятно, что им ГОСТ - ничего. Но ведь такие кривые хреновины ни рисовать ни читать неудобно. Вот и удивительно, что кто-то их использует для чего-то практического.

Мультиплексор - это, вообще говоря, уже более сложная схема, на уровне регистров. Если я правильно помню, помечалась MUX. Исключающее ИЛИ - плюс в кружочке. Гм, а то может и вовсе без кружочка, не помню.

В структурных схемах (в противоположность низкоуровневым э-э-э логическим, наверное) мультиплексор рисовался в виде трапеции узкой стороной вниз. Иногда еще и с выемочками между входами.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:July 3rd, 2012 09:32 pm (UTC)
(Link)
Рисует нынче обычно компьютер, ему все равно. Да и если вручную на доске, то чем крупнее детали, тем лучше для участников дискуссии - не надо вглядываться в мелкие значки, а читать - дело привычки.

Т.к. мультиплексор на транзисторах реализуется вовсе не как (S*A)+(~S*B), а гораздо более эффективно, то он может считаться низкоуровневым элементом.
(Reply) (Parent) (Thread)
[User Picture]
From:w0land
Date:July 6th, 2012 01:25 pm (UTC)
(Link)
Интересненькое развлеченьице. :-)

А как описывается такая схема? То есть, насколько я понимаю, даже весьма нестандартные схемы, состоящие из привычных счётчиков, мультиплексоров, элементов памяти и прочего будут далеко не настолько случайны. Как выглядит её описание и как туда закладывается случайность? Генерацией HDL файла со случайным соединением случайных комбинационных элементов и регистров?
(Reply) (Thread)