【转载】ise中常见ERROR和WARNING及其解决办法
(2010-11-04 10:39:23)
标签:
杂谈 |
【转载】ise中常见ERROR和WARNING及其解决办法2010-9-14 7:04:00
|
1."WARNING:Route:455 - CLK Net:trn_clk_OBUF may
have excessive skew
because 0 CLK pins and 1 NON_CLK pins failed to route using a CLK template." Solution This message informs the user that some loads on the clock net are not clock pins. Therefore, the clock template that is normally used to connect clock pins will not be used to connect the loads. A different routing that involves local routing will be used, potentially inducing some skew on the clock net. connected to the clock net, and the cause of the warnings. report. design, the skew reported in the PAR report is not critical for the design, and the timing constraint requirement on that net is met, then this warning can be safely ignored. aa=’1’),aa不是时钟信号,最多只是时钟信号产生的一类周期信号,aa被作为了另一个进程或模块的类似周期信号的作用。(我是在行场信号发生器中 出现的这样的问题,用产生的行同步信号(行同步信号是由全局时钟信号驱动产生的)再去驱动产生场同步信号,产生的场同步信号相对与输入的全局时钟,有一定 的倾斜) 2. "WARNING:Xst:647 - Input <name> is never used." or "WARNING:Xst:648 - Output <name> is never used." Solution This particular port has been declared in your HDL deion, but does not drive or is not driven by any internal logic. 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 deion. logic 0. To avoid the message and to save the port resource, remove the unused output port from your HDL deion. 'verilog' keyword, found 'work'。SolutionThis occurs when there are spaces embedded in the project location. C:/Documents and Settings/User/example.ise. C:/ISE_tests/example.ise. type in definition <def_name>" . Compare the component declaration and instantiation to the submodule that is instantiated. When this error occurs, the declaration matches the instantiation, but does not match the port declarations of the submodule. or the submodule port declarations so that they match. This error is specific to the types of ports in the submodule. cases, the generation of these log files can even cause an increase in runtime. How can I eliminate or hide certain frequently generated messages? For users of XST via Project Navigator filtering for all Xilinx tools. Please refer to the Project Navigator help on how to use this method. Synthesis steps in specific situations by using the XIL_XST_HIDEMESSAGES environment variable. This environment variable can have one of the following values: default. -- hdl_level: reduce verbosity during VHDL/Verilog Analysis and HDL Basic and Advanced Synthesis. -- low_level: reduce verbosity during Low-level Synthesis -- hdl_and_low_levels: reduce verbosity at all stages values are specified for the XIL_XST_HIDEMESSAGES environment variable: NOTE: This message is issued by the Verilog compiler only. comp. values are specified for the XIL_XST_HIDEMESSAGES environment variable: block. cleaning in the block block. You could achieve better results by setting this init to value. 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. Include all possible cases in the case statement 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 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; case when SEL = "11." To eliminate the latches, add another entry to deal with this possibility. 2'b11 : DOUT <= DIN2; when "11" => DOUT <= DIN2; 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. Assign to all the same outputs in each case. 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 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; 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. Make sure any "if / else if" statements have a concluding "else" clause: process (ge, din) begin if (ge = '1') then dout_a <= din; else dout_a <= '0'; "else" statement. end if; end process; always @(ge or din) if (ge) dout_a <= din; else dout_a <= 1'b0; statement. 在不影响电路功能的情况下,要写完整的if--else语句。(对于时钟沿触发时,是不要else的) 7.ERROR:Place:1018 - A clock IOB / clock component pair have been found that are not placed at an optimal clock IOB / clock site pair. The clock component <CLK16_inst> is placed at site <BUFGMUX_X0Y3>. The IO component <Ref_Clk_p> is placed at site <A8>. 解决方法:CLK16_inst和Ref_Clk只都用BUFG,或都用IBUFG.(个人验证解决问题,但不保证一定解决问题) 8.WARNING:PhysDesignRules:781 - PULLUP on an active net. PULLUP of comp Flash_rst_n is set but the tri state is not configured. Your problem is in the source code,not your constraints. It's就是非输入加上拉后,没有配置三态。这是程序的出错,不关constraints。 |
后一篇:转载ise9.1 使用总结

加载中…