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

 
 
> SV testbench, как в initial описать синхронные воздейтсвия
dcs
сообщение Apr 1 2018, 10:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 1-07-13
Из: СПб
Пользователь №: 77 337



здравствуйте,

хотел сделать 2 эквивалентных куска генерации входных воздействий на фифо.

Код
initial
begin        
    fork
        /////////////////////////////////////////////////////////////////////////
        pulse_gen:
        begin
            forever
            begin
                randcase
                    1: rand_pulse = 1;
                    5: rand_pulse = 0;
                endcase
                @(posedge aclk);
            end
        end
        /////////////////////////////////////////////////////////////////////////
        push_data:
        begin
            wait(aresetn_done);
            
            forever
            begin
                s_axis_tlast  = 0;
                s_axis_tuser  = 0;
                
                if (s_axis_tready == 1) // FIFO ready to receive data
                begin
                    s_axis_tvalid = rand_pulse;
                    if (rand_pulse)
                        s_axis_tdata  = $urandom_range(255,0);                    
                    
                    @(posedge aclk);
                end
                else
                begin
                    s_axis_tdata = 0;
                    
                    @(posedge aclk);
                end
            end
        end
        /////////////////////////////////////////////////////////////////////////
    join_none
end


и

Код
always_ff @(posedge aclk)
begin
    if (aresetn == 1'b0)
    begin
        s_axis_tvalid <= 0;
        s_axis_tdata <= 0;
    end
    else
    begin
        s_axis_tvalid <= s_axis_tready & rand_pulse;
        if (s_axis_tready & rand_pulse)        
            s_axis_tdata <= $urandom_range(255,0);
    end
end


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

в первом случае работает неверно (пропускается первый байт в пачке), во втором - все хорошо.




подскажите в чем проблема и как исправить?



спасибо.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:41
Рейтинг@Mail.ru


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