目录
本文所述的内容均以使用Xilinx器件为前提,不需要进行修改,或者做出少量修改就可以在Altera器件上应用。
RAM的例化
我常使用的例化方法主要有三种。
- 使用IP Catalog例化
- 通过代码让编译器推断出RAM
- 调用原语
上述方法各有优缺点。
IP Catalog的方法容易上手,但是修改起来很是繁琐,需要重新customize,重新OOC综合......,而且不能实现参数化;通过特定代码风格使编译器推断出RAM的方式更为灵活,也可以实现参数化,而且只要设计者对Xilinx的一些约束足够熟悉(比如RAM_STYLE、ROM_STYLE)也可以达到其他方式一样的效果,同时只有这种实现方法可以实现代码在不同厂商间兼容,只是该方法对设计者要求高,尤其是一些复杂应用,如非对称RAM;调用原语的好处是使用灵活,修改方便,可参数化。
个人认为,如果不是为了厂商间兼容,使用原语(即XPM)是更好的实现方式。
通过代码让编译器推断出RAM时,可以参考ug901的RAM HDL Coding Techniques章节。如果使用XPM则可以参考ug974。
RAM的初始化
IP Catalog例化的RAM的初始化
这种情况下都是通过COE文件进行初始化。在IP生成向导中有步骤让使用者指定所需要的COE文件,当然文件内容需要使用者编辑。COE文件具体格式通过直接搜索“COE File Syntax”就可以找到,不同内容的COE文件的格式略有区别,大致都是下面的样子。
******************************************************************
******** Example of Single Port Block Memory .COE file *********
************************************************

3607

被折叠的 条评论
为什么被折叠?



