在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4530|回复: 5

[讨论] verilog存储器类型变量,占用资源较多 reg [22:0] rom_base_10Hz [0:120]

[复制链接]
发表于 2014-11-5 23:46:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
parameter laser_out_time_table = 120;
parameter offset_before_launch = 0;

reg [22:0] rom_base_10Hz [0:laser_out_time_table-1];//2^23*20/1 000 000 000 = 0.16777216000000s

编译后的结果:
Total logic elements        5,979 / 6,272 ( 95 % )
Total combinational functions        5,959 / 6,272 ( 95 % )
Dedicated logic registers        3,196 / 6,272 ( 51 % )
Total registers        3196
Total pins        31 / 92 ( 34 % )
Total virtual pins        0
Total memory bits        256 / 276,480 ( < 1 % )
Embedded Multiplier 9-bit elements        12 / 30 ( 40 % )
Total PLLs        0 / 2 ( 0 % )


LE资源占用的较多,可以确认, reg [22:0] rom_base_10Hz [0:laser_out_time_table-1]变量,把le资源占用的很大一部分,请问如何定义变量才能使存储器类型变量占用的le资源少,或者让存储器类型变量占用M4K块,m9k块等,另外,我的程序要定义一个  reg [22:0] rom_base_10Hz [0:1000]这么大的二维数组(存储器),如何解决?

目前还不会使用ROM 或RAM,原因是,ROM RAM初始化不容易,还不会使用,请各位能帮帮忙

发表于 2014-11-9 23:59:43 | 显示全部楼层
ROM和RAM初始化很容易,xilinx或者quartus上直接加IP核,选择memory,跟着向导走,有一个页面就是加载初始化文件的。
quartus忘记了,xilinx里面是可以直接选择初始化为0或者其他值。
如果你要初始化复杂的数据,就需要自己做初始化文件,文件格式很简单,网上查一下就有了。
发表于 2014-11-10 08:48:25 | 显示全部楼层
直接调用 ram ip核,并不复杂,我在xilinx 的片子上操作 memory 其实并不很占资源啊
发表于 2014-11-10 09:14:10 | 显示全部楼层
像数组这样定义使用默认会使用BRAM,你看看综合选项,是不是作了修改?
发表于 2014-11-18 20:07:37 | 显示全部楼层
回复 1# miaoxikui


    你这块数组原意是希望用rom来替代,但是你用verilog来写代码的话,相信你是有reset的情况下给数组赋值的,而因为是有这么个赋值初始化的代码,会导致无法综合成rom或者ram的,这种代码风格是无法让综合器自动综合的。所以需要你一定要显示的生成一个rom/ram的实体,然后例化到代码里去。
发表于 2014-11-18 22:20:18 | 显示全部楼层
只能通过例化RAM。

如果用verilog HDL写,综合出来面积时序都差,没办法的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 13:21 , Processed in 0.145382 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表