Вопросы по теме 'system-verilog-assertions'
SVA для рукопожатия
Я пытаюсь написать утверждение SVA для процедуры рукопожатия.
В своих поисках я обнаружил следующее:
property p_handshake(clk,req,ack);
@(posedge clk)
req |=> !req [*1:max] ##0 ack;
endproperty
assert...
1998 просмотров
schedule
13.09.2021
Утверждение для проверки сбоя в сигнале
Допустим, есть сигнал a . Когда сигнал становится высоким, он должен оставаться высоким как минимум в течение трех положительных фронтов тактовой частоты.
Мы можем записать свойство как
property p;
@(posedge clk) $rose(a) -> a[*3];...
4310 просмотров
schedule
21.12.2021
Последовательное тестирование и утверждения с помощью System-Verilog
У меня есть последовательный вывод модуля Verilog, который я хотел бы протестировать с помощью system-verilog.
Результат, названный 'SO', будет выводить что-то вроде 8'hC6 при правильном последовательном входе 'SI' со значением, скажем, 8'h9A....
1506 просмотров
schedule
18.02.2022
Последовательность systemverilog - хотите проверить значение данных при первом переходе vld в высокий уровень?
Это была моя первая наивная попытка. В основном vld может достигать максимума в любое время за 20 циклов. Но в первый раз, когда он становится высоким, data должно быть определенным значением, скажем 'h20 .
sequence correct_vld_and_data;...
92 просмотров
schedule
05.03.2022
рекомендовать способ записи монитора в UVM с разной полярностью событий
Я пытаюсь реализовать монитор для VDU (блок отображения видео), и способ программирования VDU говорит о том, что сигналы синхронизации имеют контролируемую полярность. Это означает, что в соответствии с настройками VDU монитор должен реагировать на...
56 просмотров
schedule
23.04.2022
Блокирует ли событие Verilog выполнение процедуры?
Блокирует ли управление событиями Verilog выполнение процедуры до тех пор, пока событие не произойдет? Рассмотрим пример ниже.
module test;
reg a;
initial begin
@(a) $display("%b", a);
$display("the_message");
end
endmodule...
58 просмотров
schedule
11.05.2022
SVA (утверждения SystemVerilog): разница между $ assertoff и $ assertkill?
В чем разница между $assertoff; и $assertkill; с утверждениями SystemVerilog?
Они оба, кажется, останавливают выполнение утверждений.
5559 просмотров
schedule
02.06.2022
Использование очередей в рекурсивных свойствах
У меня есть некоторые данные из 1-битного последовательного порта, которые кратны байтам разной длины как таковые:
byte expected_1 [$] = {8'hBA, 8'hDD, 8'hC0, 8'hDE};
byte expected_2 [$] = {8'h01, 8'h23, 8'h45, 8'h67, 8'h89, 8'hAB, 8'hCD, 8'hEF};...
894 просмотров
schedule
02.07.2022
Могу ли я получить доступ к отложенному значению в утверждении SystemVerilog
Я хочу использовать старое значение сигнала в утверждении SystemVerilog.
Это то, что я сейчас делаю
logic [ADDRESS_WIDTH-1:0] old_address [1:0];
always_ff@(posedge rdclock) begin
old_address[0] <= rdaddress;
old_address[1] <=...
175 просмотров
schedule
07.07.2022
Утверждение для действительного приходит один раз в транзакции req-ack
Я хочу написать утверждение, которое проверяет, что «Действительный должен быть высоким только один раз в транзакции req 1, ack 1, req 0, ack 0»
Я думал о следующем, но это дает мне ошибку.
assert property (@(posedge clk_r) req &...
138 просмотров
schedule
06.07.2022
[SVA]: Есть ли способ пропустить первую оценку SVA?
У меня есть следующее свойство:
property p_0;
$rose(signal_a) |-> $rose(signal_b) ;
endproperty
моя проблема в том, что после HW RST сигнал_b повышается (нормальное поведение), но утверждение не выполняется, и я хочу, чтобы эта проверка...
140 просмотров
schedule
12.08.2022
Утверждение не выполняется с , имя экземпляра не является допустимым значением rvalue [7.1 (IEEE)]
Мой код утверждения выглядит следующим образом:
property p_crossbar_halted_chk12;
@(posedge `SOG_REST_SCOPE.clk)
$rose(`SOG_REST_SCOPE.crossbar_halted)
|-> ##[0:1] $rose(`SOG_REST_SCOPE.last_cycle)
|->...
186 просмотров
schedule
05.10.2022
как написать утверждение для поведения асинхронного сброса
Давайте рассмотрим простой пример d-триггера с асинхронным сбросом.
q должен быть обновлен с помощью d на следующем фронте часов, это можно записать с помощью простого утверждения оператора импликации.
Однако как зафиксировать поведение сброса в...
2851 просмотров
schedule
13.12.2022
Утверждение Systemverilog для проверки неверного перехода сигнала
Я пытаюсь написать утверждение, которое будет срабатывать, только если сигнал переходит на передний фронт clk. Я написал ниже код, чтобы проверить свои идеи
module test();
bit clk, clkb;
int d;
assign clkb = ~clk;
initial begin
clk = 0;...
2912 просмотров
schedule
27.05.2023
Использование $ past в утверждениях System Verilog
Я хочу проверить, равно ли текущее значение переменной «1», тогда предыдущее значение переменной должно быть «0». Я использую $ past в утверждениях System Verilog. Здесь я проверяю, если cal_frame_mode = 1, то это предыдущее значение cal_frame_mode...
11887 просмотров
schedule
10.04.2023
Почему использование НЕ с подразумеваемым видом - плохая идея в SVA?
В утверждениях SystemVerilog (SVA) почему используется:
not (a |-> b)
плохая идея? Это связано с бессмысленным аспектом успеха (то есть, когда a не соответствует действительности)?
157 просмотров
schedule
02.02.2023
Как я могу использовать свойства последовательности SystemVerilog в утверждениях?
Я хочу сказать: «Если есть неограниченное количество входов, в конечном итоге я получу выход», как я могу это сделать?
В других частях сценария я хочу предположить ограниченное количество входных данных, поэтому я не могу просто написать...
229 просмотров
schedule
12.01.2023
Как проверить, не изменяется ли сигнал, используя Immediate Assertions в SystemVerilog Assertions
Я новичок в SystemVerilog Assertions и знаю, что могу проверить, не меняется ли сигнал между тактами часов, используя Concurrent Assertions:
assert property (@(posedge clk) enable == 0 |=> $stable(data));
Но как мне делать это постоянно,...
2791 просмотров
schedule
06.10.2023
как использовать assertoff из теста, чтобы отключить утверждение в стороннем объекте uvm
Я ищу способ отключить утверждение в боковом компоненте uvm для определенного теста. Ниже простой код представляет мою среду с комментариями по требованию. Я думал, что могу использовать $assertoff. Я могу модифицировать компонент uvm, если для...
11656 просмотров
schedule
19.08.2023
Как покрыть свойство fifo rd/wt?
Я пытаюсь написать точку прикрытия fiford rd write.
module M;
bit stop; bit clk; initial while (!stop) #5 clk = ~clk;
bit A, B, rst;
initial rst = 0;
initial begin
A = 0;
#20 A = 1;
#10 A = 0;
// #10 B = 1;
#10 B =...
77 просмотров
schedule
14.10.2022