Altera内部结构(三):Cyclone IV芯片结构之内存块(M9K)

在Cyclone IV系列芯片中,嵌入式块RAM(BRAM)的结构都是M9K,当然在进行设计时,如果我们的逻辑资源足够,我们也可以使用逻辑资源(也就是分布式RAM)。如果逻辑资源紧张,可以指定使用BRAM。

在Verilog中,有时候会使用类似C语言等高级语言的数组定义,定义一个有深度和宽度的存储器

如:reg [7:0] fifo_buffer [7:0];

一般,编译器会默认认为,这个fifo_buffer是使用的是分布式ram,也就是FPGA内部逻辑资源LUT,但是当需要的fifo_buffer大的话,使用逻辑资源太浪费,我们可以告诉编译器我们使用BRAM。使用方法如下:

( ram_style = “block” ) reg [10:0] fifo_buffer [7:0];这样就会使用BRAM了。

但是,需要注意的是,因为使用的是BRAM,而在Cyclone IV中的BRAM的读写有时钟和读写使能控制。所以不能像分布式ram那样可以随读随写。

所以BRAM(M9K)常用来配置成RAM、ROM、FIFO等。

在这里插入图片描述
如图,可以看到,EP4CE10F17C8一共有46个M9K,每个M9K 9kbit,46 * 9 * 1024 = 423936 bit,刚好,总的内存423936 bit。

M9K特性如下:
在这里插入图片描述
在这里插入图片描述
可以看到,不同数据深度和数据宽度最终能够使用的M9K最大资源都不一样。
如果数据宽度为1、2、4、8、16、32,那么最终一个M9K只能使用8192 bit的内存;
但是当数据宽度为9、18、36的话,最多就能够使用整个M9K的内存9216 bit。

并且如果配置成真双口RAM和ROM的话,数据宽度不能是32和36。

在这里插入图片描述
可以通过时钟使能控制信号将时钟禁用,从而M9K不会检测到任何时钟边沿,所以不会执行任何操作。
读写使能控制信号可以控制M9K每个端口的读写操作。当不需要读写操作时,可以将wren和rden禁用,从而降低功耗。

另外还有奇偶校验位支持和字节使能,这个就不作详细介绍了。
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值