реклама на сайте
подробности

 
 
> Оператор disable в Verilog-е
Jackov
сообщение Jun 9 2018, 09:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



В Verilog-е есть оператор disable, это в некотором роде аналог оператора continue из языка Си.
Убедиться в этом можно на простом примере:
Код
`timescale 1ns/1ps
module Test();
    integer i, j;
    always
        for(i = 0; i < 8; i = i + 1)
        begin
            for(j = 0; j < 8; j = j + 1)
            begin: _j
                if(j == 5) disable _j;
                #10;
            end
        end
endmodule

Видим, что переменная j в состоянии 5 задержку в 10 единиц не имеет, т.е. #10 не выполнилась, началась новая итерация цикла:
Прикрепленное изображение


Но мне, в тестбенче, нужно не начинать новую итерацию цикла, а нужно цикл завершить, нужен эквивалент оператора break. Искал - не нашёл. Стал думать, додумался до такого:

Код
    always
        for(i = 0; i < 8; i = i + 1)
        begin: _i
            for(j = 0; j < 8; j = j + 1)
            begin
                if(j == 5) disable _i;
                #10;
            end
        end

Прикрепленное изображение

Неужели, в самом деле, нет отдельного оператора для такой цели?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016