微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > Systemverilog constraints (CRV)

Systemverilog constraints (CRV)

时间:10-02 整理:3721RD 点击:
我想random出16个memory region,
每个region使用start_addr 和end_addr 划分

怎样使用constraint 使16个region的addr范围没有重叠

假如你要求每个region要把所有的addr都遍历一遍:
1. 在0~15这个范围随机一次,先选出那个最开始的region(起始值最小的)
假如没有这个要求,跳过第一步;
2. 先是region1,先随2个值,一个是start_addr1, 一个是end_addr1:约束end_addr1要比start_addr1大
3.然后region2, 再随2个值,一个是start_addr2,一个end_addr2:约束start_addr2要比end_addr1大, end_addr2要比start_addr2大
4.循环下去,知道结束
这个方法的好处是思路清晰不容易错。你也可以照着这个思路先把关系理清楚,然后把他们揉到一起,只做一次约束。

一个randc实现了为什么要约束

直接在这个region内random出16个不同addr,从小到大排列,依次两个一组就是start_addr end_addr

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top