5.1i xST“警告:XST:646 -符号指定但从未使用”是在块RAM推断时发布的。

描述

我正在编码以推断块RAM;在我的代码中有未使用的地址行,XST发出以下警告:

警告:XST:646 -信号LT;AdvestsA a & gt;指定但从未使用。

警告:XST:647 -输入& lt;AdvestsB& & Gt;从未使用过。

此外,XST将代替分布式RAM来推断分布式RAM。这些示例说明包含太多地址行:

Verilog:

模块RAM1(CLK,EN,我们,ADDR,DI,DO);

参数地址宽度=5;

参数数据宽度=10;

参数RAMIFACH=10;

输入CLK,EN,我们;

输入[地址宽度-1:0 ] ADDR;

输入[数据宽度-1:0] di;

输出[数据宽度-1:0];

Reg [DATAWIDWH-1:0] RAM [RAMDESTH-1:0];

Reg [ AdvrsWist-1:0] Read AddiDR;

总是@(POSEDGE CLK)

开始

如果(EN=1’B1)

开始

如果(我们=1’B1)

RAM[ADDR]=DI;

ADRDR;

结束

结束

分配DO=RAM [读数ADDR];

终端模块

VHDL:

库IEEE;

使用IEEE.STDYLogiCy1164.ALL;

使用IEEE.STDLogLogic UNSIGNED;

实体RAM1是

泛型(地址宽度:整数:=5);

数据宽度:整数:=10;

RAMiSime:整数:=10);

端口(DI):在STDYLogLogic向量(数据宽度- 1下降到0);

ADDR:在StdLogLogic向量中(AddiSrS-宽度1下降到0);

CLK:在STDYLogic中;

在STDYLogic中;

我们:在STDYLogic中;

DO:StdLogLogic向量(数据宽度-1下降到0);

结束实体;

RAM1建筑结构

RAMY-Type类型为StdLogLogic向量数组(DATAWITH—1下降到0)(RAMDIFEST - 1下降到0);

信号RAM:RAMOX型;

信号读写:STDYLogLogic向量(地址宽度- 1下降到0);

开始

过程(CLK)

开始

如果CLK'事件和CLK =“1”,那么

如果EN=‘1’,那么

如果我们=“1”,那么

RAM(对流整数(ADDR))& lt;=di;

如果结束;

ADRDR;

如果结束;

如果结束;

结束过程;

Do & lt;=RAM(Vube整数(Read SydAdR));

架构结束;

解决方案

为了避免这些警告,在HDL代码中裁剪地址线以正确地反映将被使用的实际地址:

Verilog:

模块RAM1(CLK,EN,我们,ADDR,DI,DO);

参数地址宽度=4;/地址宽度从5变为4

参数数据宽度=10;

参数RAMIFACH=10;

输入CLK,EN,我们;

输入[地址宽度-1:0 ] ADDR;

输入[数据宽度-1:0] di;

输出[数据宽度-1:0];

Reg [DATAWIDWH-1:0] RAM [RAMDESTH-1:0];

Reg [ AdvrsWist-1:0] Read AddiDR;

总是@(POSEDGE CLK)

开始

如果(EN=1’B1)

开始

如果(我们=1’B1)

RAM[ADDR]=DI;

ADRDR;

结束

结束

分配DO=RAM [读数ADDR];

终端模块

这是通过ISE 5.2i的发布来修复的。

为了避免这些警告,在HDL代码中裁剪地址线以正确地反映将被使用的实际地址:

VHDL:

库IEEE;

使用IEEE.STDYLogiCy1164.ALL;

使用IEEE.STDLogLogic UNSIGNED;

实体RAM1是

泛型(地址宽度:整数:=4),地址宽度从5变为4

数据宽度:整数:=10;

RAMiSime:整数:=10);

端口(DI):在STDYLogLogic向量(数据宽度- 1下降到0);

ADDR:在StdLogLogic向量中(AddiSrS-宽度1下降到0);

CLK:在STDYLogic中;

在STDYLogic中;

我们:在STDYLogic中;

DO:StdLogLogic向量(数据宽度-1下降到0);

结束实体;

RAM1建筑结构

RAMY-Type类型为StdLogLogic向量数组(DATAWITH—1下降到0)(RAMDIFEST - 1下降到0);

信号RAM:RAMOX型;

信号读写:STDYLogLogic向量(地址宽度- 1下降到0);

开始

过程(CLK)

开始

如果CLK'事件和CLK =“1”,那么

如果EN=‘1’,那么

如果我们=“1”,那么

RAM(对流整数(ADDR))& lt;=di;

如果结束;

ADRDR;

如果结束;

如果结束;

结束过程;

Do & lt;=RAM(Vube整数(Read SydAdR));

架构结束;

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

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

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

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