zoukankan      html  css  js  c++  java
  • 61031145 ERROR

    用户的问题总是千奇百怪,十之八九就是用户使用导致的。且看如下截图

    看起来是软件的问题,导致一些IO无法布过去,但是不然。用户代码并不多,所以隔离定位还是相对比较好定位的。通过分析简化后的代码贴出

    module mipi_lvds_trans (
    MDP_IN_HS,
    MCP_IN_HS,
    test_out,
    MDP_O_1,
    MDP_O_2
    );



    input wire MDP_IN_HS;
    input wire MCP_IN_HS;

    output wire MDP_O_1;
    output wire MDP_O_2;
    output wire[7:0] test_out;

    wire mid_clk;
    wire [7:0] dat_mid;
    wire [1:0]ser_o;


    assign test_out=dat_mid;
    assign MDP_O_1=ser_o[0];
    assign MDP_O_2=ser_o[1];

    wire mid_clk;

    /***********************************************

                        IDDRX4

    ***********************************************/

    otof_trans INST_1 (
    .alignwd(1'b0),
    .clk(MCP_IN_HS),
    .clk_s( ),
    .init(1'b1),
    .reset(1'b1 ),
    .rx_ready(rx_ready),
    .sclk(mid_clk),
    .datain(MDP_IN_HS),
    .q(dat_mid)
    );

    gear2 INST_2 (
    .clk_s(mid_clk ),
    .clkop(mid_clk ),
    .clkos(mid_clk ),
    .clkout(MCP1_O ),
    .lock_chk(tx_r ),
    .reset(1'b1 ),
    .sclk(sclk_o ),
    .tx_ready(tx_r ),
    .dataout(dat_mid ),
    .dout(ser_o)
    );
    /***********************************************

                        ODDRX4

    ***********************************************/

    /***********************************************

                        以下是约束文件

    ***********************************************/

    LOCATE COMP "MDP_O_2" SITE "D4" ;
    LOCATE COMP "MDP_O_1" SITE "A6" ;
    LOCATE COMP "MCP_IN_HS" SITE "E3" ;
    IOBUF PORT "MDP_O_1" IO_TYPE=LVDS25 ;
    IOBUF PORT "MDP_O_2" IO_TYPE=LVDS25 ;
    LOCATE COMP "MDP_IN_HS" SITE "f5" ;
    IOBUF PORT "MCP_IN_HS" IO_TYPE=LVDS25 ;
    IOBUF PORT "MDP_IN_HS" IO_TYPE=LVDS25 ;


    以上代码隔离的只剩两个IP了,再做一次隔离就知道问题出在哪个IP了。先隔离ODDRX4,PAR一遍,发现问题消失了,说明问题就出在ODDRX4。我们去看看UG是怎么说的,如下截图

    对比以下客户是怎么用这个IP的

    gear2 INST_2 (
    .clk_s(mid_clk ),
    .clkop(mid_clk ),
    .clkos(mid_clk ),
    .clkout(MCP1_O ),
    .lock_chk(tx_r ),
    .reset(1'b1 ),
    .sclk(sclk_o ),
    .tx_ready(tx_r ),
    .dataout(dat_mid ),
    .dout(ser_o))问题一看就明了了,用户没有用PLL去移相,.clkop(mid_clk ), .clkos(mid_clk ),这尼玛是相差90度相位的时钟(上图截图手册说了),用户既然给一样的时钟进去,你让我工具上天啊---也布线不过去啊啊。解决的办法有两个,一个外部加PLL解决,一个生成IP的时候,自动加入PLL。对后者截屏,如下

    修改过后再去PAR,一切就正常了。

    但是这样的方式是有局限性的,因为相位固定死了90度,假如数据还是踩偏移了怎么办呢,就要通过底层DELAY去做延时了,这样貌似就麻烦起来了。所以用户自己调用PLL是良策,这样就可以任意去调节相位了----------说说另外一个问题

    62001005 ERROR - Design is unrouteable due to invalid placement or locked signals.

     

    这个问题是怎么来的呢----是没有加管脚约束的时候PAR报出来的-------解决办法如上述。

     

  • 相关阅读:
    ios实现程序切入后台,实现后台任务 (转自)
    iOS 设置页面的代码编写
    IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果
    转载自@机智的新手:使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
    web前端基础知识-(六)web框架
    web前端基础知识-(五)jQuery
    web前端基础知识-(四)DOM
    web前端基础知识-(三)JavaScript基本操作
    web前端基础知识-(二)CSS基本操作
    web前端基础知识-(一)html基本操作
  • 原文地址:https://www.cnblogs.com/xiaozhuge/p/6582768.html
Copyright © 2011-2022 走看看