赛灵思
直播中

折剑青

8年用户 168经验值
私信 关注
[问答]

请帮助我解决Block RAM问题?

我试图在Xilinx Spartan 3AN(XC3S400AN)上使用块ram作为双端口fifo。
在生成编程文件时,我在运行XP的ISE 12.2上收到以下错误消息。
合成期间没有错误。
错误:PhysDesignRules:1162  - 无效配置(错误的引脚连接和/或模式)打开
块::。
该块配置为使用DIPAO,但此引脚未连接
警告:PhysDesignRules:1098  -  BlockRAM没有数据输入。
comp的写使能引脚WEA0
dp_fifo3 / altdp_fifo3_int / BU2 / U0 / blk_mem_generator / valid.cstr / ramloop [2] .ram.r / s3a_noinit.ram / dpram.ram有一个有效信号,但没有连接数据输入引脚。
无效数据可能会写入BlockRAM
如何更正此错误并在bitgen退出之前重复3次警告?
我的代码如下:
模块dp_fifo3(时钟,数据,rdaddress,wraddress,wren,q);
输入时钟;输入[31:0]数据;输入[10:0] rdaddress;输入[10:0] wraddress;输入wren;输出[31:0] q;
wire [31:0] sub_wire0; wire [31:0] q = sub_wire0 [31:0]; altdp_fifo3 altdp_fifo3_int(.clka(clock),. wea(wren),// Bus [0:0] .addra(wraddress)
),// Bus [10:0] .dina(data),// Bus [31:0] .clkb(clock),. addrb(rdaddress),// Bus [10:0] .doutb(sub_wire0))
;
//巴士[31:0]
endmodule
请帮帮我。
谢谢,
维克多R
dp_fifo3.v 3 KB

以上来自于谷歌翻译


以下为原文

I am trying to use the block ram on Xilinx Spartan 3AN (XC3S400AN) as a dual port fifo. I get the following error message with ISE 12.2 running on XP while generating programming file. No errors during synthesis.

Error: PhysDesignRules: 1162 - Invalid configuration (incorrect pin connections and/or modes) on
block: :. The block is configured to use DIPAO, but this pin is not connected

Warning: PhysDesignRules: 1098 - BlockRAM has no data input. The Write Enable pin WEA0 of comp
dp_fifo3/altdp_fifo3_int/BU2/U0/blk_mem_generator/valid.cstr/ramloop[2].ram.r/s3a_noinit.ram/dpram.ram has an active signal but no data input pins are connected. Invalid data may be written to BlockRAM

How do I correct this error and warning which repeats 3 times before bitgen quits?  My code is as follows:

module dp_fifo3 (
clock,
data,
rdaddress,
wraddress,
wren,
q);
input   clock;
input [31:0]  data;
input [10:0]  rdaddress;
input [10:0]  wraddress;
input   wren;
output [31:0]  q;
wire [31:0] sub_wire0;
wire [31:0] q = sub_wire0[31:0];


altdp_fifo3 altdp_fifo3_int (
.clka(clock),
.wea(wren),             // Bus [0 : 0]
.addra(wraddress),      // Bus [10 : 0]
.dina(data),            // Bus [31 : 0]
.clkb(clock),
.addrb(rdaddress),      // Bus [10 : 0]
.doutb(sub_wire0));     // Bus [31 : 0]


endmodule


Please help me out.  Thanks,

Victor R
            dp_fifo3.v ‏3 KB

回帖(25)

杨玲

2019-6-4 09:26:57
您发布的文件说它是使用Altera megawizard生成的。

需要使用Xilinx的“核心生成器”生成FIFO。
这将允许你
生成一个正常工作的FIFO,并根据宽度,深度,内存对其进行自定义
用法(块与分布式),时钟等。其中一种变体可能是
与您要替换的Altera FIFO非常相似。
然后只需放一个包装纸
使端口与原始Altera实现相匹配的核心。
如果你
使用ISE Navigator GUI,转到:
项目 - >新来源......
选择“IP(CORE Generator& Architecture Wizard)
为核心分配模块名称
然后浏览到Memories&
存储元素 - > FIFO
并选择FIFO Generator。
如果您需要有关FIFO核心定制的帮助,只需打开即可
自定义程序窗口中的数据表。
HTH,
的Gabor
-  Gabor

以上来自于谷歌翻译


以下为原文

The file you posted says it was generated using the Altera megawizard.  You
need to generate a FIFO using "core generator" for Xilinx.  This will allow you
to generate a FIFO that works properly and customize it for width, depth, memory
usage (block vs. distributed), clocking, etc.  One of the variants is likely to be
very similar to the Altera FIFO you are replacing.  Then just put a wrapper around
the core to make the ports match your original Altera implementation.  If you
use the ISE Navigator GUI, go to:
Project --> New Source...
Select "IP (CORE Generator & Architecture Wizard)
Assign a module name for the core
Then browse to Memories & Storage Elements --> FIFOs
and select FIFO Generator.
If you need help with customization of the FIFO core, just open the
data sheet from the customizer window.
 
HTH,
Gabor
-- Gabor
举报

符伯峪

2019-6-4 09:35:48
嗨Gabor,
我确实使用Core Generator来生成altdp_fifo3.xco文件。
因此,CoreGen设置存在问题。
当我合成时,没有错误。
提到的错误仅在我使用bitgen生成比特流文件时出现。
问题是如何绕过CoreGen GUI设置来解决问题。
为了帮助识别问题,我还附上了来自ipcore_dir目录的CoreGen生成的altdp_fifo3.v。
我使用的是ISE版本12.2(nt),应用程序版本:M.63C。
谢谢,
胜利者
altdp_fifo3.v 5 KB

以上来自于谷歌翻译


以下为原文

Hi Gabor,
 
I did use Core Generator to generate altdp_fifo3.xco file. Hence it is a problem with CoreGen settings. When I synthesize, there were no errors. The errors mentioned appear only when I generate the bitstream file using bitgen. The question is how to get around the CoreGen GUI settings to  solve the problem.
 
To help identifying the issues, I am enclosing also altdp_fifo3.v generated by the CoreGen from the ipcore_dir directory.
 
I am using ISE Release Version 12.2(nt), Application version: M.63C.
 
Thanks,
Victor
            altdp_fifo3.v ‏5 KB
举报

黄淳

2019-6-4 09:47:01
vramamoorthy写道:
嗨Gabor,
我确实使用Core Generator来生成altdp_fifo3.xco文件。
因此,CoreGen设置存在问题。
当我合成时,没有错误。
提到的错误仅在我使用bitgen生成比特流文件时出现。
问题是如何绕过CoreGen GUI设置来解决问题。
为了帮助识别问题,我还附上了来自ipcore_dir目录的CoreGen生成的altdp_fifo3.v。
我使用的是ISE版本12.2(nt),应用程序版本:M.63C。
谢谢,
胜利者
不要使用核心发生器。
如果它们是合理的,则推断Verilog的记忆(读写侧纵横比相同)。
否则,RTFM看看如何直接实例化它们。
你会好多了。
----------------------------是的,我这样做是为了谋生。

以上来自于谷歌翻译


以下为原文

 
vramamoorthy wrote:
Hi Gabor,
 
I did use Core Generator to generate altdp_fifo3.xco file. Hence it is a problem with CoreGen settings. When I synthesize, there were no errors. The errors mentioned appear only when I generate the bitstream file using bitgen. The question is how to get around the CoreGen GUI settings to  solve the problem.
 
To help identifying the issues, I am enclosing also altdp_fifo3.v generated by the CoreGen from the ipcore_dir directory.
 
I am using ISE Release Version 12.2(nt), Application version: M.63C.
 
Thanks,
Victor
 
Don't use the core generator.
 
Infer the memories from your Verilog if they are reasonable (read and write side aspect ratios are the same).
Otherwise, RTFM to see how to instantiate them directly.
 
You'll be a lot better off.
----------------------------Yes, I do this for a living.
举报

符伯峪

2019-6-4 10:04:48
bassman59写道:
--------------------------------------------------
---------------------------------------
不要使用核心发生器。
如果它们是合理的,则推断Verilog的记忆(读写侧纵横比相同)。
否则,RTFM看看如何直接实例化它们。
你会好多了。
--------------------------------------------------
--------------------------------------
请问解释什么是RTFM?
因为我很困惑,请帮我详细说明。
谢谢,
胜利者

以上来自于谷歌翻译


以下为原文

bassman59 wrote:
-----------------------------------------------------------------------------------------
Don't use the core generator.
 
Infer the memories from your Verilog if they are reasonable (read and write side aspect ratios are the same).
Otherwise, RTFM to see how to instantiate them directly.
 
You'll be a lot better off.
----------------------------------------------------------------------------------------
 
Could please explain what is RTFM?  Please help me out with details as I am confused.
 
Thanks,
Victor
举报

更多回帖

发帖
×
20
完善资料,
赚取积分