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

 
 
 
Reply to this topicStart new topic
> помогите подкорректирвоать тестбенч, иммитация авалон read
sawyer0
сообщение Apr 24 2017, 12:42
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 1-03-17
Из: РФ
Пользователь №: 95 661



добрый день,

помогите описать поведение сигнала readdatavalid, чтобы было как на картинке (не сплошной, а 'рваный' и случайный).

я сделал, так чтобы он был без разрывов, подряд. как теперь исправить, на псевдослучпайное поведение?
Код
initial
begin
    forever begin
        @(posedge clk);
        
        waitrequest = 1;
        readdatavalid = 0;
        
        wait(read);
        
        // Keep 'waitrequest' HIGH for [1..3] cycles
        for (int I=0; I<$urandom_range(3,1); I++) begin
            @(posedge clk);
        end
        waitrequest = 0;
        
        wait(~read);
        waitrequest = 1;
        
        // Wait some time ([0..5] cycles) after 'read' goes LOW
        for (int I=0; I<$urandom_range(5,0); I++) begin
            @(posedge clk);
        end
        
        // send data + valid
        for (int I=0; I<burstcount; I++) begin
            readdatavalid = 1;
            readdata = $urandom_range(10,1);
            @(posedge clk);
            readdatavalid = 0;
        end
    
    end
end






спасибо.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 24 2017, 15:10
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 3 506
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sawyer0 @ Apr 24 2017, 15:42) *
добрый день,

помогите описать поведение сигнала readdatavalid, чтобы было как на картинке (не сплошной, а 'рваный' и случайный).

я сделал, так чтобы он был без разрывов, подряд. как теперь исправить, на псевдослучпайное поведение?

Сделайте task, к нему набор входных величин или параметров. И передавайте в таск случайные значения нужных вам параметров..



--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Fitc
сообщение Apr 24 2017, 18:21
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 21-10-11
Пользователь №: 67 894



Цитата(sawyer0 @ Apr 24 2017, 15:42) *
помогите описать поведение сигнала readdatavalid, чтобы было как на картинке (не сплошной, а 'рваный' и случайный).

я сделал, так чтобы он был без разрывов, подряд. как теперь исправить, на псевдослучпайное поведение?

Если используете $urandom_range, значит пишете на SystemVerilog. $urandom_range не лучший вариант генерации псевдослучайных воздействий в SystemVerilog из-за равномерного распределения. Лучше использовать классы со случайными переменными и констрейнтами (см.стандарт или SystemVerilog for Veriifcation).
Но на начальных этапах можете и $urandom_range использовать. Что мешает присвоить сигналу readdatavalid результат $urandom_range(1,0)?
Go to the top of the page
 
+Quote Post
sawyer0
сообщение Apr 24 2017, 18:51
Сообщение #4





Группа: Новичок
Сообщений: 2
Регистрация: 1-03-17
Из: РФ
Пользователь №: 95 661



Цитата(Fitc @ Apr 24 2017, 19:21) *
Что мешает присвоить сигналу readdatavalid результат $urandom_range(1,0)?

спасибо. получил, что хотел.

Код
        for (int I=burstcount; I>0;) begin
            readdatavalid = $urandom_range(1,0);
            readdata = $urandom_range(2**16-1,1);
              
            if (readdatavalid)
                I--;
            
            @(posedge clk);
        end
        readdatavalid = 0;


Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 24 2017, 20:56
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 3 506
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(iosifk @ Apr 24 2017, 18:10) *
Сделайте task, к нему набор входных величин или параметров. И передавайте в таск случайные значения нужных вам параметров..

И добавлю. Я бы все эти рандомные величины читал бы из файла. Потому как при перезапуске теста не надо делать компиляцию проекта. И при одинаковых наборах можно будет сравнивать диаграммы сигналов...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Alexxxxey
сообщение Apr 25 2017, 15:25
Сообщение #6





Группа: Участник
Сообщений: 12
Регистрация: 21-09-13
Из: Санкт-Петербург
Пользователь №: 78 418



Ecли вы тестируете свой компонент с авалон интерфейсом, можете посмотреть avalon verification ip suite, там есть функциональные модели для мастера и слейва.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th May 2017 - 17:48
Рейтинг@Mail.ru


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