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
    +关注

    关注

    1664

    文章

    22503

    浏览量

    639252
  • ROM
    ROM
    +关注

    关注

    4

    文章

    579

    浏览量

    89373
  • Memory
    +关注

    关注

    1

    文章

    80

    浏览量

    30858

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何将Primus生成的波形文件导入MATLAB

    VCD 文件及其查看器,如 GTKWave,擅长记录和展示波形,而 MATLAB 擅长对复杂数据进行计算、分析和可视化。在项目设计开发阶段,有时候,我们需要将 EDA 工具生成的波形数据,导入到 MATLAB 中进行更深入的分析、处理或可视化。
    的头像 发表于 12-23 14:22 1138次阅读

    求助,关于mcs文件生成的问题求解

    make: *** [mcs] Error 2 但是使用 make mcsCORE=e203 FPGA_NAME=hbirdkit 和 make mcsCORE=e203 FPGA_NAME=nucleikit 时就可以运行并生成mcs文件
    发表于 11-10 07:34

    使用NucleiStudio生成tb仿真需要的.verilog文件

    project编译后生成仿真需要的.verilog文件: 1.打开一个工程,右键选择工程名,打开Properties: 2.选择C/C++ Build ->setting,在
    发表于 11-05 07:07

    win10环境下使用vivado生成.bit与.mcs文件

    在hbirdv2参考文档中使用make指令生成system.bit和system.mcs文件,但是虚拟机本身会消耗计算资源,导致运行速度变慢,对于不习惯在linux下编辑代码的人,还需要来回倒腾代码
    发表于 10-27 08:25

    RISCV指令二进制编码利用matlab生成E203仿真可用文件

    鉴于nuclei studio IDE生成的.verilog难懂,为了方便对单条或者几条指令进行测试,我们队伍编写了matlab代码来实现E203仿真可以识别到的文件。 matlab代码如下
    发表于 10-22 07:06

    如何在Vivado上仿真蜂鸟SOC,仿真NucleiStudio编译好的程序

    ram的IP就可以 2. 将机器指令初始化到ITCM的bank-ram-IP 生成的机器指令在这里 然后我们需要把它转化为coe文件 我们参考网上的相关代码,做了hex到coe
    发表于 10-21 11:08

    scons使用dist生成的工程缺少文件怎么解决?

    env工具:env_released_1.3.5 使用scons —dist指令打包工程,打开生成的工程,提示缺少文件路径 以下内容为评论
    发表于 10-09 06:02

    使用env生成的keil文件好多文件找不到路径,为什么?

    使用env生成文件,使用了 scons —target=mdk5 —dist命令生成文件 但是用mdk打开后全是报错 请问大佬有遇到这种情况吗
    发表于 09-23 06:41

    如何利用 DDR 参数文件生成 Linux 映像?

    如何利用 DDR 参数文件生成 Linux 映像
    发表于 09-02 06:39

    如何使用 PinConfigure 工具生成 GPIO 代码文件和 OrCAD/Protel IC 组件?

    如何使用 PinConfigure 工具生成 GPIO 代码文件和 OrCAD/Protel IC 组件?
    发表于 08-27 06:48

    AICube生成部署文件失败的原因?怎么解决?

    我按照网上的方法安装了dotnet,和AICube,并且我是安装在非中文路径,但是尝试了一天了,都不能成功的生成部署文件,我使用软件自带的样例,但是就是不能生成部署文件 期待结果和实际
    发表于 08-05 06:26

    Simcenter FLOEFD BCI-ROM和Package Creator模块

    优势采用独立于边界条件的降阶模型(BCI-ROM)加速执行瞬态热仿真,同时采用PackageCreator轻松创建电子封装热模型。求解速度比完整的3D详细模型快40,000倍,且不折损精度有效保持
    的头像 发表于 07-08 10:32 843次阅读
    Simcenter FLOEFD BCI-<b class='flag-5'>ROM</b>和Package Creator模块

    Analog Devices / Maxim Integrated PD60-4H-1461-CoE单轴步进电机数据手册

    Analog Devices PD60-4H-1461-CoE单轴步进电机设计用作伺服驱动器,实现高达+48V电源电压和高达3Nm扭矩。PD60-4H-1461-CoE设有用于电机闭环操作的内置磁性
    的头像 发表于 06-12 15:10 991次阅读
    Analog Devices / Maxim Integrated PD60-4H-1461-<b class='flag-5'>CoE</b>单轴步进电机数据手册

    N307使用SDK创建模块生成bin文件大小异常的原因?

    下载方式选择为ILM 设置生成bin文件 生成的bin文件大小为200多M
    发表于 06-04 07:48

    基于FPGA搭建神经网络的步骤解析

    文件是为了将其写入rom,网络中的权重和偏置通过读取ROM即可,后续需要修改输入其他特征值,只需要修改input的rom里面的coe
    的头像 发表于 06-03 15:51 1506次阅读
    基于FPGA搭建神经网络的步骤解析