0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個FPGA布局布線的報錯問題

FPGA研究院 ? 來源:數(shù)字站 ? 2024-10-24 14:05 ? 次閱讀

從最初學(xué)FPGA到現(xiàn)在,遇到過太多bug,但都沒有寫過博客記錄,因為多數(shù)問題都比較簡單且網(wǎng)上有比較好的答案。

但最近發(fā)現(xiàn)一個布局布線的報錯,并不是因為邏輯導(dǎo)致的,而是用戶不清楚布局布線導(dǎo)致的,且網(wǎng)上基本上相關(guān)的解答,因此把原因分析出來。

01 相關(guān)問題報錯

最近一些群友碰到了如下問題,報錯信息為:

[Place 30-719] Sub-optimal placement for a global clock-capable IO pin-IDELAY-BUFG pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.

< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets dclk_r] >

u_IDELAYE2 (IDELAYE2.DATAOUT) is locked to IDELAY_X0Y78

and dclk_r_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y1。

03eb95aa-91ad-11ef-a511-92fbcf53809c.png

0403ca30-91ad-11ef-a511-92fbcf53809c.png

圖1 place 30-719報錯

按照錯誤提示,在xdc中添加如下約束,然后重新綜合、布局布線。

040f16c4-91ad-11ef-a511-92fbcf53809c.png

圖2 添加約束

然后出現(xiàn)如下錯誤,很多人可能會直接出現(xiàn)下面的錯誤,原因都是一樣的。 報錯信息:

[Place 30-650] Non IO buffer dclk_IBUF_BUFG_inst{BUFG} is driving IDATAIN pin of IDELAY instance u_IDELAYE2. This will lead to unroutable situation. IDATAIN pin of IDELAY instance should always get signal from IO buffer or GND.

[Place 30-99] Placer failed with error: 'Implementation Feasibility check failed, Please see the previously displayed individual error or warning messages for more details.'

Please review all ERROR, CRITICAL WARNING, and WARNING messages during placement to understand the cause for failure.

[Common 17-69] Command failed: Placer could not place all instances

043c8b72-91ad-11ef-a511-92fbcf53809c.png

04409a46-91ad-11ef-a511-92fbcf53809c.png

圖3 報錯信息

上述報錯其實很奇怪,因為程序中idelaye2的IDATAIN是連接到FPGA輸入管腳的,并沒有什么問題,報錯不是很準(zhǔn)確。

這個錯誤在網(wǎng)上好像還沒有具體的講解,本文解析一下具體原因,以及如何避免。

02復(fù)現(xiàn)錯誤

之所以出現(xiàn)這個問題,是由于不了解信號進入fpga的走線,錯誤使用idelaye信號導(dǎo)致的。

提供如下例程,輸入時鐘dclk與輸入數(shù)據(jù)din對齊,為了穩(wěn)定采集輸入數(shù)據(jù),內(nèi)部使用idelaye2對dclk延時24.72ns。然后內(nèi)部使用兩個ila,分別查看dclk延時前后采集到的輸入數(shù)據(jù)是否一致。

//--###############################################################################################
//--#
//--# File Name    : top
//--# Designer    : 數(shù)字站
//--# Tool      : Vivado 2017.4
//--# Design Date  : 2024
//--# Description  : 
//--# Version    : 0.0
//--# Coding scheme  : GBK(If the Chinese comment of the file is garbled, please do not save it and check whether the file is opened in GBK encoding mode)
//--#
//--###############################################################################################
module top (
    input                  clk        ,//系統(tǒng)時鐘信號;
    input                  rst        ,//系統(tǒng)復(fù)位信號,高電平有效;
    input                               dclk        ,//串行時鐘輸入;
    input                        din        ,//輸入數(shù)據(jù);
    output reg                      dout       //輸出數(shù)據(jù)信號;
);
    reg     [9 : 0]                     din_r       ;


    wire                                dclk_r      ;
    wire                                clk_200m    ;


    //例化鎖相環(huán),生成idelaye2需要的200MHz時鐘信號;
    clk_wiz_0 u_clk_wiz (
        .clk_out1   ( clk_200m  ),// output clk_out1
        .reset      ( rst       ),// input reset
        .clk_in1    ( clk       ) // input clk_in1
    );


    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYCTRL u_IDELAYCTRL (
        .RDY    (           ),// 1-bit output: Ready output
        .REFCLK ( clk_200m  ),// 1-bit input: Reference clock input
        .RST    ( rst       ) // 1-bit input: Active high reset input
    );


    //例化idelaye2對時鐘信號進行延時24*78+600=24.72ns;
    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYE2 #(
        .CINVCTRL_SEL           ("FALSE"    ),//Enable dynamic clock inversion (FALSE, TRUE)
        .DELAY_SRC              ("IDATAIN"  ),//Delay input (IDATAIN, DATAIN)
        .HIGH_PERFORMANCE_MODE  ("FALSE"    ),//Reduced jitter ("TRUE"), Reduced power ("FALSE")
        .IDELAY_TYPE            ("FIXED"    ),//FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
        .IDELAY_VALUE           (24         ),//Input delay tap setting (0-31)
        .PIPE_SEL               ("FALSE"    ),//Select pipelined mode, FALSE, TRUE
        .REFCLK_FREQUENCY       (200.0      ),//IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
        .SIGNAL_PATTERN         ("CLOCK"    ) //DATA, CLOCK input signal
    )
    u_IDELAYE2 (
        .CNTVALUEOUT    (               ),//5-bit output: Counter value output
        .DATAOUT        ( dclk_r        ),//1-bit output: Delayed data output
        .C              ( clk_200m      ),//1-bit input: Clock input
        .CE             ( 1'b1          ),//1-bit input: Active high enable increment/decrement input
        .CINVCTRL       ( 'd0           ),//1-bit input: Dynamic clock inversion input
        .CNTVALUEIN     ( 'd0           ),//5-bit input: Counter value input
        .DATAIN         ( 'd0           ),//1-bit input: Internal delay data input
        .IDATAIN        ( dclk          ),//1-bit input: Data input from the I/O
        .INC            ( 'd0           ),//1-bit input: Increment / Decrement tap delay input
        .LD             ( 'd0           ),//1-bit input: Load IDELAY_VALUE input
        .LDPIPEEN       ( 'd0           ),//1-bit input: Enable PIPELINE register to load data input
        .REGRST         ( rst           ) //1-bit input: Active-high reset tap-delay input
    );


    //移位輸出數(shù)據(jù);
    always@(posedge dclk_r)begin
        {dout,din_r[9:0]} <= {din_r[9:0],din};
    end


    //ila使用延時前的時鐘采集din_r的數(shù)據(jù);
    ila_0 u_ila_0 (
        .clk    (dclk   ),// input wire clk
      .probe0 (din_r  ) // input wire [9:0] probe0
    );


    //ila使用延時后的時鐘采集din_r的數(shù)據(jù);
    ila_0 u_ila_1 (
        .clk    (dclk_r ),// input wire clk
      .probe0 (din_r  ) // input wire [9:0] probe0
    );


endmodule

上述例程的邏輯思路和代碼大家應(yīng)該都能夠理解,也沒有邏輯錯誤。然后使用vivado創(chuàng)建工程,綜合,分配管教腳,最后布局布線。

綜合不會出現(xiàn)問題,因為沒有邏輯和語法錯誤,但布局布線后會出現(xiàn)圖3的錯誤,如下圖所示。

044f5f40-91ad-11ef-a511-92fbcf53809c.png

圖4 復(fù)現(xiàn)問題

03分析問題

是不是覺得很離譜?邏輯沒問題,為什么布局布線失敗。

需要通過正常的工程,才能分析出錯誤的原因,因此先將兩個ila相關(guān)的代碼注釋掉,如下所示。

//--###############################################################################################
//--#
//--# File Name    : top
//--# Designer    : 數(shù)字站
//--# Tool      : Vivado 2017.4
//--# Design Date  : 2024
//--# Description  : 
//--# Version    : 0.0
//--# Coding scheme  : GBK(If the Chinese comment of the file is garbled, please do not save it and check whether the file is opened in GBK encoding mode)
//--#
//--###############################################################################################
module top (
    input                  clk        ,//系統(tǒng)時鐘信號;
    input                  rst        ,//系統(tǒng)復(fù)位信號,高電平有效;
    input                               dclk        ,//串行時鐘輸入;
    input                        din        ,//輸入數(shù)據(jù);
    output reg                      dout       //輸出數(shù)據(jù)信號;
);
    reg     [9 : 0]                     din_r       ;


    wire                                dclk_r      ;
    wire                                clk_200m    ;


    //例化鎖相環(huán),生成idelaye2需要的200MHz時鐘信號;
    clk_wiz_0 u_clk_wiz (
        .clk_out1   ( clk_200m  ),// output clk_out1
        .reset      ( rst       ),// input reset
        .clk_in1    ( clk       ) // input clk_in1
    );


    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYCTRL u_IDELAYCTRL (
        .RDY    (           ),// 1-bit output: Ready output
        .REFCLK ( clk_200m  ),// 1-bit input: Reference clock input
        .RST    ( rst       ) // 1-bit input: Active high reset input
    );


    //例化idelaye2對時鐘信號進行延時24*78+600=24.72ns;
    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYE2 #(
        .CINVCTRL_SEL           ("FALSE"    ),//Enable dynamic clock inversion (FALSE, TRUE)
        .DELAY_SRC              ("IDATAIN"  ),//Delay input (IDATAIN, DATAIN)
        .HIGH_PERFORMANCE_MODE  ("FALSE"    ),//Reduced jitter ("TRUE"), Reduced power ("FALSE")
        .IDELAY_TYPE            ("FIXED"    ),//FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
        .IDELAY_VALUE           (24         ),//Input delay tap setting (0-31)
        .PIPE_SEL               ("FALSE"    ),//Select pipelined mode, FALSE, TRUE
        .REFCLK_FREQUENCY       (200.0      ),//IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
        .SIGNAL_PATTERN         ("CLOCK"    ) //DATA, CLOCK input signal
    )
    u_IDELAYE2 (
        .CNTVALUEOUT    (               ),//5-bit output: Counter value output
        .DATAOUT        ( dclk_r        ),//1-bit output: Delayed data output
        .C              ( clk_200m      ),//1-bit input: Clock input
        .CE             ( 1'b1          ),//1-bit input: Active high enable increment/decrement input
        .CINVCTRL       ( 'd0           ),//1-bit input: Dynamic clock inversion input
        .CNTVALUEIN     ( 'd0           ),//5-bit input: Counter value input
        .DATAIN         ( 'd0           ),//1-bit input: Internal delay data input
        .IDATAIN        ( dclk          ),//1-bit input: Data input from the I/O
        .INC            ( 'd0           ),//1-bit input: Increment / Decrement tap delay input
        .LD             ( 'd0           ),//1-bit input: Load IDELAY_VALUE input
        .LDPIPEEN       ( 'd0           ),//1-bit input: Enable PIPELINE register to load data input
        .REGRST         ( rst           ) //1-bit input: Active-high reset tap-delay input
    );


    //移位輸出數(shù)據(jù);
    always@(posedge dclk_r)begin
        {dout,din_r[9:0]} <= {din_r[9:0],din};
    end


    //ila使用延時前的時鐘采集din_r的數(shù)據(jù);
    //ila_0 u_ila_0 (
    //    .clk    (dclk   ),// input wire clk
    //  .probe0 (din_r  ) // input wire [9:0] probe0
    //);


    //ila使用延時后的時鐘采集din_r的數(shù)據(jù);
    //ila_0 u_ila_1 (
    //    .clk    (dclk_r ),// input wire clk
    //  .probe0 (din_r  ) // input wire [9:0] probe0
    //);


endmodule
重新綜合、實現(xiàn)工程后,在“IMPLEMENTATION”界面下雙擊“open Implemented Design”,如下所示。045a1106-91ad-11ef-a511-92fbcf53809c.png

0472a00e-91ad-11ef-a511-92fbcf53809c.png

圖5 打開布局布線

在“Device”界面中找到DCLK引腳,如下圖所示。

047f9b10-91ad-11ef-a511-92fbcf53809c.png

圖6 Device界面

如下圖所示,首先點擊圖中1處,就能查看芯片內(nèi)部的實際走線了,如下圖所示,左邊為DCLK對應(yīng)的管腳,信號進入管腳后,沿著綠色的走線,先到達idelaye2的輸入,經(jīng)過延時后輸出到ILOGIC。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

04a0577e-91ad-11ef-a511-92fbcf53809c.png

圖7 DCLK輸入走線

將上圖中idelaye2和ilogic部分放大,如下圖所示,藍色走線是DCLK管腳輸入,紅色是idelaye2輸出繞過ilogic進入FPGA內(nèi)部邏輯的走線。

wKgaomcZ5IaADRQuAAGVGU1WRgU324.jpg

圖8 信號走線

上述是輸入信號進入FPGA管腳,經(jīng)過idelaye2延時,繞過ilogic進入FPGA內(nèi)部邏輯的走線。注意這部分是專用走線(固定不變的走線,只要使用idelaye2,不使用ilogic,走線就不會變),不是可編程的。

同時用戶需要知道,外部信號進入FPGA管腳后,只有經(jīng)過ilogic(包括繞過)才能被FPGA內(nèi)部邏輯所使用。

接下來分析不使用idelaye2的信號輸入走線,找到din信號對應(yīng)管腳,如下圖所示。

wKgZomcZ5IaAdA4pAADZmLQCvms443.jpg

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

圖9 din進入fpga走線

放大din在ilogic部分的走線,如下所示。din的管腳輸入信號不經(jīng)過idelaye2,同時繞過ilogic后輸入到FPGA內(nèi)部邏輯。

wKgaomcZ5IaASqRBAAEUqxpjNbE900.jpg

圖10 din的ilogic走線

對比圖8和圖10就能找到前文出現(xiàn)錯誤的原因了。如果使用了經(jīng)過idelaye2延時前后的同一個管腳輸入信號,該如何走線?

如下圖所示,在進入內(nèi)部邏輯之前,都需要繞過ilogic。藍色和紫色為idelaye2延時前的信號進入內(nèi)部邏輯的走線,而紅色和紫色為idelaye2延時后的信號進入內(nèi)部邏輯的走線,紫色為兩個信號重合的走線。

一根線不能同時傳輸兩個信號,因此布局布線失敗。

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZomcZ5IWAWwY1AAEkFbHP4E0056.jpg

圖11 idelaye2延時前后的信號走線

回到前文的問題,ila0使用了dclk沒有經(jīng)過idlaye2延時的信號作為時鐘信號,而ila1使用dclk經(jīng)過idelaye2延時后的信號作為時鐘信號。

同時使用了dclk延時前后的信號,最終導(dǎo)致布局布線失敗。

04解決辦法

上述問題的原因就是內(nèi)部邏輯同時使用idelaye2延時前后的兩個信號導(dǎo)致的,最直接的方法就是不這么去用,始終只使用其中一個就可以避免。

如果實在要這么用,也有其他方法,只不過會導(dǎo)致管腳到idelaye2的走線比較長,而且不是專用走線(每次布局后如果idelaye2位置發(fā)生變化,則走線延時也會變),引入的延時不穩(wěn)定性會導(dǎo)致調(diào)試很麻煩,且不易于移植,一般不建議這么做。

具體實現(xiàn)思路是,既然內(nèi)部要同時使用idelaye2延時前后的信號,而dclk引腳繞過ilogic的走線知有一條,那么就先讓不經(jīng)過idelaye2的信號進入內(nèi)部邏輯,然后在使用其余管腳的idelaye2來對輸入的信號進行延時,這樣不就解決了?

對應(yīng)代碼如下所示,將兩個ila的注釋取消,同時將idelaye2的DELAY_SRC參數(shù)設(shè)置為DATAIN,輸入來自內(nèi)部邏輯。

//--###############################################################################################
//--#
//--# File Name    : top
//--# Designer    : 數(shù)字站
//--# Tool      : Vivado 2017.4
//--# Design Date  : 2024
//--# Description  : 
//--# Version    : 0.0
//--# Coding scheme  : GBK(If the Chinese comment of the file is garbled, please do not save it and check whether the file is opened in GBK encoding mode)
//--#
//--###############################################################################################
module top (
    input                  clk        ,//系統(tǒng)時鐘信號;
    input                  rst        ,//系統(tǒng)復(fù)位信號,高電平有效;
    input                               dclk        ,//串行時鐘輸入;
    input                        din        ,//輸入數(shù)據(jù);
    output reg                      dout       //輸出數(shù)據(jù)信號;
);
    reg     [9 : 0]                     din_r       ;


    wire                                dclk_r      ;
    wire                                clk_200m    ;


    //例化鎖相環(huán),生成idelaye2需要的200MHz時鐘信號;
    clk_wiz_0 u_clk_wiz (
        .clk_out1   ( clk_200m  ),// output clk_out1
        .reset      ( rst       ),// input reset
        .clk_in1    ( clk       ) // input clk_in1
    );


    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYCTRL u_IDELAYCTRL (
        .RDY    (           ),// 1-bit output: Ready output
        .REFCLK ( clk_200m  ),// 1-bit input: Reference clock input
        .RST    ( rst       ) // 1-bit input: Active high reset input
    );


    //例化idelaye2對時鐘信號進行延時24*78+600=24.72ns;
    (* IODELAY_GROUP = "IODELAY_0" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    IDELAYE2 #(
        .CINVCTRL_SEL           ("FALSE"    ),//Enable dynamic clock inversion (FALSE, TRUE)
        .DELAY_SRC              ("DATAIN"   ),//Delay input (IDATAIN, DATAIN)
        .HIGH_PERFORMANCE_MODE  ("FALSE"    ),//Reduced jitter ("TRUE"), Reduced power ("FALSE")
        .IDELAY_TYPE            ("FIXED"    ),//FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
        .IDELAY_VALUE           (24         ),//Input delay tap setting (0-31)
        .PIPE_SEL               ("FALSE"    ),//Select pipelined mode, FALSE, TRUE
        .REFCLK_FREQUENCY       (200.0      ),//IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
        .SIGNAL_PATTERN         ("CLOCK"    ) //DATA, CLOCK input signal
    )
    u_IDELAYE2 (
        .CNTVALUEOUT    (               ),//5-bit output: Counter value output
        .DATAOUT        ( dclk_r        ),//1-bit output: Delayed data output
        .C              ( clk_200m      ),//1-bit input: Clock input
        .CE             ( 1'b1          ),//1-bit input: Active high enable increment/decrement input
        .CINVCTRL       ( 'd0           ),//1-bit input: Dynamic clock inversion input
        .CNTVALUEIN     ( 'd0           ),//5-bit input: Counter value input
        .DATAIN         ( dclk          ),//1-bit input: Internal delay data input
        .IDATAIN        ( 'd0           ),//1-bit input: Data input from the I/O
        .INC            ( 'd0           ),//1-bit input: Increment / Decrement tap delay input
        .LD             ( 'd0           ),//1-bit input: Load IDELAY_VALUE input
        .LDPIPEEN       ( 'd0           ),//1-bit input: Enable PIPELINE register to load data input
        .REGRST         ( rst           ) //1-bit input: Active-high reset tap-delay input
    );


    //移位輸出數(shù)據(jù);
    always@(posedge dclk_r)begin
        {dout,din_r[9:0]} <= {din_r[9:0],din};
    end


    //ila使用延時前的時鐘采集din_r的數(shù)據(jù);
    ila_0 u_ila_0 (
        .clk    (dclk   ),// input wire clk
      .probe0 (din_r  ) // input wire [9:0] probe0
    );


    //ila使用延時后的時鐘采集din_r的數(shù)據(jù);
    ila_0 u_ila_1 (
        .clk    (dclk_r ),// input wire clk
      .probe0 (din_r  ) // input wire [9:0] probe0
    );


endmodule

050c1c98-91ad-11ef-a511-92fbcf53809c.png

圖12 idelaye2對內(nèi)部信號延時

重新綜合、布局布線,然后打開“Device”界面,找到dclk引腳。如下圖所示DCLK進入FPGA后,通過藍色走線到達bufg輸入,然后經(jīng)過粉色走線到達右上角的一個管腳的idelaye2,然后黃色走線是idelaye2輸出信號。

0521cc78-91ad-11ef-a511-92fbcf53809c.png

圖13 修改后的布局

由此可知采用這種方式時藍色、粉色、黃色走線都是很長的,導(dǎo)致延時特別大,有興趣的用戶可以看下時序報告,這個延時可能會比idelaye2能夠調(diào)節(jié)范圍還大,因此不建議使用。

這種使用方式不同芯片的idelaye2布局也基本上不相同,所以移植其實也麻煩。

除了約束以外,可以利用某些手段(比如bufr)去限制idelaye2布局位置,來減小走線延時,但相比專用走線,還是沒有優(yōu)勢。

這種問題能夠體現(xiàn)對于底層器件的理解,平時有時間可以留意一下器件布局布線的方式。

來源: 本文轉(zhuǎn)載自數(shù)字站公眾號

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600690
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1704

    瀏覽量

    131198
  • 布線
    +關(guān)注

    關(guān)注

    9

    文章

    758

    瀏覽量

    84259
  • 輸入信號
    +關(guān)注

    關(guān)注

    0

    文章

    437

    瀏覽量

    12516

原文標(biāo)題:輸入信號繞過ilogic布線沖突引發(fā)的問題(idelaye2使用)

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    菜鳥想請教關(guān)于布局布線和chipshope的問題。

    小白剛?cè)腴TFPGA2月。?!,F(xiàn)在我的工程經(jīng)過modelsim仿真后,數(shù)據(jù)初步驗證是沒問題的,然后添加了簡單的全局約束,時序報告顯示slack都是正數(shù),沒有報錯。接著系統(tǒng)自動布線,但是
    發(fā)表于 09-02 13:51

    FPGA去耦電容如何布局布線

    `各位大神,請問FPGA去耦電容如何布局布線?1.根據(jù)文檔,般去耦電容的數(shù)量都少于電源引腳,那么去耦電容要放到哪些管腳旁邊呢?2.以下三種方案哪種好?2.1電容放在PCB top層
    發(fā)表于 08-22 14:57

    PCB布局布線求解!

    PCB布局布線時,是先布局,還是邊布局布線,最近做了塊板子,
    發(fā)表于 04-03 09:00

    PCB布局布線的設(shè)計技巧

    和約束條件會影響布局設(shè)計。自動布線工具次只會考慮信號,通過設(shè)置布線的約束條件以及設(shè)定可布信
    發(fā)表于 11-22 15:25

    利用飛線手工布局布線

    印制板的布線是否能夠順利完成,主要取決于布局,而且,
    發(fā)表于 04-16 20:37 ?609次閱讀

    布局布線技術(shù)的發(fā)展

    布局布線技術(shù)的發(fā)展 摘要:隨著微孔和單片高密度集成系統(tǒng)等新硬件技術(shù)的應(yīng)用,自由角度布線、自動布局和3D布局
    發(fā)表于 03-25 11:26 ?677次閱讀

    pcb布線心得(流程詳解、元件布局布線與EMC)

    pcb布線技巧,輕松搞定布線、布局,主要包括:、元件布局基本規(guī)則;二、元件布線規(guī)則;為增加系統(tǒng)
    發(fā)表于 11-03 17:02 ?3949次閱讀

    PCB布局布線的100基本問題解答

    在電子產(chǎn)品設(shè)計中,PCB 布局布線是最重要的步,PCB 布局布線的好壞將直接影響電路的性能。現(xiàn)在,雖然有很多軟件可以實現(xiàn)PCB 自動
    的頭像 發(fā)表于 03-20 10:03 ?9397次閱讀

    PCB設(shè)計布局布線技巧分享

    工程師往往更關(guān)注電路的設(shè)計、最新的元器件以及代碼,認為這些才是電子產(chǎn)品項目中的重要部分,卻忽略了PCB布局、布線這個關(guān)鍵的環(huán)節(jié)。如果PCB布局
    發(fā)表于 09-13 08:00 ?1.1w次閱讀

    FPGA設(shè)計的塑封式布局布線介紹

    環(huán)境中實施從合成到塑封式布局布線以及比特流生成的全套 FPGA 設(shè)計。界面中內(nèi)置了用于運行布局
    的頭像 發(fā)表于 05-17 06:06 ?2821次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計的塑封式<b class='flag-5'>布局</b>和<b class='flag-5'>布線</b>介紹

    FPGA布局布線

    布局布線 PlaceRoute 1 布局 我們前面做的那些設(shè)計流程得到的LUT門級網(wǎng)表就好比購物清單,即LUT門級網(wǎng)表。網(wǎng)表里提供的僅僅
    的頭像 發(fā)表于 10-25 10:25 ?8194次閱讀
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>布局</b><b class='flag-5'>布線</b>

    FPGA設(shè)計的五主要任務(wù)

    FPGA設(shè)計的五主要任務(wù):邏輯綜合、門級映射、整體功能邏輯布局、邏輯資源互連布線,最后生成FPGA的bit流
    的頭像 發(fā)表于 04-06 09:39 ?936次閱讀

    PCB布局布線技巧104問

    在電子產(chǎn)品設(shè)計中,PCB布局布線是最重要的步,PCB布局布線的好壞將直接影響電路的性能?,F(xiàn)在,雖然有很多軟件可以實現(xiàn)PCB自動
    發(fā)表于 05-05 15:34 ?0次下載

    fpga布局布線算法加速

    現(xiàn)代電子設(shè)備中,針對復(fù)雜的數(shù)字電路,FPGA(Field-Programmable Gate Array)是種非常優(yōu)秀的可編程邏輯器件。在FPGA的設(shè)計過程中,布局
    的頭像 發(fā)表于 12-20 09:55 ?687次閱讀

    FPGA布局布線的可行性 FPGA布局布線失敗怎么辦

    隨著電子技術(shù)的進步.FPGA邏輯電路能完成的功能越來越多,同樣也帶來了很大的問題,即邏輯電路的規(guī)模越來越大,這意味著RTL代碼到FPGA的映射、
    的頭像 發(fā)表于 03-18 10:57 ?724次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b><b class='flag-5'>布線</b>的可行性 <b class='flag-5'>FPGA</b><b class='flag-5'>布局</b><b class='flag-5'>布線</b>失敗怎么辦