求助:如何约束一个数据的位宽
时间:10-02
整理:3721RD
点击:
各位:
目前在写axi_transfer,本来是想以AXI_DATA_WIDTH来定data的位宽的,但是,如果遇上narrow transfer,那么data的位宽就没那么多了,所以我想以burst的size来约束data的位宽,但是,实在想不到该怎么做呀?
目前在写axi_transfer,本来是想以AXI_DATA_WIDTH来定data的位宽的,但是,如果遇上narrow transfer,那么data的位宽就没那么多了,所以我想以burst的size来约束data的位宽,但是,实在想不到该怎么做呀?
动态数组或者队列应该可以办到吧
能更详细一点么,因为我在transfer中定义的data本身就是一个动态数组,它的size是由burst的length来决定的。
哦,这样
axi里面的data的宽度都是以字节byte为基数的,
你可以先定义
rand bit [7:0] data[];
rand unsigned int width;
rand unsigned int burst;
constraint c0 {width inside {1, 2, 4, 8, ...;}
constraint c1 {burst inside {1, 2, 4, 8, 16, ...;}
constraint c2 {data.size() == width * burst;}
constraint c3 {solve width before data.size();
solve burst before data,size();}
大概是这样了,我也是初学者,欢迎交流