0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何生成ROM的coe文件?

FPGA技术驿站 来源:Lauren的FPGA 作者:Lauren的FPGA 2021-02-11 11:43 次阅读

在生成ROM时需要提供coe文件,如下图所示。这个coe文件本质上就是Memory的初始化文件,Xilinx对其有具体的格式要求。

coe文件格式

coe文件格式要求如下图所示,其中前两行是固定的。其中第一行定义了Radix,可以是2、10或16,意味着第2行定义的数据向量内容可以是二进制、十进制或十六进制。这里需要说明的是定义的数据向量各个数据之间可以是空格,也可以是逗号(但此时最后一个数据要以分号结尾)或者回车换行符。

5dc927f0-4fc0-11eb-8b86-12bb97331649.png

生成coe文件

Matlab作为主流的算法开发与验证平台之一往往成为很多数据的重要来源,因此,在Matlab下生成coe文件是非常普遍的操作。这里要用到Matlab提供的一些文件操作函数,如fopen、fprintf和fclose等。在此,我们定义函数gen_coe,它接收两个参数fn和data。其中fn为生成的coe文件名,data为行或列向量。要求为十进制整数。

5de55ea2-4fc0-11eb-8b86-12bb97331649.png

5e2e9ef0-4fc0-11eb-8b86-12bb97331649.png

Python提供了扩展库Numpy,可以方便地实现对矩阵的操作,利用Python也可以快捷地生成coe文件。这里提供两个版本。两个函数都有相同的参数fn和data,含义与上文提到的Matlab函数保持一致。在gen_coe_v1中,通过write()完成了写数据操作。在gen_coe_v2中,则是通过np.savetxt完成了写数据操作。在这个案例中,np.savetxt接收3个参数,第一个参数为文件ID,第二个参数为矩阵的行索引,第三个参数为写入格式。

5e761ece-4fc0-11eb-8b86-12bb97331649.png

5edacac2-4fc0-11eb-8b86-12bb97331649.png

原文标题:如何生成ROM的coe文件

文章出处:【微信公众号:Lauren的FPGA】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603319
  • ROM
    ROM
    +关注

    关注

    4

    文章

    572

    浏览量

    85769
  • Memory
    +关注

    关注

    1

    文章

    77

    浏览量

    29043

原文标题:如何生成ROM的coe文件

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ROM数据丢失的常见原因

    ROM(Read-Only Memory,只读存储器)是一种非易失性存储器,用于存储固件或系统软件,这些数据在断电后仍然可以保留。ROM数据丢失可能会导致设备无法启动或功能异常。 ROM数据丢失
    的头像 发表于 11-04 10:29 681次阅读

    手机中的ROM与内存的区别

    1. ROM(只读存储器) 定义: ROM是一种非易失性存储器,这意味着即使在断电的情况下,存储在ROM中的数据也不会丢失。在智能手机中,ROM主要用于存储固件和操作系统,以及一些预装
    的头像 发表于 11-04 10:23 890次阅读

    如何选择适合的ROM类型

    在现代电子设备和计算机系统中,ROM扮演着至关重要的角色。它用于存储固件、操作系统、启动代码以及其他重要的系统信息。随着技术的发展,ROM的种类和特性也在不断变化。 1. ROM的基本概念 R
    的头像 发表于 11-04 10:04 334次阅读

    固态ROM的工作原理

    在计算机和电子设备的发展历程中,存储技术扮演了至关重要的角色。其中,固态ROM作为一种可靠的非易失性存储解决方案,被广泛应用于各种设备中。 ROM的基本结构 ROM的基本结构由存储单元、地址解码器
    的头像 发表于 11-04 10:03 445次阅读

    请问PurePath里面带ROM和不带ROM的元件有什么区别呢?

    PurePath 里面的 带ROM 和不带ROM的元件有什么区别?比如说,音量有VOLUME_ZX 和 VOLUME_ZX_ROM, 我对比过生成的pps_driver.C
    发表于 10-28 07:21

    labview程序生成exe文件怎么还原

    在LabVIEW中,程序生成exe文件后,通常这个过程是不可逆的,即exe文件无法直接“还原”回原始的LabVIEW项目文件(.vi或.lvproj)。exe
    的头像 发表于 09-04 17:12 1426次阅读

    labview工程文件如何生成exe

    生成可执行文件(EXE)是LabVIEW程序开发过程中的一个重要步骤,它允许用户在没有安装LabVIEW的计算机上运行程序。以下是步骤和注意事项: 1. 准备工作 在开始生成EXE文件
    的头像 发表于 09-04 17:09 1724次阅读

    labview怎么生成可执行文件

    生成可执行文件(EXE)是LabVIEW程序开发中的一个重要步骤,它允许用户将LabVIEW项目打包成一个独立的应用程序,便于在没有安装LabVIEW的计算机上运行。 1. 准备工作 在开始生成
    的头像 发表于 09-04 17:07 1028次阅读

    Efinity编译生成文件使用指导-v1

    接上篇: (6)查看Unassigned Core Pins。 在placement下面的palce.rpt文件中搜索 Unassigned C ore Pins就可以看到。它说明这些管脚没有用于内部连接。 大家可以点击这个链接查看上文 Efinity编译生成文件使用指导
    的头像 发表于 08-13 14:22 762次阅读
    Efinity编译<b class='flag-5'>生成文件</b>使用指导-v1

    请问TINA-TI如何生成.TLD文件

    如题,TINA-TI如何生成.TLD文件,我在官网下载了OPA627的模型,但是将OPA627.TLD文件放入安装目录下的SPICELIB文件夹下,打开TINA-TI无法找到OPA6
    发表于 08-13 07:51

    Allegro生成光绘文件

    Allegro生成光绘文件
    发表于 05-06 10:37 1次下载

    利用ISE与Matlab创建并仿真FPGA设计中的ROM IP核

    一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。
    发表于 04-16 11:49 589次阅读
    利用ISE与Matlab创建并仿真FPGA设计中的<b class='flag-5'>ROM</b> IP核

    国内首个生成式人工智能安全技术文件发布,燧原科技深度参编

    近日,全国网络安全标准化技术委员会(TC260)正式发布了《生成式人工智能服务安全基本要求》(以下简称《基本要求》),是国内首个面向AIGC服务安全领域的技术文件,将有助于提高生成式人工智能服务安全水平。
    的头像 发表于 03-12 10:35 701次阅读
    国内首个<b class='flag-5'>生成</b>式人工智能安全技术<b class='flag-5'>文件</b>发布,燧原科技深度参编

    tasking是如何生成bin文件的?

    有没大神做过Tasking生成bin文件呢?
    发表于 02-19 07:39

    Android文件格式详解

    dex是android虚拟机的可执行字节码文件,java文件经过javac编译成class文件,class文件又被dx处理后生成dex
    的头像 发表于 01-02 10:21 2385次阅读
    Android<b class='flag-5'>文件</b>格式详解