ISE使用出现的错误和警告整理

记录使用ISE过程中出现的问题和解决办法,与大家分享,也留作今后查看。不断更新中。。。

2013.3.22之前几天

1. WARNING:PhysDesignRules:372 - Gated clock. Clock net clkb_OBUF is sourced by a

   combinatorial pin. This is not good design practice. Use the CE pin to

   control the loading of data into the flip-flop.

   Phase 10  : 0 unrouted; WARNING:Route:455 - CLK Net:clkb_OBUF may have excessive skew because

错误或警告原因:

assign clkb = en ? clk : 0;

…….

always @(posedge clkb or negedge rst_n)  

begin

       ...............

end

说明:在时序电路设计中,尽量使用全局时钟,而不要用由全局时钟衍生出来的信号。

 

2. WARNING:Route:455 - CLK Net:U1/uart_rxd_submodule/one_char may have excessive skew because  1 CLK pins and 4 NON_CLK pins failed to route using a CLK template.

错误或警告原因:有的可能是always @(posedge clk。。。)里用的不是全局时钟而是由全局时钟产生的信号驱动的,导致信号偏移较大。而我的设计中所有的always驱动列表都是正确的。经过一段时间的思考和尝试,发现是将一个产生的信号one_char赋给了双口ram写时钟clka造成的。

说明:dpram的读和写都需要一个时钟,一个使能,地址线和数据线。起初,我将使能一直为高,通过控制时钟脉冲实现将数据写入或读出dpram。可是,一般不这样设计。而采用将时钟连接到全局时钟上,通过控制使能高低来实现读写数据。

2013.3.22

3. ERROR:HDLCompiler:849-"F:/Yunpan360/MyProject/LED_Sync/modules/ISE/uart2ethernet/codes/uart2ethernet_tb.v" Line 2: Unexpected EOF.

错误和警告原因:测试文件不能例化被测模块。经过一个上午的找错,没有发现有语法上的问题,也没有发现如标点符号格式的错误。

解决办法:将整个测试文件的代码粘贴到写字板上,在写字板上复制所有内容,重新粘贴到测试文件上。问题得到了解决。

4. ERROR:HDLCompiler:44-"F:/Yunpan360/MyProject/LED_Sync/modules/ISE/uart2ethernet/codes/uart2ethernet_tb.v" Line 98: i is not a constant 

错误或警告原因:代码中:integer i;

                                  reg [7:0] aaa;

                                  aaa[i+7:i]

        向量寄存器的位值必须是个常数或常量,不能用变量表示。

解决办法:用i当做移位次数对aaa进行移位取值。

posted @ 2013-03-22 14:27  中华小虾  阅读(8117)  评论(0编辑  收藏  举报