5.1i xST -xST是推断块RAM,即使RAMMY样式设置为“分布式”。-Xilinx-AMD社区-FPGA CPLD-ChipDebug

5.1i xST -xST是推断块RAM,即使RAMMY样式设置为“分布式”。

描述

关键词:XST、VHDL、Verilog、RAM、块、分布式、推断

紧迫性:标准

一般描述:
当我将RAMYORKS XST指令设置为“分布式”时,块RAM仍然被推断出来。

解决方案

由于XST的问题,如果RAM的地址行被注册,XST将推断块RAM,不管综合指令。

若要解决此问题,请使用中间地址信号:

Verilog:

模块推理RAM(DOA,DOB,DI,ADDRA,ADDRB,CLKA,CLKB,写入);
输出[31:0] DOA,DOB;
输入[31:0] di;
输入[3:0] ADDRA,ADDRB;
输入CKA,CLKB,写入;

//综合属性RAM的RAMYORD样式是分布式的
Reg [31:0] RAM[0:15];
Reg [3:0]

总是@(Press Celk)
AdDr.Reg;

总是@(PASEDGE CLKB)开始
如果(写)
RAM[ADDRB] & l=;
结束

分配DOB=RAM [ADDRB];
指定DOA=RAM[ADDRAYRG ];

终端模块

工作:

模块推理RAM(DOA,DOB,DI,ADDRA,ADDRB,CLKA,CLKB,写入);
输出[31:0] DOA;
输出[31:0] DOB;
输入[31:0] di;
输入[3:0] ADDRA,ADDRB;
输入CKA,CLKB,写入;

//综合属性RAM的RAMYORD样式是分布式的
Reg [31:0] RAM[0:15];
Reg [3:0]
线[3:0] ADDROWTAMP;/ /添加临时地址信号

总是@(Press Celk)
AdDr.Reg;

总是@(PASEDGE CLKB)开始
如果(写)
RAM[ADDRB] & l=;
结束

分配DOB=RAM [ADDRB];
分配DOA=RAM(ADDRAWTIMP);/ /使用RAM的临时地址信号

赋值ADDRADTEMP= ADDRAYRG;
/ /将注册地址信号分配给临时地址信号

终端模块

由于XST的问题,如果RAM的地址行被注册,XST将推断块RAM,不管综合指令。

若要解决此问题,请使用中间地址信号:

VHDL:

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

实体推理RAM
端口(DOA,DOB:OUT STDLogLogic向量(31下降到0);
DI:在STdLogLogic向量(31下降到0);
ADDRA,ADDRB:在STDYLogLogic向量(3下降到0);
CLKA,CLKB,写入:在STDYLogic中;
结束实体;

推理系统的结构推理

RAMY-Type类型是STdLogLogic向量(31下降到0)的数组(0到15);
信号RAM:RAMOX型;
信号ADDRAYRG:STdLogLogic向量(3下降到0);

开始

过程(CLKA)开始
如果CLKA’事件和CLKA=“1”,那么
AdDr.Reg;
如果结束;
结束过程;

进程(CLKB)开始
如果CLKB’事件和CLKB=“1”,那么
如果(写=‘1’)然后
RAM(对流整数(ADDRB))& lt;=di;
如果结束;
如果结束;
结束过程;

DoB & lt;=RAM(Vube整数(ADDRB));
DOA & lt;=RAM(对流整数(ADDRAYRG));

架构结束;

工作:

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

实体推理RAM
端口(DOA,DOB:OUT STDLogLogic向量(31下降到0);
DI:在STdLogLogic向量(31下降到0);
ADDRA,ADDRB:在STDYLogLogic向量(3下降到0);
CLKA,CLKB,写入:在STDYLogic中;
结束实体;

推理系统的结构推理

RAMY-Type类型是STdLogLogic向量(31下降到0)的数组(0到15);
信号RAM:RAMOX型;
信号ADDRAYRG:STdLogLogic向量(3下降到0);
信号ADDRADETEMP:STDYLogic矢量(3下降到0);

开始

过程(CLKA)开始
如果CLKA’事件和CLKA=“1”,那么
AdDr.Reg;
如果结束;
结束过程;

进程(CLKB)开始
如果CLKB’事件和CLKB=“1”,那么
如果(写=‘1’)然后
RAM(对流整数(ADDRB))& lt;=di;
如果结束;
如果结束;
结束过程;

DoB & lt;=RAM(Vube整数(ADDRB));
DOA & lt;=RAM(Vuang-Type(ADDRAY TEMP));使用RAM的临时地址信号

AdDracl Timp & lt;
–将注册地址信号分配给临时地址信号

架构结束;

请登录后发表评论

    没有回复内容