2015-02-02 4 views
1

Я хотел бы проверить, что шина стабильна в утверждении. Например, я ожидал бы, что следующее утверждение должно указывать на ошибку, если data изменится в часах после падения re.

wire clk, rst_n, re; 
wire [15:0] data; 

a_chk_stable_data: 
    assert property (@(posedge clk) disable iff(!rst_n) 
    ($fell(re) |=> $stable(data[15:0]))) 
    else begin 
    $display("ERROR: one or more bits of data not stable"); 
    end 

Я считаю, что $rose работает только на LSB автобуса (link). $stable работает только на LSB или поддерживает сигналы любой ширины?

ответ

3

Согласно the spec, $stable действует на все выражение. В то время как $rose и $fell работают с LSB выражения.

из раздела 16.9.3 из IEEE 1800-2012:

- $rose возвращает истину, если младший бит выражения изменяется на 1. В противном случае возвращается false.
- $fell возвращает true, если LSB выражения сменяется на 0. В противном случае возвращается false.
- $stable возвращает true, если значение выражения не изменилось. В противном случае возвращается false.
- $changed возвращает true, если значение выражения изменилось. В противном случае возвращается false.

+0

Спасибо за разъяснения! – Cody

 Смежные вопросы

  • Нет связанных вопросов^_^