vivado手写ROM改IP核

   一、引言    

        手写了一个ROM,用于ADC或者DAC的寄存器配置。DAC出来的波形总是有两个对称的小肩膀,找不到原因。时序没有报错,但是有延迟。之前听同事说他们也遇到过这样的问题,是时序问题。所以,我也想试一下,或许是手写的IP核造成了隐藏的时序问题,从而产生小肩膀。

vivado中提示的时序延迟如下图所示:

DAC出来的波形,两边的小肩膀如下图所示:


 

 

二、手写ROM改IP核

1. ROM IP核简介

        ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除,且资料不会因为电源关闭而消失。

        用IP核生成的ROM、RAM都存在于FPGA内部的RAM中,掉电都会丢失。而用IP核生成的ROM只是提前添加了数据文件。在FPGA运行的时候,通过添加数据文件给ROM进行初始化,才使得IP核生成的ROM模块像一个非遗失性储存器。通过修改给ROM的数据文件,就能修改ROM里面的内容。

        在Vivado中,ROM的IP核生成需要初始化文件,这个初始化的文件就是.coe文件(在Altera产品中这个初始化文件好像是.mif)。当coe文件中的数值少时可以手动编写,当需要的数据量大时,可以借助Matlab生成。这里我们原来已经有数据了,也不是很多,所以手写.ceo文件。

2. 准备好coe文件

        把配好的寄存器地址和寄存器值写成coe文件,格式如下图所示。

memory_initialization_radix = 16; //16进制
memory_initialization_vector =    //初始化数据
0800100001,
0800100000,        
0C000000C1,
0C00103200,
0800100004

3. 生成IP核并导入coe文件

        废话不多说,直接上图操作:

选择IP核

选择Single Port Rom

根据coe文件选择位宽和深度,深度在这里其实就是指向量的个数,也就是数据的个数,再具体到我这个例子就是指我要配置的寄存器的个数。

 

加载coe文件

 最后点击右下角的OK,生成IP核。

3. 进行例化使用

       最后, 在需要用到的地方进行例化使用。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修Vivado HLS中的IP核名字,可以按照以下步骤进行操作: 1. 打开Vivado HLS软件,并加载你的工程文件。 2. 在左侧项目导航栏中选择"Solution"选项卡,然后展开你的项目。在展开的列表中,找到你要修IP核。 3. 右键点击该IP核,在弹出的菜单中选择"Properties"选项。 4. 在弹出的属性窗口中,你可以看到IP核的各种属性,包括名字。在名字字段中修IP核的名字为你想要的名字。 5. 确认修后,点击"OK"按钮保存修。 通过以上步骤,你就可以成功修Vivado HLS中IP核的名字了。请注意,修IP核的名字后,你可能需要对工程进行重新综合和实现,以确保修后的名字在生成的HDL代码中生效。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vivado HLS 导出IP核失败](https://blog.csdn.net/Wangsang_629/article/details/130277773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vivado HLS介绍及IP核的设计流程](https://blog.csdn.net/CSD_N_csdn/article/details/107546602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值