Разработка светодиодных систем отображения информации

Системы передачи по волоконно-оптическим линиям связи

 

Светодиодные экраны

Бегущие строки

НПП “Цифровые решения”

Контрактная разработка радиоэлектронных устройств

Цифровая обработка сигналов и изображений

Поставка высокотехнологичных изделий

 

ПЛИС фирмы Altera: проектирование устройств обработки сигналов.

Стешенко В.Б.

 

Глава 5. Язык описания аппаратуры Verilog HDL

5.19. Системные директивы (System Tasks)

Наверное, этот раздел не будет интересен тем, кто пишет только синтезируемые описания на Verilog. Но поскольку язык является не только средством описания проекта, но и довольно мощным инструментом для поведенческого моделирования систем, то следует сказать несколько слов о встроенных директивах компилятора, позволяющих выполнить моделирование и произвести анализ его результатов.

5.19.1. Директивы вывода результатов моделирования (Writing to Standart Output)

Ключевые слова: $display, $displayb, $displayh, $displayo, $write, $writeb, $writeh, $writeo.

Наиболее часто применяется директива $display. Она может быть использована для вывода на экран строк, выражений или переменных. Ниже приведен пример использования директивы $display

$display("Hello Dr Blair");

--- output: Hello Dr Blair

 

$display($time) // current simulation time.

--- output: 460

 

counter = 4'b10;

$display(" The count is %b", counter);

--- output: The count is 0010

 

Синтакс определения формата вывода аналогичен синтаксису printf в языке программирования C. Ниже приведено его описание для директивы $display

 

Формат

Описание

%d or %D

%b or %B

%h or %H

%o or %O

%m or %M

%t or %T

%e or %E

%f or %F

%g or %G

Decimal

Binary

Hexadecimal

Octal

Hierarchical name

Time format

Real in scientific format

Real in decimal formal

Real in shorter of above two

Для специальных символов используются следующие эскейп-последовательности (escape sequence)

 

\n

\t

\\

\"

%%

Новая строка

табуляция

\

"

%

 

Директива $write идентична директиве $display, за исключением того, что она не осуществляет автоматический переход на новую строку в конце вывода информации

Если спецификация вывода не определена, то по умолчанию используются следующие форматы 

Директива

Формат по умолчанию

$display

$displayb

$displayh

$displayo

$write

$writeb

$writeh

$writeo

decimal

binary

hexadecimal

octal

decimal

binary

hexadecimal

octal

 

Так, например, следующий фрагмент кода …

 

$write(5'b01101);

$writeb(" ", 5'b01101);

$writeh(" ", 5'b01101);

$writeo(" ", 5'b01101,"\n");

 

… И результат его работы

 

01101 0d 15

5.19.2. Контроль процесса моделирования (Monitoring a Simulation)

Ключевые слова: $monitor, $monitoron, $monitoroff

Формат директивы $monitor практически аналогичен формату $display. Разница заключается в том, что выход формируется при любом изменении переменных, которое произойдет в оперделенное время . Наблюдение может быть включено или отключено с помощью директив $monitoron или $monitoroff соответственно. По умолчанию в начале моделирования наблюдение за его ходом включено. Ниже приведен пример наюлюдения за моделированием.

 

module myTest;

integer a,b;

 

initial begin

a = 2;

b = 4;

forever begin

#5 a = a + b;

#5 b = a - 1;

end // forever begin

end // initial begin

 

initial #40 $finish;

 

initial begin

$monitor($time, " a = %d, b = %d", a, b);

end // initial begin

 

endmodule // myTest

Результат прогона

0 a = 2, b = 4

5 a = 6, b = 4

10 a = 6, b = 5

15 a = 11, b = 5

20 a = 11, b = 10

25 a = 21, b = 10

30 a = 21, b = 20

35 a = 41, b = 20

5.19.3. Окончание моделирования (Ending a simulation)

Ключевые слова: $stop, $finish.

Директива $finish завершает симуляцию и передает управление операционной системе. Директива. $stop приостанавливает моделирование и переводит систему с Verilog в интерактивный режим (см. пример ниже).

initial begin

clock = 1'b0;

#200 $stop

#500 $finish End

 

- Наверх -

 

Координаты:

   г. Москва, пр. Мира, 102

Для писем:

   105066, Россия, г. Москва, а/я 18

Тел.: (495) 778-97-04

e-mail: mail@dsol.ru, info@dsol.ru

 

© НПП “Цифровые решения” 2003 — 2006

Разработка светодиодных экранов | Разработка бегущих строк | Проектирование ПЛИС и СБИС | Разработка законченных устройств и модулей | Синтез алгоритмов |

Rambler's Top100 Rambler's Top100