Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PMU.doc
Скачиваний:
23
Добавлен:
19.12.2018
Размер:
817.66 Кб
Скачать

Основы языка Verilog-a

Иерархия системы.

Все блоки системы описываются как модули, включая и головной блок системы. Структурное описание системы включает список модулей с указанием списка узлов, к которым подключен каждый модуль. Описание модуля включает и имя представления модуля в данной схеме. Например, один и тот же блок может быть описан несколько раз с разной степенью деталировки на транзисторном или поведенческом уровне.

channel c1 (count, cin)

имя модуля

представление

узлы

Возможны следующие уровни описания модулей:

– структурный (транзисторный);

– функциональный (примитивный);

– смешанный структурно-функциональный;

– поведенческий

В качестве структурного описания блока на транзисторном уровне может быть использовано описание схемы на входном языке симулятора SPICE.

Структура модуля в языке Verilog-A.

Пример № 1. Модуль структурный

module modem (dout, din);

inout dout, din;

еlectrical dout, din;

parameter real fc=100.0 eG;

electrical clk, cin, cout;

gam_mod # (.carrier_freg(fc)) mod (cin,din,clk);

channel c1 (cout,cin);

gam_demod # (.carrier_freg(fc)) demod (dout,cout,clk);

endmodule

– Имя модуля со списком портов.

– Назначение портов.

– Назначение дисциплины с указанием портов.

– Назначение параметров.

– Назначение внутренних узлов.

– Список входящих модулей.

– Конец описания.

Описание любого блока начинается со слова module и заканчивается словом endmodule. Строки описания заканчиваются символом (;). Процедурные операторы знаками препинания не выделяются.

Пример 2. Модуль сигнальный

module sah (out,in,clk);

output out;

input in,clk;

electrical out,in,clk;

real state=0;

analog begin

@ (cross (V (clk)-2.5+1.0));

begin

state=V (in);

end

V (out)<+transition (state,1m,0.1u);

end

end module

– Имя модуля со списком портов.

– Назначение портов отдельно выходов и входов.

– Назначение портов определяет тип системы консервативной или сигнальной.

– Назначение дисциплины с указанием портов.

– Назначение параметров.

– Начало аналоговых операций, если оператор только один, то можно использовать одно слово "analog".

– Аналоговые операторы.

– end – конец аналоговых операций.

– Команда не нужна, если использовать слово "analog" и только один оператор.

– Конец описания модуля.

Модули могут быть смешанными с расшифровкой внутренней структуры, назначением внутренних переменных и поведенческим описанием взаимодействия модулей через внутренние переменные и аналоговые операторы.

Аналоговые операторы.

– Оператор присвоения (<+) действует только на напряжения узлов и токи ветвей. Последовательное использование нескольких операторов приводит к суммированию результата. Например, ток ветви P1, P2 равен сумме токов ветвей P0, P1 и PP, P1

I (P1,P2) <+ (P0,P1)/R1;

I (P1,P2) <+ (PP,P1)/R2.

– Процедурные операторы:

“analog” или пара analog begin

end

определяют зону действия аналоговых операторов.

– Оператор условных переходов:

if (условие)

оператор №1

else

оператор №2

при выполнении условия выполняется оператор № 1, если наоборот, то оператор № 2.

Несколько аналоговых операторов можно объединить в группу парой команд:

begin

end

– Тернарный оператор (условие), (оператор № 1): (оператор № 2); краткая запись оператора условных переходов.

– Оператор дифференцирования по времени ddt (x(t))

V(out) <+ scale* ddt (V(in)).

– Оператор интегрирования по времени idt (x(t)+x0)

V(out) <+ scale* idt (V(in),start).

– Оператор задержки delay (x(t), tздр)

V(out) <+ delay (V(in),50n).

– Оператор переключения transition (параметр, tздр, tфр, tср)

V(out) <+ transition (V(in),2n,5n,5n).

– Оператор сглаживания slew (параметр, скорость роста, скорость спада);

– Оператор ограничивает максимальные скорости роста и спада сигнала

V(out) <+ slew (V(in),5e8,-5e8).

– Преобразование Лапласа- частотный фильтр

V(out) <+ laplace_np (V(in),).

Есть четыре формы записи оператора zp, zd, np, nd;

список параметров в соответствии с инструкцией.

– Оператор дискретизации также имеет 4 формы: zp,zd,np,nd.

V(out) <+ zi_nd (V(in),, , 10n).

– Оператор пересечения @ cross (параметр, направление)

@ cross (V(in),+1.0)

begin

(аналоговые операторы)

end

– Таймер-@ timer (старт, период)

@ timer (1n,10n)

begin

V(out) <+ V(out)+0.1;

end

– Оператор непрямого присвоения (: = =)

(изменяемый параметр) : (условие равенства)

Запись для схемы операционного усилителя с цепью отрицательной обратной связи

V(out) : V(in1,in2) = = 0.0

Синусоидальный генератор V(x) = sin(w·t)

begin

if (analysis(“dc”))

V(dx) <+ W;

else

V(dx) <+ ddt(V(x));

V(x) : ddt (V(dx)) = = – W*W* V(x);

end

– Оператор итераций для известного целого числа раз

repeat (условие повторения);

(операторы)

пример: repeat (11);

– Оператор итераций для достижения цели

while (условие)

пример: while (V(out)>1.0);

Математические функции

– Сложение (+) x + y

– Вычитание (-) x – y

– Умножение (*) x * y

– Деление (/) x / y

– Абсолютное значение (abs(x)) abs (x)

– Синус, косинус sin(x), cos(x) sin (x), cos(x) и другие тригонометрические функции имеют обычную математическую запись.

– Логарифмы ln(x), log(x), ln (x), log (x)

– Степень xy – pow(x,y)

– Корень sqrt(x), sqrt (x)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]