
- •Введение
- •Моделирование поведенческого Verilog-описания
- •Пример и моделирование вентильного описания
- •Создание прогнозного SDF файла в системе “Cadence”
- •Моделирование вентильного описания с файлом задержек, сравнение результатов.
- •Пример описания модуля по подготовке файла с результатами моделирования.

Маршрут проектирования БИС
Пример и моделирование вентильного описания
После того, как было получено вентильное описание схемы (например, после использования синтезатора Synergy), необходимо проверить его на соответствие техническому заданию. Это обусловлено тем, что синтезаторы используют оптимизацию и возможно появление ошибок, например, из-за гонок сигналов, или несоответствие по частотным параметрам. Ниже приведен пример описания вентильной схемы счетчика, поведенческое описание которого приведено в предыдущей главе. Префикс “_syn” задан специально для удобства в дальнейшем.
module count5_syn(q, data, load, clock, enable, reset); // файл counter_syn.v
output [5:1] q; |
|
|
input [5:1] data; |
|
|
input load; |
input clock; |
input enable; |
input reset; wire [4:0] q_9;
ND02D1 i_27(.ZN(n_30), .A2(load), .A1(data[4]));
XO02D1 i_10(.Z(n_29), .A2(n_40), .A1(q[4]));
ND02D1 i_23(.ZN(n_25), .A2(load), .A1(data[3]));
XN02D1 i_11(.ZN(n_24), .A2(n_39), .A1(q[3]));
ND02D1 i_19(.ZN(n_20), .A2(load), .A1(data[2]));
XO02D1 i_12(.Z(n_19), .A2(n_42), .A1(q[2]));
ND02D1 i_15(.ZN(n_15), .A2(load), .A1(data[1]));
XN02D1 i_13(.ZN(n_14), .A2(q[1]), .A1(enable));
XN02D1 i_9(.ZN(n_34), .A2(n_41), .A1(q[5]));
ND02D1 i_31(.ZN(n_35), .A2(load), .A1(data[5]));
AN03D1 i_5(.Z(n_39), .A3(q[2]), .A2(enable), .A1(q[1]));
ND02D1 i_6(.ZN(n_40), .A2(q[3]), .A1(n_39));
FN05D1 i_8(.ZN(n_41), .B1(n_40), .A1(q[4]));
ND02D1 i_7(.ZN(n_42), .A2(q[1]), .A1(enable));
DFCTNB q_reg_1(.Q(q[1]), .D(q_9[0]), .CP(clock), .CDN(reset));
OA04D1 i_00(.ZN(q_9[4]), .B(n_35), .A2(load), .A1(n_34));
DFCTNB q_reg_2(.Q(q[2]), .D(q_9[1]), .CP(clock), .CDN(reset));
OA04D1 i_1(.ZN(q_9[3]), .B(n_30), .A2(load), .A1(n_29));
DFCTNB q_reg_3(.Q(q[3]), .D(q_9[2]), .CP(clock), .CDN(reset));
OA04D1 i_2(.ZN(q_9[2]), .B(n_25), .A2(load), .A1(n_24));
DFCTNB q_reg_4(.Q(q[4]), .D(q_9[3]), .CP(clock), .CDN(reset));
OA04D1 i_3(.ZN(q_9[1]), .B(n_20), .A2(load), .A1(n_19));
DFCTNB q_reg_5(.Q(q[5]), .D(q_9[4]), .CP(clock), .CDN(reset));
OA04D1 i_4(.ZN(q_9[0]), .B(n_15), .A2(load), .A1(n_14));
endmodule
7
Маршрут проектирования БИС
Моделирование выполняется аналогично моделированию на поведенческом уровне c использованием того же файла оснастки tests.v. Кроме этого необходимо указать библиотеку описания функций вентилей, например, Lib.v.
verilog.exe counter_syn.v tests.v –v Lib.v
Можно просмотреть, как и при моделировании на поведенческом уровне, графические окна выдачи. Это моделирование с учетом собственных задержек элементов, без учета нагруженности выходов.
8
Маршрут проектирования БИС
Создание прогнозного SDF файла в системе “Cadence”
Если есть вентильное описание схемы (список цепей), то можно получить файл задержек в формате SDF (standard delay format), предназначенный для уточненного моделирования схемы с учетом задержек на вентилях. Этот SDF-файл необходим для проверки работоспособности схемы перед относительно трудоемким этапом проектирования топологии, поскольку здесь также могут быть выявлены ошибки. SDF файл содержит вычисленные путевые задержки с достаточно большой точностью, поскольку при его расчете используется скомпилированный CTLF файл (Timing Library Format), описывающий модели задержек на вентилях в зависимости от входных фронтов и емкостных нагрузок вентилей, а также некоторые параметры вентилей, необходимые для получения SDF файла. CTLF файл является составной частью библиотеки, в базисе которой осуществлен синтез схемы. Он формируется разработчиком библиотеки посредством расчета с помощью программ схемотехнического анализа, например, Spice.
Обязательные вычисляемые задержки в SDF файле – это задержки, обусловленные нагрузкой выхода каждого вентиля и входным фронтом сигнала. На выходе вентиля вычисляется фронт, который в дальнейшем используется в качестве входного для следующего вентиля. Вычисляемые задержки – задержки по двум фронтам из 0 в 1 и из1 в 0. Более подробное описание форматов представлено в соответствующих документах “Timing Library Format Reference” и “Standard Delay Annotator”, входящих в штатную документацию по САПР СБИС “Cadence”..
Необязательные вычисляемые задержки в SDF файле – это дополнительные задержки, которые могут формироваться с использованием прогнозных коэффициентов-зависимостей, например, зависимость количества входов, нагруженных на источник (wire model), размеров элементов и др. Эти коэффициенты вычисляются по некоторой статистике проектов или блоков и содержатся CTLF файле библиотеки.
SDF файл для проведения моделирования схемы до получения ее топологии (т.е. без учета влияния топологии соединительных проводников) может быть получен, например, с помощью программы Standard Delay Calculator. Ниже приведен список процедур для создания SDF-файла.
1. Трансляция файла списка цепей в базу данных “Cadence”, создание вида schematic
a) Войти в оболочку системы “Cadence” , выполнив команду
icfb&
b)Создать библиотеку проекта, для этого:
i)из оболочки запустить Library Manager.
ii)В его окне выбрать пункт меню File –> New –> Library….
9

Маршрут проектирования БИС
iii)В окне New Library указать имя создаваемой библиотеки и выбрать
ееместоположение в файловой системе. Затем нажать “OK”.
iv) В окне Technology File for New Library указать способ подключения технологического файла к создаваемой библиотеке. Технологический файл библиотеки можно скомпилировать из текстового его представления, выбрав Compile a new techfile и в последующем окне введя имя текстового файла, его содержащего, либо выбрав Attach to an existing techfile и в последующем окне выбрав библиотеку, к технологическому файлу которой происходит подключение. Если в создаваемой библиотеке работа с топологией не предполагается, а будет проводиться только схемотехническое моделирование, то от технологического файла можно вообще отказаться (Don’t need a techfile). В дальнейшем, при необходимости, в эту библиотеку можно будет добавить технологический файл, скомпилированный из текстового его представления, либо подключить библиотеку к другой, у которой технологический файл имеется. В качестве такой библиотеки рекомендуется использовать технологический файл библиотеки, в базисе которой реализуется данный проект (далее по тексту – базовая библиотека).
10

Маршрут проектирования БИС
c) Из головного окна “Cadence” выполнить программу VerilogIn. Для этого надо вызвать форму по пункту меню File->Import->Verilog… , в которой заполнить поля:
♦Target Library Name – имя библиотеки куда транслируется список цепей
♦Reference Libraries – список библиотек откуда брать символы выводов и примитивов. Здесь должна быть базовая библиотека.
♦В поле Verilog Design Files (исходные файлы) наберем имя файла например, counter_syn.v.
♦В поле Verilog Options наберем имя файл описания библиотеки примитивов, например Lib.v.
Далее нажать в форме кнопку “OK”.
Общий вид формы приведен ниже:
11

Маршрут проектирования БИС
2. Подготовить файл для запуска программы Standard Delay Calculator. Для этого в текущем рабочем каталоге должен быть файл dlc.init. В общем случае в SDF файле расчет приведен для трех условий – минимальный (наилучший процесс), типовой (типовой процесс) и максимальный (наихудший процесс). При
12
Маршрут проектирования БИС
расчете можно задать некоторые ограничения (например, максимальный фронт) и определить, где эти ограничения нарушены. Пример файла dlc.init приведен ниже. Справа от комментариев “// “ даны основные пояснения.
LIBRARY_NAME "TEST_M"
TIMING_LIBRARY "TEST_M"
CELL_NAME "count5"
LIBRARY_PATH "/users/test"
VIEW_NAME "schematic"
SWITCH_LIST "schematic"
LEVEL 1
MODE "ALL"
REPORT_VERBOSE
REPORT_INTRINSIC_IO
DEFAULT_RISETIME (0.1 0.1 0.1) // Входные фронты на внешние выводы из 0 в 1 DEFAULT_FALLTIME (0.1 0.1 0.1) // Входные фронты на внешние выводы из 1 в 0 WARN_RF_TIME 0.3
ERROR_RF_TIME 0.5 // Ошибка , если превышена длительность фронтов > 0.5 WARN_OUT_LOAD 0.1
ERROR_OUT_LOAD 0.2
TEMPERATURE (-60 27 85)
PROC_VAR (0.74 1 1.36) // Коэффициенты процессов: лучший, типовой, худший
VOLTAGE (5.5 5.0 4.5) |
|
SDF_File "count5_.sdf" |
// Имя SDF-файла |
SDF_IcPrecision 4 |
// Точность выдачи (печати) в SDF файл. |
3.Запустить программу формирования SDF-файла по команде: dlc > dlc.log
В файле dlc.log будет сохранена вся информация по ошибкам и предупреждениям, имевшим место в процессе работы программы.
13