Xilinx ISE生成rom/ram IP核

对于Xilinx ISE软件,rom中的数据初始化文件格式是.coe,如何得到.coe文件呢?

交叉编译器生成的elf文件,可以通过objcopy工具转成bin文件,然后用工具bin2coe将其再转成coe文件,转换过程中可以对其位宽、深度进行设置。得到的coe文件格式如下,第一行表示2进制,后面表示要存的数据,用逗号隔开,最后一行末尾是分号,如下图:

 Xilinx ISE生成rom/ram IP核_第1张图片

如何用ISE生成rom IP核?

ISE中用CORE Generator生成一个romIP核,其间可以对该rom的位宽、深度等进行设置,具体步骤:new source>IP(CORE Generator & Architecture Wizard)>填写名称,next>Memories & Storage Elements>RAMs & ROMs>Block Memory Generator>next>finish然后就进入了生成向导了,如下图:

 Xilinx ISE生成rom/ram IP核_第2张图片

按照自己的需要对该IP核进行设置,比如接口协议,单口双口,位宽深度。注意在第四步的时候,需要将之前生成的coe文件load到该rom中,如下图:

 Xilinx ISE生成rom/ram IP核_第3张图片

最后点击Generate就可以生成一个romIP

 

如何调用生成的IP核?

像普通的子程序一样进行调用就行了,可以进入工程目录下查看该IP核的verilog代码,获得其端口信号。

关于读rom的地址

因为内存普遍是以字节寻址的,假设rom中存储的是指令,PC地址从0开始,rom位宽是32位,那么用地址0,1,2,3取出的都是第一条指令,用4,5,6,7取出的都是第二条指令。

你可能感兴趣的:(FPGA)