大神,如何用xilinx生成程序大小的IP核生成同步写入,异步读取的RAM

xilinx生成程序大小是按照如下公式给絀输出位宽的:

如果输入信号是周期的可以通过仿真来看输入信号通过滤波器得到的最大值占多少位。

总之就是通过预测输出最大值來确定的。

今天在将SRIO的数据存入FIFO后然后把FIFOΦ的数据不断送入FFT进行运算时,对于几个控制信号总产生问题所以单独对FIFO进行了仿真。原来感觉FIFO的几个参数端口一目了然啊还需要什麼深入了解吗,在实验发生问题才知道当时的想法多么幼稚啊

下面对xilixn FIFO核进行下简单说明,配上仿真时序图和源代码描述的还是比较清晰的。希望对和我一样刚接触FPGA不久的同学能有一点点帮助^_^

这是我想当然的仿真结果:这里可以看到数据1丢失了第一个读出的数据是2。再看图1的data_count这里先说下data_count的含义,当前时钟进行写操作则下一时钟data_count加1,当前时钟进行读操作则下一时钟data_count减1。因此由图隐约可以知道为什么數据1丢失了


查看了下XILIXN FIFO的官方文档,说在进行写复位后要延迟3个时钟周期才能进行写操作。因此我在写复位以后通过count引入了3个时钟的延迟,如下图发现数据没有发生的丢失的情况了。


FIFO核非常好用在读操作的时候,我们可以通过data_count来知道还有多少个数据将要读出这对於后面的FFT参数控制很关键。当我加上FFT模块时又出问题了,上面写复位的FULL高电平对信号的控制产生了的影响即数据并没有传入FIFO,FULL就已经拉高了重新回到FIFO文档,看到了答案FULL FLAGS RESET VALUE OF 0在选了这个选项后,异步写复位将用最少的时间来完成话不多说看仿真图一目了然。

我要回帖

更多关于 xilinx生成程序大小 的文章

 

随机推荐