请教FPGA高手
时间:10-02
整理:3721RD
点击:
如果在模块中声明[31:0]reg[0:255]那么占用的是什么资源?是M9K还是其他资源?我的器件是CycloneIII,嵌入式内存块是M9K,要写的算法要尽量使用M9K,从而减少对其它资源的使用
block memory
这个不一定,要看你写出来的代码是否符合block memory的要求,若是不符合的话会用FPGA内部的LE进行综合的,具体可以试一下!或是看看Cyclone III的datasheet
Quartus中Analysis&Synthesis Setting中有一项:Auto RAM Replacement 将自动决定是否以RAM块代替逻辑中同等功能。
个人觉得是寄存器资源
个人觉得这个是用在时序电路还是逻辑电路中,时序电路中应该是寄存器资源,逻辑电路综合出来不是寄存器吧?
我只是简单的在quartus下进行了简单测试,除非使用MegaWizard中的memory compiler,[31:0]reg[0:255]编译结束后查看资源使用,结果占用的是LEs资源,也就是将其当做逻辑寄存器了,而并没有占用RAM资源!4楼的方法我早就试过了,结果是一样的!我查看了quartus II 11.0 HandBook,得到的信息大概是:1.如果占用的资源比较少,quartus为了使系统速度更快,会将本来是占用memory的改为逻辑资源实现
2.可以指示编译器将其编译为占用何种资源。如(* ramstyle="M9K" *)[31:0]reg[0:255],则会编译为占用M9K资源.(我试了试,不管用。猜想可能是程序最终只占用了9%的资源导致编译器忽视了我的编译指示)
3...
