Хороший источник, чтобы узнать об основах интегральных схем?

Я хотел бы изучить основы интегральных схем и микропроцессоров. Чтобы получить представление о моем уровне невежества, вот несколько вопросов, которые у меня есть: 1. Сколько «слоев» имеет микропроцессор? 2, 3, сотни, тысячи? Я предполагаю, что их должно быть более одного, поскольку, если «провода» пересекаются, я предполагаю, что один должен прыгнуть на слой ниже (или выше) на некоторое время, а затем прыгнуть обратно? 2. Я помню, как читал, что распределение «часов» является большой проблемой для энергопотребления и конструкции чипа. Должны ли все части микросхемы работать на одних и тех же тактовых частотах? Может ли «канал связи» быть самосинхронизирующимся, как, я думаю, соединение USB/Ethernet. 3. Есть ли программное обеспечение, с помощью которого можно спроектировать интегральную схему, смоделировать ее и посмотреть, работает ли она?

Кто-нибудь знает хорошую книгу? У меня очень хорошие знания в области математики и информатики, а в области электроники — слабые.

Ответы (5)

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


  • 1. Сколько «слоев» имеет микропроцессор?

Есть только один слой транзисторов. Большинство транзисторов изготавливаются в процессе, в котором для межсоединений используются 3 слоя металла . AMD Athlon Thunderbird 2000 года выпуска имеет 6 уровней межсоединений, а более поздние процессоры AMD и Intel используют еще несколько слоев.

  • 2. Я помню, как читал, что распределение «часов» является большой проблемой для энергопотребления и конструкции чипа. Должны ли все части микросхемы работать на одних и тех же тактовых частотах?

Почти все ЦП и большинство цифровых ИС в целом разрабатываются с использованием инструментов, которые «обеспечивают соблюдение практики синхронного проектирования» с использованием единых глобальных часов.

Однако технически глобальные часы не нужны. Есть несколько глобально асинхронных локально синхронных (GALS) чипов. Было построено несколько чипов с «бестактным процессором» , у которых вообще нет часов.

  • 2а. Может ли «канал связи» быть самосинхронизирующимся, как, я думаю, соединение USB/Ethernet.

Да. В некоторых системах (таких как бестактовые ЦП) используются схемы, полностью нечувствительные к задержкам , чтобы оставаться синхронизированными, поэтому любой конец может работать с любой мыслимой скоростью, вплоть до практически нулевой.

Многие протоколы междугородной связи — USB, Ethernet, CANbus, FireWire, DMX512, ATSC, DVB и т. д. — предполагают, что оба конца работают с примерно одинаковой скоростью, и компенсируют небольшие различия в скорости с помощью собственной -синхронизирующие сигналы для компенсации проскальзывания битов, рассинхронизации кадров и т.д.

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

  • 3. Есть ли программное обеспечение, с помощью которого можно спроектировать интегральную схему, смоделировать ее и посмотреть, работает ли она?

Да. Я составляю список , который включает в себя симуляторы цифровых схем.

Это все программное обеспечение для проектирования на уровне цифровых ворот. Существует целая категория программного обеспечения для проектирования на уровне транзисторов, такое как «Magic and IRSIM», которое используется для полностью индивидуального проектирования аналоговых и цифровых микросхем.

Проверьте https://code.google.com/p/elementary-microprocessor/ . Это базовый микропроцессор, который я разработал для образовательных целей и смоделировал в программе на Java, поэтому он должен работать на любой платформе. Прочтите введение, и в нем есть ссылки на другие проекты, которые еще более просты, на случай, если элементарный микропроцессор окажется более сложным, чем вы готовы взяться за него. Он не касается физического дизайна, только логического дизайна, но документация написана на простом английском языке, избегает технических терминов и дает их определение при использовании, и не предполагает, что читатель когда-либо посещал занятия по этому предмету. Удачи!

Кроме того, он поставляется с некоторыми довольно плохими сценариями Perl, которые служат ассемблером, чтобы помочь вам писать программы, которые работают при импорте в программу-симулятор. Вы можете написать мне по любым вопросам на всех. -Рори

Спасибо, ЭМ выглядит очень красиво. Увы, я не вижу вашего адреса электронной почты ни на этом stackexchange, ни на harkopen.
Это elementarymicroprocessor@gmail.com. Я убедился, что теперь он есть на странице проекта harkopen.

Возможно, вы захотите взглянуть на некоторые ответы на этот вопрос здесь:

книга по дизайну микроконтроллеров/процессоров?

Книга «Элементы вычислительных систем: создание современного компьютера из первых принципов» — отличное место для начала.

Есть некоторые действительно основы, двоичная арифметика, булева алгебра и логические переключатели. Двоичные цифры равны 1 или 0, а группа может представлять число, где значение каждой позиции равно 2 до n, где n — индекс позиции цифры, поэтому значение группы/слова — это сумма значений позиции, которые равны 1. Аналогично десятичной системе, где цифры от 0 до 9.

Булева алгебра имеет дело с истинными/ложными условиями, которые также являются двоичными значениями, поэтому в цифровых схемах сигнал, представленный напряжением 0 или отличным от нуля, также может представлять двоичные значения. Таким образом, простой ряд переключателей включения/выключения, подключенных к лампочкам, может отображать значение, в котором переключатель «включено» и свет соответствуют двоичному значению этой позиции в ряду.

Логические/логические функции используют несколько переключателей, где последовательно соединенные переключатели выполняют функцию «и», потому что оба должны быть включены, чтобы зажечь лампочку. Соедините их параллельно для «или», тогда либо переключатель 1, либо переключатель 2 зажжет лампочку.

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

На практике только несколько транзисторов могут быть соединены напрямую друг с другом, поэтому сеть функций связана для создания сложных функций. Каждая функция становится логическим уровнем и имеет конечное время для разрешения. Сумма задержек для каждого уровня в пути является задержкой пути. Путь с наибольшей задержкой становится критическим фактором производительности (критический путь). Может возникнуть путаница в отношении уровней (времени) конструкции и уровней металла, используемого для физического соединения транзисторов.

Задержка критического пути ограничивает максимальную тактовую частоту, поскольку тактовый период должен быть больше, чем критический путь.

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

Счетчик состоит из группы элементов хранения, которые являются входными данными для сумматора/инкрементатора, который является входным для этих элементов. Счетчик должен изменяться на 1 приращение при поступлении входного управляющего сигнала. Набор из 2 входов и может управлять сумматором со счетчиком. Если счетчик состоит из защелок, которые представляют собой просто вентили с перекрестной связью, длительность управляющего сигнала может быть достаточно большой, чтобы произошло более одного приращения. Вместо защелок используются D-триггеры, потому что они могут изменяться только один раз за фронт тактового сигнала независимо от периода. Теперь применимы еще две вещи: входное значение должно быть стабильным в течение времени установки до фронта тактового сигнала и в течение времени удержания после него.

Многие FF могут измениться на любом заданном фронте, поэтому все часы должны происходить очень близко к одному и тому же времени, иначе ввод может измениться в течение этого окна.

2. Я помню, как читал, что распределение «часов» является большой проблемой для энергопотребления и конструкции чипа. Должны ли все части микросхемы работать на одних и тех же тактовых частотах? Может ли «канал связи» быть самосинхронизирующимся, как, я думаю, соединение USB/Ethernet.

Часто существует несколько разных «тактовых доменов» на разных частотах, иногда с переменной или с возможностью полной остановки. Вы можете восстановить часы из потоков данных всеми возможными способами, особенно с умным кодированием — скромный штрих-код является примером этого.

Асинхронная логическая схема запускает следующую фазу вычислений после завершения предыдущей. Он никогда не был коммерциализирован, так как требует совершенно другой методологии проектирования.

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

3. Есть ли программное обеспечение, с помощью которого можно спроектировать интегральную схему, смоделировать ее и посмотреть, работает ли она?

Да, их довольно много для разных целей на разных уровнях абстракции. Cadence и Synopsys — громкие имена; У Modelsim есть очень полезная бесплатная версия для логического моделирования. SPICE используется для определения свойств ворот на кремниевом уровне.