Побитови оператори

Ключови символи:

Побитовите оператори включват побитово отрицание, побитово логично И, ИЛИ, изключително или изключително ИЛИ НЕ. Побитовите оператори се изпълняват само върху операнди, които имат еднаква битова ширина. В случай, че капацитетът на единия операнд е по-малък от другия, липсващите битове се допълват с нули. По-долу е даден пример за използване на битови оператори.

a = 4'b1100; b = 4'b0011; c = 4'b0101;

а); // побитово отрицание, изчислява на 4'b0011

$ displayb (a & c); // побитово и, оценява на 4'b0100

$ displayb (a | b); // побитово или, изчислява на 4'b1111

$ displayb (b ^ c); // битово xor, оценява на 4'b0110

^ в); // побитово xnor, оценява на 4'b0110

3.4.15. Оператори за отливане (Оператор за намаляване)

Ключови символи: &,

Кастинг оператори - И, ИЛИ, И-НЕ, ИЛИ-НЕ, изключителни или изключителни, ИЛИ-НЕ (две опции). Те се изпълняват в многобитовия операнд стъпка по стъпка, бит по бит, започвайки с двете най-леви цифри, като се получава еднобитов резултат на изхода. Очевидно този подход ви позволява да приложите проверка за паритет (нечетна). По-долу има примери за използване на гласови оператори.

$ displayb (& a); //, (същите 1 & 1 & 1 & 1), е равно на 1 1

$ displayb (| b); // (същото като 0 | 1 | 0 | 1), изчислява на 1 $ displayb (^ b); // изключва ИЛИ (същото като 0 ^ 1 ^ 0 ^ 1), изчислява на 0

Разбира се, трябва да уловите разграничението между логически оператори, битови оператори и оператори за гласове. Въпреки сходството на символите на тези оператори, броят на операндите във всеки отделен случай е различен.

Оператори за смяна.

Ключови символи: >>,> 2); // изместване надясно с 2, оценява на 4'b0010

Този оператор често се използва за внедряване на регистри за смяна, алгоритми за дълго умножение и т.н.

Конкатенация (съюз, конкатенация)

Ключов символ:

Комбинирането ви позволява да увеличите битовата ширина (размер) на мрежи, регистри и др.

$ displayb (); // произвежда 3-битово число 3'b100

$ displayb (); // произвежда 4-битов номер 4'b1011

Репликация

Репликацията може да се използва за повторение на конкатенацията няколко пъти, както е показано в следващия пример.

$ displayb (c); // резултат -001111

Системни директиви (системни задачи)

Вероятно този раздел няма да представлява интерес за тези, които пишат само синтезирани описания в Verilog. Но тъй като езикът е не само средство за описание на проект, но и доста мощен инструмент за поведенческо моделиране на системи, трябва да се кажат няколко думи за вградените директиви на компилатора, които ви позволяват да извършвате моделиране и да анализирате резултатите от него.

Директиви за симулационния изход (запис в стандартен изход)

Ключови думи: $ display, $ displayb, $ displayh, $ displayo, $ write, $ writeb, $ writeh, $ writeo.

Най-често използваната директива е $ display. Може да се използва за показване на низове, изрази или променливи. По-долу е даден пример за използване на директивата $ display

$ дисплей ("Здравейте д-р Блеър");

--- изход: Здравейте д-р Блеър

$ display ($ time) // текущо време за симулация.

$ display ("Броят е% b", брояч);

--- изход: Броят е 0010

Синтаксисът за определяне на изходния формат е подобен на синтаксиса за printf в езика за програмиране C. По-долу е описанието му за директивата $ дисплей

Следните изходни последователности се използват за специални символи

Директивата $ write е идентична с директивата $ display, с изключение на това, че тя не се разклонява автоматично към нов ред в края на изхода.

Ако не е посочена изходна спецификация, следните формати се използват по подразбиране