如何使用SythRAMWORKS属性来推断VIETEX块STECHAMAM+?

描述

关键词:StECANAM+,SPLPLIDEN,Virtex

紧迫性:标准

一般描述:
设计者可以通过设置来启用块StEICAM的使用
属性SythRAMSype为“BuffyRAM”。

将属性放置在由推断RAM驱动的输出信号上。
记住将输出信号(总线)的范围包括
这个名字。例如,

RealEdItA{{AdUd[3:0] } SythRAMSype“BuffyRAM”

在HDL分析器中,输出信号的名称(在示例中,A)是
实例名称和“dUT[3:0]”是输出信号名称
成为RAM的实例名。

在推断这些RAM时,SypPiple会生成一条警告消息。
该消息提供了有关RAM实例的信息。
包含“删除顺序实例”
ListNo.No.GN:G.视图:& L.VIEWIN No.gt;因为没有
对它的输出的引用。“你可以安全地忽略这个警告。

以下是推断块sECALAMS的局限性:

*En/Enb引脚当前无法访问[总是绑定到“1”]
*RSTA/RSTB引脚当前无法访问[始终不活动]
*尚未支持的自动推理,SynRAMStand属性
推断块RAM需要
*不支持端口上读写的双端口
*在HDL代码中初始化被推断的RAM目前不被支持。要做到这一点,你
需要从SypLimeTealVIEW中找到RAM的实例名或从
EDF网表,并在UCF文件中应用init属性。
默认情况下,推断的RAM初始化为“0”(零)。


设计器具有实例化RAMB**单元的选项。
这些限制被克服了。请看
(Xilinx解决方案2022)

解决方案

——VHDL实例
在5.2.2a中进行同步测试

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
使用IEEE.STDLogLogic UNSIGNED;

RAMI示例1实体
泛型(DATAL宽度:整数:=8;
地址宽度:整数:=8;
MimiStime:整数:=256);
端口(数据:在STdLogLogic向量中(DATAWIWITHOT-1降到0);
地址:在StdLogLogic向量中(AdvestsWith-1下降到0);
我们,CLK:在STDYLogic中;
问:出StdLogLogic向量(DATAWIWITH-1下降到0);
RAME1例结束;
RAMI示例1的体系结构RTL
MyMyType数组是StdLogLogic向量的数组(MeMyDeXTH-1下降到0)(DATAWIWITH-1下降到0);
信号MEM:MEMINA阵列;
属性SythRAMSype:字符串;
MEM的属性SythRAMSype:信号是“BuffyRAM”;
信号rAdv:STDyLogic向量(AdvestsWith-1下降到0);
开始
L0:过程(CLK)
开始
如果(CLK=‘1’和CLK'事件)
地址;地址;
如果(=‘1’)
MEM(凸整数(地址))& lt;=数据;
如果结束;
如果结束;
结束过程;

=MEM(凸整数(R地址));
结束RTL;

//Verilog示例
/在5.2.2a中进行测试。

模块SPRAM RAM(DIN,ADDR,我们,CLK,DOUT);
参数数据宽度=16,地址宽度=10,内存元件=600;
输入[DATAWIWITHES-1:0] DIN;
输入〔地址宽度1∶0〕ADDR;
输入我们,CLK;
输出[DATAWIWITHES-1:0] DOUT;

Reg [DATAWIWITH-1:0] MEM[MeMielEngs1:0:/*综合SythRAMSype =“BuffyRAM”*//;
Reg [地址宽度-1:0] ADDRYRG;

总是@(POSEDGE CLK)
开始
AdDr.Reg & lt;
如果(我们)
MEM[ADDR];
结束

指定DOU= MEM[ADDRYRG ];

终端模块

S.SDC(Sypulistic设计约束)实例
在5.2.2a中测试

定义属性{Me[& lt;DATAXWIDTH-1&G:;0 ] } SythRAMSype {BlasyRAM}

其中MEM是二维数组(记忆深度x数据宽度)。
应该用整数值替换。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 14:38:51 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它