问题
verilog 中定义的存储型寄存器组,例如,reg [16:1]mem [255:0];这应该是可综合的,可是综合之后消耗的是 芯片中 分布式 LE 组成的 RAM 呢 还是 存储模块里的RAM 呢?(假定芯片中有存储模块RAM 区)
分析: 如果没有专门去调用芯片的RAM资源,对与上面的verilog 定义,综合器直接是使用LE组成RAM
另外,这种形式的定义的初始化,好像系统任务$readmemb 只是仿真中用于读入数据吧?是不能综合的吧 ?那是不是得一个一个在复位期间赋值呢 例如 mem [0]<=16'h0000; mem[1]<=16'h8888;…………
分析: 系统任务$readmemb 确实只是用于防真读入数据的,不支持综合。如果要对上面定义的二维数组进行赋值,只能在复位器件一个个的赋值。
我也要设计一个存储模块,[7:0] mem [4095:0],大概要这么大的空间,编译出来要4万多的LE,这是不是很不正常呢,但是我要实现的功能用Quartus库里面的RAM没办法实现,您有什么办法可以解决么,谢谢