一共设计中要用到四处数据宽度不同的fifo,想问例化后如何调用,在top实例引用时怎么设置宽度,希望能举例说下,谢谢。
没看懂问题,如果是创建的是IP,宽度深度已经固定,在模块中例化时也是固定的,如果说你硬要用一种位宽的FIFO,那么如上那种,将FIFO定义为最高位宽的,例化时,传入的数据位宽定义为自己的需要的位宽即可,FIFO会自动填到低位,高位补0,这时,读取FIFO只需要读取自己需要的几位即可。
个人建议将位宽设置为四个FIFO中数据位宽最大的那个变量的位宽,这样可以保证数据的不丢失,对应其它三个较小的数据根据误差要求进行位分配;
示意代码如下:
FIFO1: wire [n:0] a1; //FIFO1中对应的数据位宽为n+1;
FIFO2: wire [n-1:0] a2;
FIFO3: wire [n+2:0] a3;
FIFO4: wire [n+1:0] a4;
最终选取 a3 对应的数据位宽 即位宽为 n+3。