ISE报错问题集锦(转载)

1、XST - "ERROR:Xst:902 - .v, line xx: Unexpected event in always block sensitivity list."

解决方法:Resolution 1
XST does not currently support logical operators in the sensitivity list. Because these logical operators are not evaluated during synthesis, there is no need to include them in the sensitivity list. Instead, include the operands in the sensitivity list and perform the logical operation in the procedural block.
For example:
Change the following:
always@(A && B)
if (A && B) ...
to the following:
always@(A or B)
if (A && B) ...
Resolution 2
XST also reports the above error if the sensitivity list is mixed between edge-sensitive and level-sensitive signals.
For example:
always @(posedge c or a or b or d) q <= a & b & d;
However, the above construct is illegal in Verilog. The sensitivity list must be either edge-sensitive or level-sensitive and not a combination of the two.
Resolution 3
XST also produces the above error message if a parameter is listed in the sensitivity list:
For example:
module test (in1, in2, out1);
parameter const = 5;
input [2:0] in1, in2;
output reg [3:0] out1;
always @(in1, in2, const)
out1 = in1 + in2 + const;
endmodule
Because parameters never change values (or are static at compile time), you do not need to include them in the sensitivity list and you can safely remove them.
Resolution 4
See (Xilinx Answer 20391).

 

2、ERROR:Xst:898 - counterlatch32.v line 12: The reset or set test condition for is incompatible with the event declaration in the sensitivity list.

代码:

always @(posedge counter_increment or posedge reset)

     begin
  if (!reset)
   index <= index + 1;
  else
   index <= 5'b00000;
     end
 always @(posedge enable)

   out[index] <= in;
解决方法:问题出在,在always中,RESET是边沿触发的敏感信号,而在下面的描述中,RESET必须是高电平有效也就是说一切敏感事件必须在高电平时发生。可以修改如下:

always @(posedge counter_increment or posedge reset)

     begin
  if (reset)
   index <= index + 1;
  else
   index <= 5'b00000;
     end
 always @(posedge enable)

   out[index] <= in;

按以上修改,就能解决问题,主要是因为触发器的问题。

 

3、ERROR:Xst:880 - "mon.v" line 72: Cannot mix blocking and non blocking assignments on signal .

解决办法:

Solution

XST rejects Verilog designs if a given signal is assigned through both blocking and non-blocking assignments. For example:

always @(in1) begin
if (in2) out1 = in1;
else out1 <= in2;
end

If a variable is assigned in both a blocking and non-blocking assignment, the above error message is reported.
Restrictions also exist when blocking and non-blocking assignments are mixed on bits and slices. The following example will be rejected, even if there is no genuine mixing of blocking and non-blocking assignments:

if (in2) begin
out1[0] = 1'b0;
out1[1] <= in1;
end
else begin
out1[0] = in2;
out1[1] <= 1'b1;
end

Errors are checked at the signal level, not at the bit level. If there is more than a single blocking/non-blocking error, only the first one will be reported. In some cases, the line number for the error might be incorrect (as there might be multiple lines in which the signal has been assigned).

 

4、WARNING:Xst:647 - Input is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
  解决办法:This particular port has been declared in your HDL description, but does not drive or is not driven by any internal logic.
Unused input ports will remain in the design, but they will be completely unconnected. If the port is not intended to be used, this message can be safely ignored. To avoid this message, remove any loadless or sourceless elements from your HDL description.
Output ports will remain in the final netlist and will be driven by a logic 0. To avoid the message and to save the port resource, remove the unused output port from your HDL description.

 

5、Xst:2677 - Node of sequential type is unconnected in block .

    解决办法:That warning is caused by lot of things.....
One main reason is if your outputs are not connected..ie if you are not reading the module outputs the ise optimisation step removes all signal inside your block and fire a 2677 warning...
check the module outputs

 

6、ERROR:ProjectMgmt:387 - TOE: ITclInterp::ExecuteCmd gave Tcl result 'error copying "mppr_result.par''

出错描述:

Setting a project to use both SmartGuide and Multi-pass, Place & Route generates the following error when the "Implement Design" process is run. 

 

"ERROR:Par:368 - SmartGuide and MPPR are incompatible. Please remove the -smartguide switch or the -n switch 

ERROR (dpm_executeCommand): par failed 

ERROR:ProjectMgmt:387 - TOE: ITclInterp::ExecuteCmd gave Tcl result 'error copying "mppr_result.par": no such file or directory'. 

Tcl_ErrnoId: ENOENT 

Tcl_ErrnoMsg: no such file or directory 

_cmd: ::Xilinx::Dpm::dpm_chTransformExecuteForPar dpm_parRun $piThisInterface 

errorInfo: error copying "mppr_result.par": no such file or directory 

while executing 

"file copy -force $_MpprReport $_MpprRpt " 

(procedure "dpm_parSortMpprResults" line 12) 

invoked from within 

"dpm_parSortMpprResults $sProjectDir" 

(procedure "::Xilinx::Dpm::dpm_chTransformExecuteForPar" line 79) 

invoked from within 

"::Xilinx::Dpm::dpm_chTransformExecuteForPar dpm_parRun $piThisInterface"

解决办法:

The usage is incorrect. SmartGuide and MPPR do not work together. The error from PAR clearly indicates this problem. However, Project Navigator should have prevented this use model or issued a warning when you set the incompatible properties. Additionally, the Project Navigator Tcl script for PAR should handle the inconsistency better. 

 

7、XST - "WARNING:Xst:737 - Found n-bit latch for signal "

问题描述以及产生原因:

Keywords: HDL Advisor
Urgency: Standard
General Description:
When a latch inference is discovered during HDL synthesis, XST reports the following HDL Advisor message:
"WARNING:Xst:737 - Found n-bit latch for signal ."
The listing for "n" is the width of the latch.
If latch inference is intended, you can safely ignore this message. However, some inefficient coding styles can lead to accidental latch inference. You should analyze your code to see if this result is intended. The examples below illustrate how you can avoid latch inference.

解决办法:

1、Include all possible cases in the case statement.
Verilog
always @ (SEL or DIN1 or DIN2)
begin
case (SEL)
2'b00 : DOUT <= DIN1 + DIN2;
2'b01 : DOUT <= DIN1 - DIN2;
2'b10 : DOUT <= DIN1;
endcase
end
VHDL
process (SEL, DIN1, DIN2)
begin
case SEL is
when "00" => DOUT <= DIN1 + DIN2;
when "01" => DOUT <= DIN1 - DIN2;
when "10" => DOUT <= DIN1;
end case;
end process;
These two examples create latches because there is no provision for the case when SEL = "11." To eliminate the latches, add another entry to deal with this possibility.
Verilog
2'b11 : DOUT <= DIN2;
VHDL
when "11" => DOUT <= DIN2;
Using the "DEFAULT" (Verilog) or "WHEN OTHERS" (VHDL) clause always works, but this can create extraneous logic. This is always the safest methodology, but might produce a larger and slower design since any unknown state has logic that is needed to bring it to a known state.

2、Assign to all the same outputs in each case.
Verilog
always @ (SEL or DIN1 or DIN2)
begin
case (SEL)
2'b00 : DOUT <= DIN1 + DIN2;
2'b01 : DOUT <= DIN1 - DIN2;
2'b10 : DOUT <= DIN1;
2'b11 :
begin
DOUT <= DIN2;
TEMP <= DIN1;
end
endcase
end
VHDL
process (SEL, DIN1, DIN2)
begin
case SEL is
when "00" => DOUT <= DIN1 + DIN2;
when "01" => DOUT <= DIN1 - DIN2;
when "10" => DOUT <= DIN1;
when "11" =>
DOUT <= DIN2;
TEMP <= DIN1;
end case;
end process;
These examples infer latches because the "11" case assigns two outputs, while the others assign only one. Looking at this case from TEMP's point of view, only one of four possible cases are specified, so it is incomplete. You can avoid this situation by assigning values to the exact same list of outputs for each case.

3、Make sure any "if / else if" statements have a concluding "else" clause:
VHDL:

process (ge, din) is begin
if (ge = '1') then
dout_a <= din;
else
dout_a <= '0'; -- This is a concluding "else" statement.
end if;
end process;

Verilog:

always @(ge

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建 OVS 外部网络 ext_net - 每天5分钟玩转 OpenStack(144)

上一节完成连接外网的配置准备工作&#xff0c;今天就来创建 OVS 外部网络 ext_net。 进入 Admin -> Networks 菜单&#xff0c;点击 “Create Network” 按钮。 显示创建页面。 Provider Network Type 选择 “Flat”。 Network 填写 “external”&#xff0c;与 ml2_conf.…

Linux学习之zImage内核镜像解压过程详解

zImage内核镜像解压过程详解 收藏 zImage内核镜像解压过程详解 作者&#xff1a; 刘洪涛&#xff0c;华清远见嵌入式培训中心 讲师。 本文以linux-2.6.14内核在S3C2410平台上运行为例&#xff0c;讲解内核的解压过程。 内核编译完成后会生成zImage内核镜像文件。关于…

4位数值比较器电路

4位数值比较器电路 题目描述&#xff1a;使用门级描述方式&#xff0c;实现4位数值比较器 某4位数值比较器的功能如下表 timescale 1ns/1nsmodule comparator_4(input [3:0] A ,input [3:0] B ,output wire Y2 , //A>Boutput wire Y1 …

将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)

上一节完我们创建了外部网络 ext_net&#xff0c;接下来需要将其连接到 Neutron 的虚拟路由器&#xff0c;这样 instance 才能访问外网。 点击菜单 Project -> Network -> Routers 进入 router 列表。 点击 router_100_101 的 “Set Gateway” 按钮。 在 “External Netw…

Xilinx_ISE和ModelSim的联合使用方法 / 从Xilinx ISE 14.7启动ModelSim时遇到的问题

解决方法&#xff1a; 前提是安装了 xilinx ise14.7 和modelsim se 10.1a 1〉从Windows的Start Menu开始&#xff0c;Xilinx ISE Design Suite 14.7 —〉EDK —〉Tools —〉Compile Simulation Libraries 按照提示编译好library&#xff0c;编译的library输出目录是&#xff…

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

今天我们开始学习 OVS 如何实现 Neutron VxLAN&#xff0c;关于 VxLAN 的概念以及 Linux Bridge 实现&#xff0c;大家可以参考前面相关章节。 Open vSwitch 支持 VXLAN 和 GRE 这两种 overlay network。因为 OpenStack 对于 VXLAN 与 GRE 配置和实现差别不大&#xff0c;这里只…

4bit超前进位加法器电路

4bit超前进位加法器电路 题目描述 采用门级描述方式&#xff0c;实现此4bit超前进位加法器&#xff0c;接口电路如下&#xff1a; timescale 1ns/1nsmodule lca_4(input [3:0] A_in ,input [3:0] B_in ,input C_1 ,output wire CO …

Linux-Android系统启动之INIT进程和system v init

Linux系统启动之INIT进程和system v init 一. Linux系统启动之INIT进程和system v init 1. 首先介绍一下INIT进程   init进程在Start_kernel执行完毕之后&#xff0c;也就是Kernel初始化完毕之后启动&#xff0c;是系统所有进程的起点&#xff0c;内核在完成核内引导以后&a…

学习Zynq-7000的入门书单

根据选用的芯片型号和应用领域的不同&#xff0c;读者可以适当裁减。 Entrance Readings: 1. Zynq-7000 User Guides Zynq-7000 All Programmable SoC: Concepts, Tools, and Techniques http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_4/ug873-zynq-ctt.pd…

创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)

上一节我们完成了 OVS VxLAN 的配置工作&#xff0c;今天创建 vxlan100_net 并部署 instance。 创建 vxlan100_net 打开菜单 Admin -> Networks&#xff0c;点击 “Create Network” 按钮。 显示创建页面。 Provider Network Type 选择 “VXLAN”。 Segmentation ID 即 VNI…

有限编码器电路

有限编码器电路 题目描述 timescale 1ns/1nsmodule encoder_0(input [8:0] I_n ,output reg [3:0] Y_n ); // always (*)begin // casex(I_n) // 9b111111111 : Y_n 4b1111; // 9b0xxxxxxxx : Y_n 4b0110; // 9b10xxx…

Linux-Android启动之zImage生成过程详解

可以看到&#xff0c;在顶层makefile的第278行&#xff0c;包含了scripts/Kbuild.include文件&#xff0c;在这里定义了大量的函数和变量&#xff0c;供顶层makefile和其他makefile文件使用。 在顶层makefile文件的第412行&#xff0c;包含了arch/arm/Makefile。这个是体系结…

行业发展的大势所趋 嵌入式机器视觉系统前景一片大好

机器视觉系统是一种非接触式的光学传感系统。它同时集成软硬件&#xff0c;能够自动地从所采集到的图像中获取信息或者产生控制动作。自起步发展到现在&#xff0c;主要经历了数字电路组成、PC机和输出设备组成、嵌入式三个阶段。 其中&#xff0c;嵌入式机器视觉系统依托专业计…

优先编码器

优先编码器 题目描述 8-3优先编码器的功能表 timescale 1ns/1nsmodule encoder_83(input [7:0] I ,input EI ,output wire [2:0] Y ,output wire GS ,output wire EO );reg [2:0]Y_reg;reg GS_reg;reg EO…

OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)

上一节创建了 vxlan100_net 并部署 instance&#xff0c;今天我们来分析底层网络结构。 控制节点 执行 ovs-vsctl show&#xff1a; br-int br-int 连接了如下 port: tap0d4cb13a-7a 是 vxlan100_net 的 DHCP 服务对应的 interface。 qvoa2ac3b9a-24 将 cirros-vm1 虚拟网卡连…

Linux-Android启动之Init进程前传

对Linux-Android系统的启动做了一些分析&#xff0c;下面的一篇文章侧重讲述Linux启动过程中函数Start_kernel()被调用之前的一些分析&#xff0c;同时也对函数Start_kernel()之后的代码流程作了概述&#xff0c;我希望关于Linux-Android系统的启动的专题能够继续地写下去&…

如何正确入门Windows系统下驱动开发领域?

[作者]猪头三作者网站: http://www.x86asm.com原文链接: http://blog.csdn.net/Code_GodFather/...0/5975901.aspx[贡献者]1> defddr 看雪学院2> StudyRush 看雪学院[序言]很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大…

OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)

OVS 的数据流向都是由 Flow 规则控制的&#xff0c;今天我们就来分析 VxLAN 的 Flow 规则。 提个醒&#xff1a;这可能是本教程最烧脑的一节&#xff0c;lets rock it ! 下面分析控制节点上的 flow rule&#xff0c;计算节点类似。 br-int 的 flow rule br-int 的 rule 看上去虽…

制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

这是 OpenStack 实施经验分享系列的第 1 篇。 OpenStack 的 instance 是通过 Glance 镜像部署的&#xff0c;所以准备镜像是必须要做的工作。本节介绍 Linux 镜像的制作方法&#xff0c;后面还会讨论 Windows 镜像。 下载clould 镜像 最简单的方法是使用标准镜像。主流的Linux发…

NDIS与WinSock关系之自我扫盲

起来真是雷人&#xff0c;最近几天纠结与一个最基本的概念&#xff0c;就是NDIS与WinSock关系&#xff0c;想来想去都没有想明白&#xff0c;真实汗Ing&#xff0c;赶紧找了篇精美的文章来扫盲一下。 原文如下&#xff1a; 文章转自http://www.cnblogs.com/sankye/articles/16…