From 9965e870dcb9b771651938ba335c81b72d39d8c9 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Wed, 24 Jan 2024 12:08:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20What=20is=20HDL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Introduction/What is HDL.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Introduction/What is HDL.md b/Introduction/What is HDL.md index 6b00a0e..d1fb40f 100644 --- a/Introduction/What is HDL.md +++ b/Introduction/What is HDL.md @@ -4,27 +4,37 @@ ![../.pic/Introduction/What%20is%20HDL/i4004.gif](../.pic/Introduction/What%20is%20HDL/i4004.gif) -Данная микросхема состоит из 2300 транзисторов. +_Рисунок 1. Цифровая схема процессора intel 4004[[1]](https://www.4004.com/mcs4-masks-schematics-sim.html)._ + +Данная микросхема состоит из 2300 транзисторов[[2]](https://en.wikipedia.org/wiki/Intel_4004). За прошедшие полсотни лет сложность цифровых схем выросла колоссально. Современные процессоры для настольных компьютеров состоят из десятков миллиардов транзисторов. Диаграмма выше при печати в оригинальном размере займет прямоугольник размером 115х140см с площадью около 1.6м2. Предполагая, что площадь печати имеет прямо пропорциональную зависимость от количества транзисторов, получим что печать диаграммы современных процессоров потребует площадь в 16млн. м2, что эквивалентно квадрату со стороной в 4км. Старый город +_Рисунок 2. Масштаб размеров, которых могли бы достигать цифровые схемы современных процессоров, если бы они печатались на бумаге._ + Как вы можете догадаться в какой-то момент между 1971-ым и 2022-ым годами инженеры перестали разрабатывать цифровые схемы, рисуя их на бумаге. Разумеется, разрабатывая устройство, не обязательно вырисовывать на схеме каждый транзистор — можно управлять сложностью, переходя с одного уровня абстракции на другой. Например, начинать разработку схемы с соединения функциональных блоков, а затем рисовать схему для каждого отдельного блока. К примеру, схему intel 4004 можно представить в следующем виде: ../.pic/Introduction/What%20is%20HDL/4004_arch.png -Однако несмотря на это, даже отдельные блоки порой бывают довольно сложны. Возьмем блок аппаратного шифрования по алгоритму AES на рисунке ниже: +_Рисунок 3. Структурная схема intel 4004[[2]](https://en.wikipedia.org/wiki/Intel_4004)._ + +Однако несмотря на это, даже отдельные блоки порой бывают довольно сложны. Возьмем блок аппаратного шифрования по алгоритму AES на рисунке 4: ![../.pic/Introduction/What%20is%20HDL/aes_enc_sml.png](../.pic/Introduction/What%20is%20HDL/aes_enc_sml.png) +_Рисунок 4. Структурная схема блока аппаратного шифрования по алгоритму AES[[3]](https://iis-people.ee.ethz.ch/~kgf/acacia/acacia_thesis.pdf)._ + Заметьте, что даже этот блок не является атомарным. Каждая операция Исключающего ИЛИ, умножения, мультиплексирования сигнала и таблицы подстановки — это отдельные блоки, функционал которых еще надо реализовать. В какой-то момент, инженеры поняли, что проще описать цифровую схему в текстовом представлении, нежели в графическом. Как можно описать цифровую схему текстом? Рассмотрим цифровую схему полусумматора: ![Схема полусумматора](../.pic/Labs/lab_01_adder/fig_01.drawio.png) +_Рисунок 5. Цифровая схема полусумматора._ + Это **устройство** (_полусумматор_) имеет два **входа**: _a_ и _b_, а также два **выхода**: _S_ и _P_. Выход _S_ является **результатом** логической операции **Исключающее ИЛИ** от операндов _a_ и _b_. Выход _P_ является **результатом** логической операции **И** от операндов _a_ и _b_. @@ -57,4 +67,11 @@ endmodule Обратите внимание, что код на языке Verilog описывает устройство целиком, одномоментно. Это описание схемы выше, а не построчное выполнение программы. Может показаться, что описывать устройство текстом сложнее, чем рисовать схему (тем более что сперва мы **уже нарисовали схему**, а затем её описали). Однако, с практикой описание схемы в текстовом виде становится намного проще и не требует диаграммы. Для описания достаточно только спецификации: формальной записи того, что должно делать устройство, по которой разрабатывается алгоритм, который затем претворяется в описание на HDL. -Занятный факт: ранее было высказано предположение о том, что инженеры перестали разрабатывать устройства, рисуя цифровые схемы в промежуток времени между 1971-ым и 2022-ым годами. Так вот, первая конференция, посвященная языкам описания аппаратуры состоялась в 1973-ем году. Таким образом, Intel 4004 можно считать одним из последних цифровых устройств, разработанных без использования языков описания аппаратуры. +Занятный факт: ранее было высказано предположение о том, что инженеры перестали разрабатывать устройства, рисуя цифровые схемы в промежуток времени между 1971-ым и 2022-ым годами. Так вот, первая конференция, посвященная языкам описания аппаратуры состоялась в 1973-ем году[[4, стр. 8]](https://dl.acm.org/doi/pdf/10.1145/3386337). Таким образом, Intel 4004 можно считать одним из последних цифровых устройств, разработанных без использования языков описания аппаратуры. + +## Источники + +1. [Intel 4004 — 50th Anniversary Project](https://www.4004.com/mcs4-masks-schematics-sim.html); +2. [Страница википедии по Intel 4004](https://en.wikipedia.org/wiki/Intel_4004); +3. [F.Ka˘gan. Gürkaynak / Side Channel Attack Secure Cryptographic Accelerators](https://iis-people.ee.ethz.ch/~kgf/acacia/acacia_thesis.pdf); +4. [P. Flake, P. Moorby, S. Golson, A. Salz, S. Davidmann / Verilog HDL and Its Ancestors and Descendants](https://dl.acm.org/doi/pdf/10.1145/3386337).