吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

深度解析FPGA中的時序約束

FPGA研究院 ? 來源:網絡交換FPGA ? 2024-08-06 11:40 ? 次閱讀

基本概念

建立時間和保持時間是FPGA時序約束中兩個最基本的概念,同樣在芯片電路時序分析中也存在。

電路中的建立時間和保持時間其實跟生活中的紅綠燈很像,建立時間是指在綠燈(clk的上升沿)亮起之前行人或者車輛(data數據)在路口提前等待的時間(只允許綠燈亮起的一剎那在路口的車輛才允許通行),而保持時間,則是綠燈亮起后必須保持的時間,這樣行人或者數據才能夠通過這個十字路口,否則hold時間就不滿足。

同時,紅綠燈默認都是周期性的(clk也是周期性的),車輛不允許在兩個相鄰的紅綠燈之間通過的時間超過一個clk的周期(組合邏輯時延不能過大)。

建立時間(Tsu) :是指在時鐘沿到來之前數據從不穩定到穩定所需的時間,如果建立的時間不滿足要求,在時鐘上升沿,寄存器將不能正確采到數據值。如下圖(左)所示:

保持時間(Th) :是指在時鐘上升沿后數據保持穩定的時間,如果保持時間不滿足要求那么數據同樣也不能被正確采集到。保持時間示意圖如下圖(右)所示:

wKgZomaxm5GANLAYAABAJke55n8483.jpg

如圖1.3,這是一個FPGA輸入數據的模型,輸入端口到第一個寄存器之間的路徑需要進行時序約束。

一般我們需要告知FPGA輸入輸出接口的最大最小延遲,使EDA工具在進行布局布線時能夠盡可能的優化輸入端口到第一級寄存器之間的延遲,使FPGA中時鐘的上升沿能夠正確采集到輸入的數據。

sdc約束中,輸入延時是從上游器件發出數據到FPGA輸入端口的延時時間。如圖,1.4所示,輸入接口時序清楚反應了FPGA在接收數據時應滿足的建立和保持時間要求。

wKgaomaxm5GAUpoDAABjTsKSpK4975.jpg

wKgZomaxm5GAQidHAACEmgj7EDY903.jpg

說明:

OSC :系統時鐘

ASSP.CLk :外部器件寄存器的時鐘

ASSP.Q :外部器件數據輸出

FPGA.D :FPGA數據輸入

FPGA.CLK :FPGA內部寄存器的時鐘

Tclk1 :系統時鐘到外部器件之間的延時

Tclk2 :系統時鐘到FPGA之間的延時

Tco :數據經過外部器件寄存器輸出后相對于ASSP.CLK的偏移

Tpcb :數據在pcb電路板上的延時

FTsu :FPGA上寄存器的建立時間要求

FTh :FPGA上寄存器的保持時間要求

setup slack :建立時間余量,必須大于等于0才能滿足建立時間的時序要求

hold slack :保持時間余量,必須大于等于0才能滿足保持時間的時序要求

T: 系統時鐘頻率

wKgaomaxm5GAU8y_AAC-nVqtaIQ768.jpg

wKgZomaxm5KABiyBAAC42eafN0M696.jpg

c. 輸出延時即為FPGA輸出數據后到達外部器件的延時時間。如1.7所示,為FPGA和外部器件接口時序圖。

wKgZomaxm5KAEYw8AACBJP8myGY340.jpg

wKgaomaxm5KAdgiJAACy6XObabg657.jpg

wKgZomaxm5GAURgnAABOSBdjxqs087.jpg

系統同步和源同步接口

系統同步中數據發送器和數據接收器在同一時鐘源下同步工作,發送器和接收器之間只傳遞數據,數據的時序關系以系統時鐘作為參考。

所謂源同步接口是指發送器和接收器之間傳送數據時同時傳一個和數據保持特定相位關系的時鐘,接收器就可以根據這個時鐘的相位來準確采集相應的數據。如圖所示,分別是系統同步和源同步接口示例圖。

wKgaomaxm5KAdBVSAABOihKSxro655.jpg

在系統同步接口中,系統時鐘到發送器和接收器之間的時延很難確定,所以接收器比較難確定時鐘和數據之間的相位關系,采集到的數據很難保證正確。

所以系統時鐘只適用于低速時鐘低速數據的收發。而源同步接口的好處就在于可以以較高的頻率高速收發數據,數據和時鐘由發送器同步給出,在電路板上數據和時鐘布線等長,時延相等,接收器接收到的數據和時鐘的相位關系基本保持不變。

所以對于源同步接口的時序約束也較為簡單,我們只需要告訴FPGA上游芯片發送端口數據和時鐘的相對關系,FPGA布局布線時就會調整時鐘和數據的布線長度,使接收數據時滿足時序要求。

GMII的數據收發就是一個典型的源同步接口。MAC接收數據的時鐘Rx_clk和數據Rxd由上游PHY同步給出;MAC發送數據時發送時鐘Gtx_clk和數據Txd也是同步給到PHY,所以我們對于GMII接口的時序約束就可以按照源同步接口的方法。

wKgZomaxm5GAAaN3AAFWqMu9Jik045.jpg

SOC系統的時序接口及約束

若系統外部PHY芯片的型號是RTL8211EG,其芯片手冊中給出了PHY接口處的時序,如圖所示:

wKgaomaxm5GAbJSBAAG_uzJiffw832.jpg

RTL8211EG芯片GMII接口時序關系

對于輸入時鐘的約束

wKgaomaxm5GARrjPAABcbfs9bjA130.jpg

時鐘輸入接口約束

GMII接口的Rx_clk時鐘是125MHZ,頻率較高。這時由外部器件進入FPGA內部的時鐘可能不穩定,采集Rxd數據時會有影響,這時我們應先對輸入的時鐘進行約束。

如果不加PLL,即直接時鐘模式,一般不改變時鐘特性直接進行數據采集,這通常適用于低速輸入且中心對齊的單速率源同步接口;如果在輸入端加一個PLL,即采用PLL時鐘模式,PLL可對時鐘與數據的關系進行精確調整,適用于高速輸入的中心對齊和邊沿對齊的源同步接口。因此,使用PLL時鐘對調整FPGA的接口時序有很大幫助。

由圖1.4中輸入時序接口可以看出Tco即為時鐘上升沿與數據的偏移,則RTL8211EG中MAC接收端口Tco(max) =T-tR/2-tGSUT=8-0.5-2.5=5ns,最小Tco(min)=tGHTT+ tR/2=1ns,

故相對于Rx_clk的輸入最大最小延時

input delay max = Tco(max) =5ns

input delay min = Tco(min) =1ns

以上的約束的輸入延時是相對于輸入時鐘Rx_clk的約束,在sdc約束中我們還可以設置一個虛擬時鐘(可以假設是上游器件寄存器的驅動時鐘,用于計算源器件的啟動沿),源同步接口輸入數據以這個虛擬時鐘為參考輸入FPGA,所以當我們聲明輸入延時時就可以以這個虛擬時鐘作為啟動時鐘。使用虛擬時鐘約束輸入延時的好處是可以是約束更加方便、更加精確。

輸入約束的時延值可以理解為有效數據沿相對于時鐘的偏移,如果時延值為正說明數據相對于時鐘向后偏移,時延為負說明數據相對于時鐘向前偏移。根據上面描述輸入數據相對于輸入時鐘Rx_clk的最大最小延時分別為1ns和5ns,下面我們計算輸入數據相對于虛擬時鐘vir_clk的延時值。

取Rx_clk的上升下降時間分別為0、4ns(周期8ns),取數據時延Tco的平均值3ns為vir_clk相對于Rx_clk的偏移,即vir_clk的上升下降時間分別為3、7ns。

根據下圖所示,當Tco取1ns時,Rxd有效時相對于Rx_clk上升沿偏移1ns,相對于vir_clk上升沿偏移-2ns;當Tco取5ns時,Rxd有效時相對于Rx_clk上升沿偏移5ns,相對于vir_clk偏移2ns。

wKgaomaxm5KANdUcAAAN_SQd1Uk916.jpg

Tco取最小值時Rxd相對于vir_clk關系圖

wKgZomaxm5KAGiu5AAAN-l-zBAY988.jpg

Tco取最大值時Rxd相對于vir_clk關系圖

根據上述描述,我們以虛擬時鐘vir_clk為參考時鐘,約束如下:

wKgaomaxm5KARUUtAAEYLu8aXr0376.jpg

sdc中的輸入延時約束

當然,我們也可以用Rx_clk作為參考來約束輸入延時,但是quartus在布局布線時,以輸入時鐘為參考的約束不夠精確,有時仍會出現時序錯誤。

對于GMII發送數據約束時,由于發送時鐘和發送數據布線時延可忽略,故FPGA發送端口和PHY接收端口數據時鐘相位關系相似。結合圖1.4中發送接口時序和RTL8211EG的圖表可以看出:

FTco(max)+tGSUR+tR/2=Tclk,FTco(min)=tGHTR+ tR/2

故有

output delay max=Tclk- FTco(max)=tGSUR+tR/2=2.5ns

output delay min=- FTco(min)= -(tGHTR+tR/2)=-0.5ns

wKgaomaxm5GAX-HFAAA7iaSyqcI763.jpg

SDR接口輸出約束含義

所以,在sdc中我們如下約束輸出接口:

wKgaomaxm5GADsWEAAAPlaaIA6Q850.jpg

在上面的輸出約束中,我們可以理解為:

根據outputdelay中max/-min的定義,源同步接口中輸出最大最小延時為輸出時鐘上升沿到達之前最大與最小的數據有效窗口。如圖所示,用于建立時間分析的set output delay –max的值為正數2.5ns,表示數據窗口在Gtx_clk上升沿之前2.5ns時間內有效,

而用于保持時間分析的 -min之后跟著負數-0.5ns,表示數據在Gtx_clk上升沿之后0.5ns內有效,即相對于Gtx_clk輸出數據有效窗口為-0.5ns到2.5ns,這個范圍大于等于PHY芯片手冊中給出的Txd相對于Gtx_clk的窗口范圍時,才能滿足PHY芯片采集Txd時的時序要求。

Quartus的邏輯分區約束

既然是FPGA和外部接口的時序問題,也就是輸入輸出的寄存Rxd/Txd的寄存器到外部器件寄存器的時序問題。

wKgZomaxm5GAfbj0AAAcY3sixFQ003.jpg

GMII接收數據路徑分析

Tpcb是外部PCB板上數據的延時,Tdata_i是數據的輸入延時,Gmii_rx_interface相當于Rxd進入FPGA后的第一個寄存器模塊(可以專門寫一個接口模塊,將Rxd數據打一拍,用于接收數據)。

如果Gmii_rx_interface距離接口Rxd較遠,Tdata_i的路徑較長,布局布線時Rxd的八根線時延相差可能就比較大,所以我們應讓這個模塊放在距離Rxd接口較近的地方。

Quartus軟件中有一個LogicLock(物理分區)功能,把Gmii_rx_interface模塊建立成一個LogicLock分區但并不對分區位置和大小進行固定,然后重新編譯工程。

布局布線后就可以在chipplaner工具中看到這個分區的位置,如下圖所示(放大可以看清),Gmii_rx_interface模塊距離Rxd接口位置很遠,布局布線時,輸入信號要繞很長一段距離才會到達輸入的寄存器,資源占用很多時,Rxd的8根數據線長度不一,很容易造成時序問題。

wKgZomaxm5GADLXhAAH2Haw0fJk040.jpg

未固定分區位置時布局布線結果

把Gmii_rx_interface模塊分區移動到Rxd接口附近進行固定然后重新編譯工程,布局布線后該邏輯分區就會在Rxd接口附近,從而保證輸入數據接口進入FPGA的第一個寄存器的時延在一定范圍內,保證時序要求。

wKgZomaxm5GAVrlhAAFxn4YXM8I108.jpg

采用LogicLock后,GMII寄存器接口位置

內部寄存器到寄存器時序問題

wKgaomaxm5GAL6iPAAD851h-FF4008.jpg

wKgZomaxm5GAArVmAADlJ7PyNsg291.jpg

寄存器到寄存器之間建立和保持時間時序要求

在FPGA的設計中除了應該考慮到輸入輸出接口的時序,還應該考慮到內部寄存器到寄存器的時序問題。內部寄存器之間同樣要滿足建立和保持時間要求,如上圖所示

其中Tdata為組合邏輯在電路中的延時。

建立時間余量=T+Tclk2-Tclk1-Tco-Tdata-Tsu>=0

保持時間余量=Tclk1+Tco+Tdata-Tclk2-Th>=0

通常在FPGA中忽略時鐘的skew(偏移),即有Tclk2-Tclk1=0

建立時間余量=T-Tco-Tdata-Tsu>=0

保持時間余量=Tco+Tdata -Th>=0

為了使FPGA設計的電路正常,就必須滿足以上的建立和保持時間要求,根據建立時間余量公式可知

T>=Tco+Tdata+Tsu

F=1/T

在FPGA中Tco、Tsu等的數值由所使用FPGA的特性決定,所以時序電路之間的組合電路延時決定了整個電路的速度,即決定了整個電路的最大工作時鐘頻率。

若FPGA工作頻率為130MHZ,如果在做設計時,組合邏輯的過于復雜,寄存器到寄存器之間的延時Tdata過大,如果系統仍工作在130MHZ的頻率下就有可能出現時序問題。所以在設計時我們應盡可能減小組合邏輯的復雜度,以提高工作頻率。下面討論提高系統工作頻率的方法。

a. 通過減小Tdata值來提高頻率

在quartus的sdc約束中有關于寄存器到寄存器之間組合邏輯時延的約束,通過設置從REG1到REG2之間組合邏輯延時的最大最小值,來約束FPGA的布局布線,從而來提高系統的工作頻率。

但這種方法通常只能提高5%左右的工作頻率,不能過多的限制組合邏輯的時延,否則不利于EDA工具的布局布線。

b. 采用流水線設計來提高頻率

wKgaomaxm5GAWhh0AACzRgAlrWw999.jpg

流水線分割組合邏輯

通過約束減小組合邏輯延時的方法并不能夠十分有效的提高系統的工作頻率,所以在設計時我們應盡量減少大規模組合邏輯的使用。

如圖所示,采用流水線的設計思想,將兩個寄存器之間的組合邏輯拆分成兩級組合邏輯,從而減小組合邏輯的復雜度。采用流水線技術可以很好地提高系統運行時鐘的工作頻率。

假設原來路徑延時為t,加入兩級流水線并且假設路徑切割均勻,則路徑延時減少到約t/3,從而系統的工作頻率提高到原來3倍左右。

wKgZomaxm5KANrjsAABg-rwiJSs532.jpg

如上圖所示,在我們做FPGA設計過程中,原來的judge_result是一個很大的組合邏輯,信號產生的路徑時延很大,很難滿足時序要求,在FPGA編譯完做驗證時,出現if條件不正確的情況,狀態機不能正確跳轉。

修改:將if中復雜的組合邏輯信號在時鐘的上升沿,賦值給中間變量寄存器judge_result和judge_result_en,這樣在做if判斷時就不用判斷原來的復雜組合邏輯值,只需判斷judge_result和judge_result_en的值。即采用流水線分割的方法把原來十分復雜的組合邏輯分成兩部分,這樣FPGA在編譯后就不會出現時序錯誤的情況。

wKgaomaxm5KAXRcmAADXrJ2z2hI193.jpg

實例:使用vivado進行簡單的時鐘約束

之所以要進行時鐘約束是因為:當時鐘進入了FPGA器件,通過時鐘樹傳遞時,時鐘邊沿會有延時,通常稱作時鐘網絡延遲;噪聲或硬件表現會導致時鐘隨時可能發生變化,通常稱作時鐘不確定性,包括時鐘抖動、相位錯位等等。

增加時鐘約束可以一定程度上減少時鐘延時帶來的問題,比如大位寬數據(128位)從ram中讀出時由于路徑延時導致數據錯誤的問題。

這里介紹一下簡單進行時鐘約束的辦法(以vivado2018.2為例):

第一步:對工程進行綜合,綜合之后點擊“Edit Timing Constraints”

wKgaomaxm5KAYiBfAAHzh3YtdcE653.jpg

第二步,打開之后看到如下界面:

wKgaomaxm5KAEaExAAFmlho4WWQ556.jpg

第三步,雙擊create clock,打開如下界面:

wKgZomaxm5KAZOolAAE0U4_2wKU816.jpg

第四步,一般會點擊sourcesobjects 旁邊的這個按鈕來選擇你要約束的時鐘:

wKgZomaxm5KAc3FxAAAlVUhWSGQ472.jpg

點擊之后彈出如下界面:

wKgaomaxm5KACS40AAD-I09vHwk054.jpg

第五步,輸入你要約束的時鐘,然后進行查找,找到之后按照如下添加到右側框內,然后點擊set:

wKgZomaxm5KAJh0pAAEBapVKTbs158.jpg

第六步,然后set之后會返回到這個界面,你需要在這個界面輸入時鐘名,不然會生成一個虛擬時鐘:

wKgZomaxm5SAcfBgAADVOQ0_IXg771.jpg

第七步,然后到這個界面,按照圖片進行操作:

wKgZomaxm5SAXkFWAAFWmj0KvOA985.jpg

一般來說要點擊add clock,然后按crtl+s保存你設置的時鐘約束,之后再點擊apply(或者直接點擊apply)。

然后你打開你的xdc文件,會發現已經有了這么一個約束了,然后再重新綜合和實現就好了。

create_clock -period 8.000-name clkb -waveform {0.000 4.000} -add [get_nets{u_TTE_switch_top/U_ET_switch_plane_top/U_fp_and_sch_0/u_schedule_top/u_bus_ram/clkau_TTE_switch_top/U_ET_switch_plane_top/U_fp_and_sch_0/u_schedule_top/u_bus_ram/clkb}]

create_clock -period 8.000-name clk_gtx_125m -waveform {0.000 4.000} -add [get_netsinst_sgmii_if/clk_gtx_125m]

wKgaomaxm5SAHlTbAAAvfvF1EbQ590.jpg

全文完。

來源:本文轉載自網絡交換FPGA公眾號

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605996
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121158
  • 時序分析
    +關注

    關注

    2

    文章

    127

    瀏覽量

    22615
  • 時序約束
    +關注

    關注

    1

    文章

    115

    瀏覽量

    13457

原文標題:FPGA中的時序約束--從原理到實例

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

收藏 人收藏

    評論

    相關推薦

    FPGA案例解析:針對源同步的時序約束

    約束流程 說到FPGA時序約束的流程,不同的公司可能有些不一樣。反正條條大路通羅馬,找到一種適合自己的就行了。從系統上來看,同步時序
    的頭像 發表于 11-20 14:44 ?7961次閱讀
    <b class='flag-5'>FPGA</b>案例<b class='flag-5'>解析</b>:針對源同步的<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    FPGA的IO口時序約束分析

      在高速系統FPGA時序約束不止包括內部時鐘約束,還應包括完整的IO時序
    發表于 09-27 09:56 ?1799次閱讀

    FPGA時序約束的基礎知識

    FPGA開發過程,離不開時序約束,那么時序約束是什么?簡單點說,
    發表于 06-06 17:53 ?1542次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>時序</b><b class='flag-5'>約束</b>的基礎知識

    FPGA主時鐘約束詳解 Vivado添加時序約束方法

    FPGA設計時序約束的設置對于電路性能和可靠性都至關重要。在上一篇的文章,已經詳細介紹了FPGA
    發表于 06-06 18:27 ?1.1w次閱讀
    <b class='flag-5'>FPGA</b>主時鐘<b class='flag-5'>約束</b>詳解 Vivado添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>方法

    FPGA時序約束之衍生時鐘約束和時鐘分組約束

    FPGA設計時序約束對于電路性能和可靠性非常重要。在上一篇的文章,已經詳細介紹了FPGA
    發表于 06-12 17:29 ?2883次閱讀

    FPGA I/O口時序約束講解

    前面講解了時序約束的理論知識FPGA時序約束理論篇,本章講解時序
    發表于 08-14 18:22 ?1753次閱讀
    <b class='flag-5'>FPGA</b> I/O口<b class='flag-5'>時序</b><b class='flag-5'>約束</b>講解

    FPGA時序約束方法

    FPGA時序約束方法很好地資料,兩大主流的時序約束都講了!
    發表于 12-14 14:21 ?19次下載

    FPGA時序約束設計

    一個好的FPGA設計一定是包含兩個層面:良好的代碼風格和合理的約束時序約束作為FPGA設計
    發表于 11-17 07:54 ?2600次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>時序</b><b class='flag-5'>約束</b>設計

    深入了解時序約束以及如何利用時序約束實現FPGA 設計的最優結果

    作為賽靈思用戶論壇的定期訪客(見 ),我注意到新用戶往往對時序收斂以及如何使用時序約束來達到時序收斂感到困惑。為幫助 FPGA設計新手實現
    發表于 11-24 19:37 ?5543次閱讀
    深入了解<b class='flag-5'>時序</b><b class='flag-5'>約束</b>以及如何利用<b class='flag-5'>時序</b><b class='flag-5'>約束</b>實現<b class='flag-5'>FPGA</b> 設計的最優結果

    FPGA時序約束簡介

    在簡單電路,當頻率較低時,數字信號的邊沿時間可以忽略時,無需考慮時序約束。但在復雜電路,為了減少系統各部分延時,使系統協同工作,提高運
    的頭像 發表于 03-30 13:42 ?1.5w次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>時序</b><b class='flag-5'>約束</b>簡介

    FPGA設計之時序約束

    上一篇《FPGA時序約束分享01_約束四大步驟》一文,介紹了時序
    發表于 03-18 10:29 ?1699次閱讀
    <b class='flag-5'>FPGA</b>設計之<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    詳解FPGA時序input delay約束

    本文章探討一下FPGA時序input delay約束,本文章內容,來源于配置的明德揚時序約束專題課視頻。
    發表于 05-11 10:07 ?4157次閱讀
    詳解<b class='flag-5'>FPGA</b>的<b class='flag-5'>時序</b>input delay<b class='flag-5'>約束</b>

    FPGA時序input delay約束

    本文章探討一下FPGA時序input delay約束,本文章內容,來源于明德揚時序約束專題課視頻。
    的頭像 發表于 07-25 15:37 ?3126次閱讀
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>時序</b>input delay<b class='flag-5'>約束</b>

    如何在Vivado添加時序約束

    前面幾篇文章已經詳細介紹了FPGA時序約束基礎知識以及常用的時序約束命令,相信大家已經基本掌握了時序
    的頭像 發表于 06-23 17:44 ?2519次閱讀
    如何在Vivado<b class='flag-5'>中</b>添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    FPGA時序約束的原理是什么?

    FPGA開發過程,離不開時序約束,那么時序約束是什么?簡單點說,
    發表于 06-26 14:42 ?763次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>時序</b><b class='flag-5'>約束</b>的原理是什么?
    威尼斯人娱乐城老品牌值得信赖| 百家乐官网合| 亚洲顶级赌场手机版| 百家乐有几种打法| 东光县| 电子百家乐打法| 百家乐官网赌机玩法| 六合彩官方网站| 百家乐中庄闲比例| 百家乐官网双峰县| 翁牛特旗| 菲律宾太阳城网| 澳门百家乐打法精华| 百家乐官网玄机| 肯博娱乐| 苹果百家乐的玩法技巧和规则| 百家乐官网博百家乐官网的玩法技巧和规则 | 百家乐缆的打法| 百家乐官网网上投注文章| 走地| 威尼斯人娱乐城送38| 百家乐小游戏开发| 申请百家乐官网会员送彩金| 博狗娱乐城注册| 德州百家乐扑克牌| 澳门百家乐必杀技| 百家乐官网与21点| 大发888官网吧| 百家乐玩法规| 百家乐路的看法| 游戏机百家乐官网的技巧| 乐九百家乐官网现金网| 德州扑克女王| 巴宝莉百家乐的玩法技巧和规则 | 大发888娱乐城 casino| 百家乐赌场代理荐| 做生意仓库和办公桌在家里是不是讲风水| 百家乐官网3珠路法| 百家乐官网正网包杀| 金钻娱乐| 大发888 娱乐游戏|