在verliog中有reg[7:0] mem[0:255]的写法,那么这跟直接用一个RAM有什么区别,就是FPGA中的M9K块资源能不能拿来当做寄存器使用,FPGA中的寄存器资源丰富吗?
FPGA的资源就是指查找表和寄存器,加上嵌入的RAM,DSP等硬核。
RAM和reg当然是不同的,FPGA里面的RAM分成block RAM和distributed RAM,block RAM是嵌入的RAM块,就如你说的M9K,M4K;distributed RAM是分布式RAM,即用FPGA里的寄存器和查找表构成。也就是说RAM可以由reg构成,但是RAM不能直接当寄存器组用。比如你设一个reg[7:0] mem[0:255],在一个时钟里你可以直接访问所有的数据,但是RAM里面你一次只能访问一个地址的数据。还有RAM一般数据宽度不能设置太大,很消耗资源。
合理的使用distributed RAM可以很好的减少FPGA资源使用。