Guide to Integrated Circuits: различия между версиями
Doster-d (обсуждение | вклад) (Добавил картинки и выделил буковы согласно документу) |
Doster-d (обсуждение | вклад) (Добавил картинку для состояние гонки, и ссылки.) |
||
Строка 117: | Строка 117: | ||
== Основы, часть IV, управление потоком. == | == Основы, часть IV, управление потоком. == | ||
Управление потоком - термин используемый в сфере разработки языков программирования для определения в какой последовательности запускается код. Данный принцип применим и в интегральных схемах. Хороший менеджмент сопряжения очень важно для больших и/или сложных схем. | Управление потоком - термин используемый в сфере разработки языков программирования для определения в какой последовательности запускается код. Данный принцип применим и в интегральных схемах. Хороший менеджмент сопряжения очень важно для больших и/или сложных схем. | ||
− | У нас есть несколько компонентов для управлением поток, а именно для разбора входного сигнала на несколько сигналов, использование таймеров для того, чтобы все было использована в нужный момент (лучше если логика схемы не будет зависеть от этого из-за проблемы состояние гонки (race condition)), также многие схемы уже есть заложенный функционал для исполнения функций после выполнения логики компонента (пример: on get coordinates на картинки ниже). | + | |
+ | У нас есть несколько компонентов для управлением поток, а именно для разбора входного сигнала на несколько сигналов, использование таймеров для того, чтобы все было использована в нужный момент (лучше если логика схемы не будет зависеть от этого из-за проблемы [https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%B3%D0%BE%D0%BD%D0%BA%D0%B8 состояние гонки] ([https://en.wikipedia.org/wiki/Race_condition race condition])), также многие схемы уже есть заложенный функционал для исполнения функций после выполнения логики компонента (пример: on get coordinates на картинки ниже). | ||
Вот пример того как выглядит такое состояние: | Вот пример того как выглядит такое состояние: | ||
− | Когда кнопка нажимается, то он отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в | + | [[Файл:Race_condition.png]] |
+ | |||
+ | Когда кнопка нажимается, то он отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в салатовые и синие переменные до того, когда логика кнопки дойдет до вызова логик экранов, то экраны отобразят неверные значения. | ||
= Создание простой интегральной схемы: шаг за шагом. = | = Создание простой интегральной схемы: шаг за шагом. = |
Версия от 22:45, 16 сентября 2021
В разработке… |
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной. Вы можете помочь проекту Onyx и сообществу SS13 в целом — зайдите на наш Портал сообщества. |
Доступно из игры |
Внимание! Материал, изложенный ниже, доступен для прочтения в виде книги «Guide to Integrated Circuits» играющим на серверах SS13 нашего проекта. Постарайтесь не размещать ниже этой плашки информацию, которая не должна быть доступна персонажам внутри игры (см. OOC в IC). |
Интегральные платы
Дисклеймер: Интегральные схемы довольно сложны для восприятие “не-инженерного” ума, для максимальной эффективности требуется несколько часов для поиска и прогона оптимального количества функций (компонентов) и их связей, в данном гайде мы постараемся затронуть легковоспронимаймый для всех людей способы организации производства интегральных схем.
Теперь отсек Исследования и Разработок может порадовать Вас системой автоматического сканирование людей на раннения, датчики здоровья, которые могут передавать видео, где Вы находитесь, автоматическая турель, система автоматического уничтожения или просто… Шприц? Действительно, Вы хотите запихнуть ШПРИЦ в проспекты нового отдела? Совсем поехавшие идиоты?! Ты уволен! Это не Вам, [ВСТАВЬТЕ НАЗВАНИЕ ВАШЕЙ ДОЛЖНОСТИ]. Да, ты, бери вещи и на выход. Впрочем можно сделать все, что придет вам в голову при помощи новой СИСТЕМЫ ИНТЕГРАЛЬНЫХ СХЕМ™. Несмотря на то, что с первого взгляда это может показаться очень сложной вещью, на самом деле все довольно легко, наши инженеры продолжают улучшать интерфейсы для облегчения работы с интегральными схемами, что не скажешь на другие филиалы, которые… Впрочем не важно. Что-ж… Начнем!
Дисклеймер: предыдущие утверждение о том, что разработку таких схем очень простая - наглая ложь. Конечно, для “простых” схем это легко, но когда Вы начнете создавать более продвинутые схемы Вам понадобиться немного школьной математики, возможно даже высшей (вузовской) математики, и, конечно же, знание возможностей из смежных отраслей станции (химия, ксенобио, даже знания из отдела СБ). Впрочем, даже на взгляд опытного “интегральщика” простые схемы могут очень сильно удивить незнакомого со спецификой интегральных схем человека. Будьте готовы к непредвиденным последствиям.
Инструменты
Integrated Circuit Printer - Ваше все, тут создаются основы для Ваших схем, получают компоненты, создают инструментов для сопряжения компонентов.
Circuit Wirer - используется для создания связей между компонентами в интегральной схеме.
Circuit Debugger - позволяет выставлять значения в переменные, активировать пины уровня сигнала
Батарея - используется для питание интегральной схемы. Без питания - нет работы интегральной схемы.
Опционально:
Circuit Analyzer - позволяет скопировать код интегральной схемы для последующего использования в других схем. РУССКИЙ ТЕКСТ НЕ ПЕРЕНОСИТСЯ
Circuit Detailer - инструмент покраски схемы в выбранной цвет, говорят, что такая интегралка на 20 процентов лучше работает, но это слухи.
Отвертка - используется для того, чтобы закрыть внутренности интегральной схемы от глаз пользователя интегральной схемы.
Включенная сварка - при использования на закрытой схеме, может запретить ее открывать отверткой, также при повреждения интегралки ее можно починить этим инструментом.
Ключ - используется для закрепление интегралки на пол.
Гайду рассчитан на то, что у Вас есть хотя бы обязательные инструменты.
Основы, часть I, аппаратура, пространство и сложность.
Интегральная схема - дом компонентов. Без интегральной схемы - нет машины. Также интегральной схеме необходим источник питания - батарейка, для питание компонентов. Отдел ИиР имеет доступ к протолату и зарядникам, поэтому проблем с питанием нет, если Вы работаете в отделе, где не можете изготовить батареи, то можете поискать их на объекте или попросить у ученых из ИиР. Также существует еще две важные переменные: Space - пространство максимальное занимаемое компонентами в схеме, Вы не можете вставить больше компонентов по пространству (в сумме), чем указанное в данной переменной Complexity - максимальная “сложность” схемы, Вы не можете вставить больше компонентов по сложности (в сумме), чем указанное в данной переменной.
Почти каждый компонент вставляемый в интегральную схему имеет 1 “пространство”, также у компонента есть “сложность”, которая зависит от того, сколько функций выполняет данный компонент, например кнопка выполняет одно действие активировать канал активации при нажатие - имеет 1 “сложность”, но интегрированный гипо-инжектор имеет функции инжектирования, высасывания реагентов в что-то и перемещение реагентов внутри схемы - 20 “сложности”.
В основном решение проблемы эффективности схемы заключается в наборе “фич” схемы за наименьшее количество “сложности” и “пространства”. Количества “пространства” и “сложности” зависит от типа корпуса интегральных схем: [По поводу спрайтов обратиться к Architector#4543 в дискорд.]
- сборки - имеют малый размер, позволяют носить себя в кармане, имеют 25 пространства и 75 сложности [спрайты украли хохлы] - устройства- имеют очень маленький размер, имеют 25 / 2 пространства и 75 / 2 сложности.
- механизм - имеют средний размер, имеют 50 пространства и 150 сложности - машины - имеют большой размер, имеют 100 пространства и 300 сложности. - дроны - имеют большой размер, имеют 75 пространства и 225 сложности, единственный корпуса, которые могут перемещаться независимо от оператора. - настенные устройства - в зависимости от название имеет разный размер и сложность, можно ставить на стены.
Простые по сложности схемы (фонарик, переводчик) стоит вставлять в корпуса типа сборки. Более сложные по типу устройств по выкачки крови обычно механизмы, а самые мощные (по типу механизма получения ключа XOR encryption) - машины. Дроны - более нишевые устройства, но открывают огромные возможности благодаря возможности перемещения. Также у всех видов корпусов есть подтипы, они ничем не отличаются, кроме того как они выглядят.
Основы, часть II, Компоненты, Pin’ы и значения данных.
Компоненты является той части машины, которая и делает всю работу. В них содержатся логика работы от пассивной зарядки схемы до выстрела энерго оружием по цели. Как было сказано в первой части у каждого компонента есть занимаемое пространство и сложность, их можно просмотреть осмотрев компонент.
Компоненты печатаются из принтера интегральных схем. Множество “крутых” компонентов заблокировано, для того, чтобы их разблокировать требуется вставить диск изученные в РнД. Компоненты можно переработать в металл используя принтер интегральных схем, также Вы сможете переработать корпус полную компонентов тем же способом. После переработки компонентов, Вы можете также переработать корпус.
Компоненты “общаются” между собой при помощи пинов. Пины подключаются друг к другу при помощи circuit wirer, включая пины внутри компонента, и с другими компонентами, также используются для передачи информации через сигналы.
Вкратце, это кишки Ваших машин.
Существуют три типа пинов:
Входные данные хранят информацию о том, как или над чем должен работать компонент, к примеру, какое количество реагентов надо вколоть в человека, или сколько энергии передать.
Выходные данные хранят информацию, которая выводится после выполнения программы компонента.
Сигналы говорят, когда выполнять программу компонента, и что делать при определенных случаях, чаще всего компоненты содержит два сигнала: выполнить программу, выполнить программы после завершения данной программы.
У некоторых компонентов могут отсутствовать входные, входные данные, сигналы или сразу все три. Пассивные компоненты такие как реле, не имеют пинов вообще и работают как только внутренние условия для работы удовлетворяются.
Пины различаются по переменным.
Переменные:
Используя Отладчик можно задавать переменным постоянные значения. Используйте его, чтобы выбрать тип переменной.
Переменные с типом <NUM> могут содержать только числовое значение.
Переменные с типом <INDEX> могут содержать только положительные целые числа
Переменные с типом <COLOR> могут содержать только HEX (закодированный шестнадцатеричный цвет) (прим. #A9A9A9 - серый).
Переменные с типом <REF> могут содержать только имя объекта (прим. Pushistiy Furry).
Переменные с типом <TEXT> могут содержать только текстовую строку.
Переменные с типом <LIST> могут содержать только список с различными переменными.
Переменные с типом <BOOL> могут содержать значения true или false. Их также можно задать числовым значением.
Переменные с типом <ANY> могут содержать любые значения.
Существуют компоненты, которые переводят один тип переменную на другой тип переменный, например конвертер “number to text” принимает на вход число, а на выходе выводит число как текстовую строку.
Вы можете увидеть переменные рядом с именем пина, как и другие важные вещи:
Как Вы уже знаете, Вы можете привязать два пина между собой при помощи circuit wirer, также Вы можете при помощи этого инструмента отвязать, для этого переключите его в режим unwire, нажав на инструмент и прожав на название сопряженного pin'а и название pin'а, к которому он подключен.
Основы, часть III - сигналы.
Как было сказано ранее сигналы говорят, как и когда выполнять программу компонента. Это единственный способ заставить компонент сделать хоть что-то сделать (если это не пассивные компоненты), так как даже если у Вас есть значения на входных данных, Вы не сможете их использовать пока компонент не получит сигнал на использования данных. Существует два типа сигналов: PULSE_IN (вход) и PULSE_OUT (выход) PULSE_IN выступает в роли “приемника”. Когда они получают команду от приемника, они запускают назначенную им функцию, если установлена, к примеру, “pulse in”, то запускается единственная функция компонента. В примере с компонентом light, “toggle light” включает или выключает свет от компонента, когда данный сигнал получает команду. PULSE_OUT выступают в роли “передатчика”. Они НЕ получают команду от приемника, но могут быть активированы через функцию компонента после ее завершения. К примеру, компонент “reagent pump” имеет сигнал “on transfer”, который активируется при успешной передачи реагентов в интегральную схему, и который при активации подаст сигнал всем подключенным PULSE_INым на активацию их функций. PULSE_OUT не могут быть подключены к другому PULSE_OUT.
Понимание работы сигналов является краеугольным камнем работы с интегральными схемами. В пример можно привести то, что компонент “button” имеет сигнал “on pressed”, который может быть подключен к компоненту “light”, пину “toggle light”, используя circuit wirer, который активирует функцию “light” светить, до тех пор, пока у интегральной схемы есть ток, что позволяет пользователю интегральной схемы включать и выключать свечение интегральной схемы по нажатию кнопки. Вы также можете присоединить множество сигналов к одному сигналу, к примеру с той же кнопкой, Вы помимо активации функции света, можете связать сигнал с сигналом “play sound”, компоненты “beeper”, которая будет проигрывать звук, который был назначен ее в переменной (смотри список переменных в описание компонента). Это заставит машину помимо включения света проигрывать звук.
Основы, часть IV, управление потоком.
Управление потоком - термин используемый в сфере разработки языков программирования для определения в какой последовательности запускается код. Данный принцип применим и в интегральных схемах. Хороший менеджмент сопряжения очень важно для больших и/или сложных схем.
У нас есть несколько компонентов для управлением поток, а именно для разбора входного сигнала на несколько сигналов, использование таймеров для того, чтобы все было использована в нужный момент (лучше если логика схемы не будет зависеть от этого из-за проблемы состояние гонки (race condition)), также многие схемы уже есть заложенный функционал для исполнения функций после выполнения логики компонента (пример: on get coordinates на картинки ниже).
Вот пример того как выглядит такое состояние:
Когда кнопка нажимается, то он отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в салатовые и синие переменные до того, когда логика кнопки дойдет до вызова логик экранов, то экраны отобразят неверные значения.
Создание простой интегральной схемы: шаг за шагом.
Чтобы собрать все информацию вместе давайте шаг за шагом создадим простой фонарик. Для этого мы возьмем корпус, батарею, мини солнечная батарея, световая плата, кнопка. Напечатайте вещи (батарейка в протолате) в интегральном принтере плат (Integrated Circuit Printer) указанные вещи, для корпуса возьмите assembly type-a
Как только напечатайте эти предметы, вставьте все в корпус. Как только Вы возьмете сборку в руку, или используйте предметы, у Вас будут два варианта взаимодействия, внутренний интерфейс (слева) и внешний (справа)
Обратите внимание на параметры пространство и сложность? Обратили? Забудьте. Чтобы заставить схему работать, нам необходимо соединить канал сигнала кнопки с каналом сигнала света. Приступим! Возьмите в руки Integrated Wirer, подвяжите провод на pin’е “on pressed”
Затем перейдите в компонент “light” (также при успехе Вы заметите, что “You attach a data wire to button’s on pressed data channel”), затем соедините на “toggle light”
Если у Вас получается так:
то продолжайте, у Вас уже почти получилось. Вуаля, Вы молодцы, Вы присоединили два канала и теперь Ваша интегральная схема готова к работе.
Осталось только закрыть корпус интегралки отверткой.
Наша интегральная схема полностью завершена и работоспособна, зайдите в темную комнату и нажмите на кнопку. До:
После:
“Да, будет свет!” © Бог. Ну вот и все, а теперь домашнее задание - создайте интегральную схема для получения ключа от главного способа шифрования ref (XOR Encryption) и последующие шифрование сообщения типа строка [1, 3, 5]... Вы поверили? Шучу я, Вам пока еще рано такую задачу решать, но все для ее решения есть. Замените ligth на advanced light, поэкспериментируйте с дебаггером (Circuit Debugger) и этим компонентом. И это только снег с поверхности айсберга интегральных схем - есть возможность создать портативную зарядку энергетического оружия, устройство, которое будет переводить еду в реагенты и будет запитывать Вас ими, переводчики, которые позволят людям говорить не знаю языка, друг друга, единственное ограничение интегральных схем - Ваше воображения*
- если, конечно, нет компонентов для реализации, но инженеры с ЦК с радостью разработают для Вас любые компоненты.
Добро пожаловать в интегральные схемы, господа.
Полезные советы
Важные заметки и советы. Tiny photovoltaic cell’ы отлично подходят для питание простых схем.
Starter компонент отлично подходит для загрузки базовой информации по работе с интегралкой.
Вы можете сделать n-секундный тикер из n-секндного таймера и стартера, замкнув таймер вход и выход таймера на себя и подключив стартер ко входу таймера.
Маленькие экраны показывают информацию только при осмотре, обычные экраны отображают информацию при осмотре и если Вы держите корпус. Большой в радиусе 1 метра.
Если Вы замечаете, что делаете монотонные вещи (*кхем* ксенобиология), Вы можете это автоматизировать.
Здесь пригодится больше простой математики, чем алгебры и тригонометрии. Теория групп и теория автоматизации содержит паттерны для решения большинства проблем с интегральными схемами, они не сложные, изучите их.
Система интегральных схем позволяет опытным инженерам создавать убер-схемы для массового уничтожения космонавтов. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ИХ!!!! Мы любим схемы, они приносят нам всем веселья, не заставляйте инженеров с ЦК уничтожать платы из-за Ваших действий. Пожалуйста?