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