В проектировании цифровых схем уровень регистровой передачи ( RTL ) представляет собой абстракцию проектирования, которая моделирует синхронную цифровую схему с точки зрения потока цифровых сигналов ( данных ) между аппаратными регистрами и логических операций , выполняемых над этими сигналами.
Абстракция уровня регистровой передачи используется в языках описания оборудования (HDL), таких как Verilog и VHDL, для создания высокоуровневых представлений схемы, из которых могут быть получены низкоуровневые представления и, в конечном счете, фактическая проводка. Проектирование на уровне RTL является типичной практикой в современном цифровом проектировании. [1]
В отличие от проектирования программного компилятора, где уровень передачи регистров является промежуточным представлением, а на самом низком уровне уровень RTL является обычным входом, с которым работают проектировщики схем. Фактически, в синтезе схем иногда используется промежуточный язык между представлением уровня передачи входных регистров и целевым списком соединений . В отличие от списка соединений, доступны такие конструкции, как ячейки, функции и многобитовые регистры. [2] Примерами являются FIRRTL и RTLIL.
Моделирование на уровне транзакций — это более высокий уровень проектирования электронных систем .
Синхронная схема состоит из двух видов элементов: регистров (последовательная логика) и комбинационной логики . Регистры (обычно реализуемые как D-триггеры ) синхронизируют работу схемы с фронтами тактового сигнала и являются единственными элементами в схеме, имеющими свойства памяти. Комбинационная логика выполняет все логические функции в схеме и обычно состоит из логических вентилей .
Например, на рисунке показана очень простая синхронная схема. Инвертор подключен от выхода Q регистра к входу регистра D для создания схемы, которая изменяет свое состояние на каждом переднем фронте тактового сигнала clk. В этой схеме комбинационная логика состоит из инвертора.
При проектировании цифровых интегральных схем с помощью языка описания оборудования (HDL) проекты обычно проектируются на более высоком уровне абстракции, чем уровень транзистора ( логические семейства ) или уровень логического вентиля. В HDL проектировщик объявляет регистры (которые примерно соответствуют переменным в языках программирования) и описывает комбинационную логику, используя конструкции, знакомые по языкам программирования, таким как if-then-else и арифметические операции. Этот уровень называется уровнем передачи регистров . Этот термин относится к тому факту, что RTL фокусируется на описании потока сигналов между регистрами.
В качестве примера, упомянутую выше схему можно описать на языке VHDL следующим образом:
D <= не Q ; процесс ( clk ) начать , если rising_edge ( clk ) тогда Q <= D ; конец , если ; конец процесса ;
Используя инструмент EDA для синтеза, это описание обычно можно напрямую перевести в эквивалентный файл аппаратной реализации для ASIC или FPGA . Инструмент синтеза также выполняет оптимизацию логики .
На уровне передачи регистров можно распознать некоторые типы схем. Если есть циклический путь логики от выхода регистра к его входу (или от набора выходов регистров к его входам), схема называется конечным автоматом или может быть названа последовательной логикой . Если есть логические пути от одного регистра к другому без цикла, она называется конвейером .
RTL используется на этапе проектирования логики цикла проектирования интегральных схем .
Описание RTL обычно преобразуется в описание схемы на уровне вентилей с помощью инструмента логического синтеза . Результаты синтеза затем используются инструментами размещения и маршрутизации для создания физической компоновки .
Инструменты логического моделирования могут использовать RTL-описание проекта для проверки его корректности.
Наиболее точные инструменты анализа мощности доступны для уровня схемы, но, к сожалению, даже при моделировании на уровне коммутатора, а не устройства, инструменты на уровне схемы имеют недостатки, такие как они либо слишком медленные, либо требуют слишком много памяти, что препятствует работе с большими чипами. Большинство из них являются симуляторами, такими как SPICE , и использовались проектировщиками в течение многих лет в качестве инструментов анализа производительности. Из-за этих недостатков инструменты оценки мощности на уровне вентилей начали получать некоторое признание, когда начали закрепляться более быстрые вероятностные методы. Но это также имеет свой компромисс, поскольку ускорение достигается за счет точности, особенно при наличии коррелированных сигналов. За эти годы было осознано, что наибольшие выигрыши в проектировании с низким энергопотреблением не могут быть получены за счет оптимизации на уровне схем и вентилей, тогда как оптимизация архитектуры, системы и алгоритмов, как правило, оказывает наибольшее влияние на энергопотребление. Поэтому произошел сдвиг в склонности разработчиков инструментов в сторону инструментов анализа и оптимизации высокого уровня для мощности.
Хорошо известно, что более существенное снижение энергопотребления возможно, если оптимизация выполняется на уровнях абстракции, таких как архитектурный и алгоритмический уровень, которые выше уровня схемы или вентиля [3]. Это обеспечивает необходимую мотивацию для разработчиков, чтобы сосредоточиться на разработке новых инструментов анализа энергопотребления на архитектурном уровне. Это никоим образом не означает, что инструменты более низкого уровня не важны. Вместо этого каждый уровень инструментов обеспечивает основу, на которой может быть построен следующий уровень. Абстракции методов оценки на более низком уровне могут использоваться на более высоком уровне с небольшими изменениями.
Это метод, основанный на концепции эквивалентов вентилей. Сложность архитектуры чипа можно приблизительно описать в терминах эквивалентов вентилей, где количество эквивалентов вентилей указывает среднее количество эталонных вентилей, необходимых для реализации конкретной функции. Общая мощность, необходимая для конкретной функции, оценивается путем умножения приблизительного количества эквивалентов вентилей на среднюю мощность, потребляемую каждым вентилем. В качестве эталонного вентиля может использоваться любой вентиль, например, двухвходовой вентиль NAND.
Этот метод дополнительно настраивает оценку мощности различных функциональных блоков, имея отдельную модель мощности для логики, памяти и межсоединений, предлагая метод аппроксимации коэффициента мощности (PFA) для индивидуальной характеристики всей библиотеки функциональных блоков, таких как умножители, сумматоры и т. д. вместо единой эквивалентной по вентилям модели для «логических» блоков.
Мощность по всему чипу аппроксимируется выражением:
Где K i — коэффициент пропорциональности ПФА, характеризующий i-й функциональный элемент, является мерой сложности оборудования и обозначает частоту активации.
G i обозначает сложность оборудования умножителя, связанную с квадратом длины входного слова, т.е. N 2 , где N — длина слова. Частота активации — это скорость, с которой умножения выполняются алгоритмом, обозначенным как , а константа PFA, , извлекается эмпирическим путем из прошлых конструкций умножителей и, как показано, составляет около 15 fW/bit2-Hz для технологии 1,2 мкм при 5 В. Результирующая модель мощности для умножителя на основе приведенных выше предположений:
Преимущества:
Слабость:
Ошибка оценки (относительно симуляции на уровне переключателя) для умножителя 16x16 экспериментально проверена, и было замечено, что когда динамический диапазон входов не полностью занимает длину слова умножителя, модель UWN становится крайне неточной. [6] Конечно, хорошие разработчики пытаются максимально использовать длину слова. Тем не менее, ошибки в диапазоне 50-100% не являются редкостью. Рисунок явно указывает на недостаток в модели UWN.