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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6314|回复: 11

[活动] Xilinx 7系列FPGA使用之CLB探索【续】

[复制链接]
发表于 2012-6-15 09:54:54 | 显示全部楼层 |阅读模式

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

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

x
在《Xilinx 7系列FPGA使用之CLB探索》中研究了CLB的结构,并主要讲述了SLICEM扩展移位寄存器的使用。另外SLICEM还可扩展成分布式RAM,此处就补上对分布式RAM使用的说明。
        首先概括一下1个SLICEM可扩展的分布式RAM的所有形式:
        • Single-Port 32 x 1-bit RAM
        • Dual-Port 32 x 1-bit RAM
        • Quad-Port 32 x 2-bit RAM
        • Simple Dual-Port 32 x 6-bit RAM
        • Single-Port 64 x 1-bit RAM
        • Dual-Port 64 x 1-bit RAM
        • Quad-Port 64 x 1-bit RAM
        • Simple Dual-Port 64 x 3-bit RAM
        • Single-Port 128 x 1-bit RAM
        • Dual-Port 128 x 1-bit RAM
        与移位寄存器扩展类似,分布式RAM也是以LUT作为其存储单元,如图1所示为SLICEM中的4个LUT,每个LUT都有如下几个端口:
地址输入:A6:A1     W6:W1
数据输入:DI1       DI2
时钟输入:CK
写使能  :WEN
数据输出:O6        O5
移位输出:MC31 (在此处不使用)
Snap1.jpg
图1
仔细研究可发现,D LUT和A、B、C LUT有所区别,其地址输入都由D6:1驱动,而其它LUT的地址输入除了W6:1统一由D6:1驱动,A6:1分别由A6:1、B6:1、C6:1驱动,因此D LUT只能作为单端口RAM使用,而A、B、C LUT除了能作为单端口RAM使用之外,还能作为双端口RAM。如图2所示,以Simple Dual-Port 32 x 6-bit RAM为例,深度为32-bit,每个LUT都有6输入,将地址最高位置1,使两个输出O6、O5有效,剩下5根地址线可得到32-bit深度;数据宽度6-bit,由A、B、C LUT 的2*3个输出组成。
Snap2.jpg
图2
        与移位寄存器类似,XST综合器能自动将规范的代码综合成分布式RAM,如以下代码,实现了Simple Dual-Port 32 x 6-bit RAM的结构,综合出的结构如图3所示



  1. module dbram_lab(
  2.     input clk,
  3.     input rst,
  4.     input wen,
  5.     input [4:0] raddr,
  6.     input [4:0] waddr,
  7.     input [5:0] din,
  8.     output [5:0] qout
  9.     );
  10.          
  11. reg [5:0] ram[0:31];

  12. always@(posedge clk)
  13.         if(wen)
  14.                 ram[waddr]<=din;

  15. assign qout=ram[raddr];

  16. endmodule


复制代码
Snap3.jpg
图3
        图3中根据代码综合得到的结构基本与图2的理论图一致,其中编写代码时需要注意,由于LUT没有复位/置位端,因此描述RAM结构时不需要复位/置位信号。

        Xilinx公司的这种分布式RAM结构在需要少量RAM的情况下可以代替Block RAM使用,毕竟在7系列FPGA中一块Block RAM就有36Kbits。以下列举了一些适用于分布式RAM的情况:
        1. 深度小于64-bit
        2. 在深度大于64-bit小于128-bit情况下,有时延要求并需要异步输出(其clock-to-out时间小,并且布线比Block RAM自由)
        3. 数据宽度小于16-bit
发表于 2012-7-11 15:54:05 | 显示全部楼层
有夠讚
发表于 2012-7-18 23:59:36 | 显示全部楼层
回复 1# huxiaokai2005


    markmarkmarkmarkmarkmarkmark
发表于 2012-8-4 14:17:38 | 显示全部楼层
受教了。
发表于 2012-9-17 13:03:28 | 显示全部楼层
感謝分享!正評估使用xilinx-7的fpga!
发表于 2012-9-23 17:50:14 | 显示全部楼层
好复杂!
发表于 2012-9-25 21:03:06 | 显示全部楼层
回复 1# huxiaokai2005


    kankan
发表于 2012-10-30 12:51:14 | 显示全部楼层
感觉和官方文档没啥区别^_^
发表于 2012-10-30 13:59:48 | 显示全部楼层
开始学习X系列的FPGA,学习中
发表于 2012-11-15 12:32:48 | 显示全部楼层
kankan
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-25 00:25 , Processed in 0.041025 second(s), 9 queries , Gzip On, Redis On.

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