Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dsd1-10 / dsd-07=Verilog / Rukovodstvo_po_Verilog.pdf
Скачиваний:
120
Добавлен:
05.06.2015
Размер:
284.57 Кб
Скачать

Маршрут проектирования БИС

Пример и моделирование вентильного описания

После того, как было получено вентильное описание схемы (например, после использования синтезатора 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

// Имя библиотеки, где находится проект
// Имя библиотеки, где находится CTLF // Имя головного модуля проекта
// Файловый путь к библиотекам, используемым выше
// Вид представления головного модуля проекта
// Все 3 типа расчетов: лучший, типовой, худший

Маршрут проектирования БИС

расчете можно задать некоторые ограничения (например, максимальный фронт) и определить, где эти ограничения нарушены. Пример файла 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

Соседние файлы в папке dsd-07=Verilog