我是一个基于断言的验证新手试图了解它应该如何正确完成。我发现了很多关于systemverilog +断言的结构和技术细节的信息,但是我仍然没有找到一些关于真实世界中事情真正完成的“食谱”材料。上广电为连续数据输入假设/断言
的问题和制约因素:
- 设计具有数据输入总线与数据,有效和ID输入 通道 Ñ
- 一个数据 “包” 是3个样品
- 后总会有来自频道的数据n + 1
-
个
- 频道ID将包装后的最大ID已发送
- 可以有数据字节之间蜱任何数量clk的
下面是与信道ID的简单,希望正确的时序图:
那么,你如何用最少的代码做ammount的呢?不错,干净。以前我构建了虚拟verilog模块来驱动数据。但肯定可以使用一些假设财产只是限制渠道ID,但其他方面留下空闲的手为正式工具试图制动我的设计?
对于初学者简单模板可以是:
data_in : assume property (
<data with some ID>[=3]
|=>
<data with the next id after any clk tick>
);
我想问题是,假定/像上面断言倾向于触发每一个数据样本,并创建在时间上重叠的并行线程。
@MthetheTTaylor OP正在谈论形式验证。形式验证中的术语是,你对你的输入刺激进行假设,并且这些限制了它的合法状态空间。 –
@Tudor哦 - 就这样。我错过了。 –