99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

ZYNQ7020 PS與PL通過(guò)AXI-FULL HP接口高速讀寫(xiě)DDR3

ZYNQ7020 PS與PL通過(guò)AXI-FULL HP接口高速讀寫(xiě)DDR3 搞 ZYNQ 的人遲早會(huì)碰到一個(gè)繞不開(kāi)的問(wèn)題PL 端的邏輯跑得飛快數(shù)據(jù)要往 DDR 里放PS 端的 CPU 又要把這些數(shù)據(jù)取出來(lái)做處理兩邊怎么把數(shù)據(jù)倒騰明白我手上這塊黑金 AX7020 用的是 Xilinx ZYNQ7020PS 側(cè)是雙核 Cortex-A9 加 DDR 控制器PL 側(cè)是等效 Artix-7 規(guī)模的可編程邏輯。標(biāo)題里說(shuō)的 AXI-FULL DDR 的 PL 與 PS 交互說(shuō)白了就是讓 PL 里的自定義邏輯通過(guò)滿功能的 AXI 總線直接讀寫(xiě)掛在 PS 上的那顆 DDR3而不是繞遠(yuǎn)路走 BRAM 或者 FIFO 中轉(zhuǎn)。這套東西做通了PL 采集的高速數(shù)據(jù)、圖像幀、ADC 采樣流就能直接甩進(jìn)大容量?jī)?nèi)存PS 端再?gòu)娜莸刈鏊惴ā⑴軈f(xié)議棧、送顯示。寫(xiě)這篇東西的起因是我自己調(diào)這塊板子時(shí)被 HP 接口、Cache 一致性、突發(fā)長(zhǎng)度這幾個(gè)點(diǎn)反復(fù)折騰網(wǎng)上資料要么太碎要么語(yǔ)焉不詳所以把整套流程和踩過(guò)的坑整理出來(lái)適合剛上手 ZYNQ、想把 PS 和 PL 真正打通的人參考也適合做過(guò) AXI-Lite 但沒(méi)碰過(guò)高速搬運(yùn)的兄弟。1. 先搞懂 ZYNQ7020 里 PS 和 PL 誰(shuí)管 DDR1.1 DDR 控制器長(zhǎng)在 PS 里PL 只能借道這是整個(gè)交互邏輯的地基必須先說(shuō)清楚。ZYNQ7020 這顆芯片的 DDR 控制器DDRC是硬核物理上就長(zhǎng)在 PS 側(cè)和雙核 Cortex-A9、片上存儲(chǔ)器 OCM、各種外設(shè)控制器做在同一片硅里。PL 側(cè)壓根沒(méi)有獨(dú)立的 DDR 控制器你在 PL 里寫(xiě)邏輯想訪問(wèn)那 512MB 的 DDR3唯一的路徑就是通過(guò) PS 暴露出來(lái)的 AXI 從機(jī)接口進(jìn)到 PS 內(nèi)部的總線互聯(lián)再落到 DDR 控制器上。黑金 AX7020 板載的 DDR3 是兩片 16 位顆粒拼成 32 位總線容量按批次有 512MB 和 1GB 兩種我手上這塊是 512MB地址空間覆蓋 0x0000_0000 到 0x1FFF_FFFF。你要做的第一件事就是確認(rèn)自己板子的實(shí)際容量和起始地址別想當(dāng)然。為什么 DDR 地址從 0 開(kāi)始因?yàn)?Zynq 的地址映射里 DDR 就被分配在最低段OCM 在頂部的 0xFFFF_0000中間那一大片是各種外設(shè)寄存器。這個(gè)映射關(guān)系在 Vivado 的 Address Editor 里能看得一清二楚建議一開(kāi)始就去看一眼腦子里有個(gè)地圖。理解了這一層你就明白為什么 PL 訪問(wèn) DDR 必須依賴 PS 的接口數(shù)據(jù)不是搬進(jìn) PL 自己的存儲(chǔ)而是搬進(jìn) PS 的存儲(chǔ)PL 只是發(fā)起方。這一點(diǎn)直接決定了后面所有配置都要圍繞打通 PL 到 PS DDRC 的通道來(lái)做。1.2 GP、HP、ACP 三種 AXI 通道選錯(cuò)一個(gè)帶寬差十倍ZYNQ7020 的 PS 對(duì)外暴露了好幾組 AXI 接口名字容易搞混我按實(shí)際用途捋一遍。GP 口General Purpose包括 M_AXI_GP0/GP1 和 S_AXI_GP0/GP1。M_AXI_GP 是 PS 作為主機(jī)去訪問(wèn) PL 的從機(jī)比如 PS 配置 PL 里的寄存器這是最常用的。S_AXI_GP 是 PL 作為主機(jī)訪問(wèn) PS 的從機(jī)走這個(gè)口也能摸到 DDR但數(shù)據(jù)寬度只有 32 位而且要穿過(guò) PS 的中央互聯(lián)Central Interconnect帶寬被卡得很死實(shí)測(cè)單口撐死幾百 MB/s還搶 CPU 的總線。拿它做寄存器配置沒(méi)問(wèn)題做大數(shù)據(jù)搬運(yùn)就是自找麻煩。HP 口High PerformanceS_AXI_HP0 到 HP3 一共四個(gè)每個(gè)數(shù)據(jù)寬度 64 位而且這幾個(gè)口是直連 DDR 控制器和 OCM 的專門(mén)為高帶寬數(shù)據(jù)搬運(yùn)設(shè)計(jì)。PL 側(cè)做視頻、ADC、網(wǎng)絡(luò)包這類流量一律走 HP。四個(gè)口可以并行工作但底層的 DDR 物理帶寬是共享的這點(diǎn)后面算帶寬時(shí)會(huì)細(xì)說(shuō)。ACP 口Accelerator Coherency Port這個(gè)口比較特殊它連到 PS 的 L2 Cache 和 SCU 上專門(mén)給需要和 CPU 保持緩存一致的加速器用。PL 通過(guò) ACP 寫(xiě)數(shù)據(jù)CPU 的 Cache 會(huì)自動(dòng)更新省掉手動(dòng)刷 Cache 的步驟。但 ACP 的帶寬和時(shí)序特性比較挑一般做加速器直連才用純粹的大容量搬運(yùn)還是 HP 更穩(wěn)。結(jié)論很直白PL 要高速讀寫(xiě) DDR就用 HP 口。GP 留給寄存器ACP 留給需要一致性的加速器。我最初圖省事拿 GP 口跑數(shù)據(jù)結(jié)果帶寬上不去還莫名拖慢了 CPU換成 HP 之后整個(gè)世界都清爽了。1.3 為什么必須上 AXI-FULL 而不是 AXI-LiteAXI-Lite 和 AXI-FULL 的區(qū)別用一個(gè)類比就懂AXI-Lite 像是一次只能寄一個(gè)包裹的快遞每次傳輸都要走一遍完整的地址握手沒(méi)有突發(fā)AXI-FULL 則是一次可以裝一車貨支持突發(fā)Burst傳輸給一個(gè)起始地址后面連續(xù) N 拍數(shù)據(jù)自動(dòng)跟著地址遞增走握手開(kāi)銷被攤薄到極致。做寄存器讀寫(xiě)AXI-Lite 簡(jiǎn)單省事。但搬到幾百 KB、幾 MB 的數(shù)據(jù)流每一拍都握一次手地址通道的握手會(huì)吃掉大量時(shí)鐘周期實(shí)際帶寬可能連理論值的三分之一都到不了。AXI-FULL 的突發(fā)機(jī)制就是為了解決這個(gè)一次 Burst 最多可以連續(xù)傳 16 拍Zynq-7000 的 HP 口是 AXI3 協(xié)議突發(fā)長(zhǎng)度上限 16地址只發(fā)一次數(shù)據(jù)通道連續(xù)流動(dòng)。這里有個(gè)細(xì)節(jié)容易被忽略ZYNQ7020 的 HP 接口在協(xié)議版本上是 AXI3不是 AXI4。AXI3 和 AXI4 在突發(fā)長(zhǎng)度上不同AXI3 最大 16 拍AXI4 最大 256 拍。很多教程張口就說(shuō)AXI-FULL 支持 256 拍突發(fā)那是 UltraScale 的規(guī)格。你在 7020 上寫(xiě) AXI Master突發(fā)長(zhǎng)度字段只有 4 位最大就是 16寫(xiě)超了會(huì)出錯(cuò)。不過(guò)好消息是Vivado 里的 AXI Interconnect 會(huì)自動(dòng)做 AXI3/AXI4 的協(xié)議轉(zhuǎn)換如果你用現(xiàn)成的 AXI4 Master IP 連到 HP 口互聯(lián)會(huì)自動(dòng)把長(zhǎng)突發(fā)拆成 16 拍一段你只要心里有數(shù)就行。明白這三層邏輯之后整條技術(shù)路線就清晰了PL 里寫(xiě)一個(gè) AXI-FULL實(shí)際是 AXI3協(xié)議的 Master通過(guò) S_AXI_HP 接口連到 PS 的 DDR 控制器PS 端軟件負(fù)責(zé)地址規(guī)劃和 Cache 維護(hù)。2. Vivado 工程搭建把 HP 通道打開(kāi)2.1 ZYNQ7 PS 配置里幾個(gè)必須動(dòng)的地方新建 Vivado 工程器件選 xc7z020clg400-2AX7020 用的就是這顆速度等級(jí) -2。思路是 Block Design 里放一個(gè) ZYNQ7 Processing System先跑一次 Run Block Automation讓工具把 DDR 和 FIXED_IO 引出來(lái)。接下來(lái)雙擊 ZYNQ7 PS 進(jìn)配置幾個(gè)頁(yè)面必須挨個(gè)過(guò)DDR Configuration選 DDR3Memory Part 選和板載顆粒匹配的型號(hào)。AX7020 常用的是 MT41K256M16 或?qū)?yīng)批次顆粒選不對(duì)會(huì)導(dǎo)致初始化失敗、讀寫(xiě)全錯(cuò)。如果你不確定型號(hào)寧可選 generic 手動(dòng)填參數(shù)也別瞎選。DDR 時(shí)鐘頻率這里板子一般跑 DDR3-1066時(shí)鐘 533MHz保守起見(jiàn)先別超頻跑通再說(shuō)。Clock Configuration把 FCLK_CLK0 使能頻率先設(shè) 100MHz這是給 PL 邏輯用的參考時(shí)鐘。后面 HP 接口的 ACLK 也接它。想跑更高帶寬可以調(diào)到 150MHz 甚至 200MHz但前提是時(shí)序能收斂。PS-PL Configuration → AXI HP Interface這是重點(diǎn)把 S_AXI_HP0 勾上Data Width 保持 64 位。勾上之后 Block Design 里的 PS 模塊就會(huì)多出一個(gè) S_AXI_HP0 接口。如果你打算做多路并行搬運(yùn)可以再開(kāi) HP1、HP2但一開(kāi)始別貪多先把一路調(diào)通。Interrupts如果后面要 PL 中斷通知 PS在 PS-PL Configuration 里把 PL-PS Interrupt Ports 勾上 IRQ_F2P。輪詢能解決的場(chǎng)景可以暫時(shí)不勾。配置完點(diǎn) Validate Design沒(méi)報(bào)錯(cuò)再往下走。2.2 HP 接口與時(shí)鐘的連接方式HP 接口的 ACLK 時(shí)鐘怎么接是新手最容易懵的點(diǎn)。ZYNQ 的 HP 端口內(nèi)部有異步橋接理論上可以用 PL 側(cè)的任意時(shí)鐘驅(qū)動(dòng)它的 ACLK但為了性能最好讓 HP 的時(shí)鐘域和 PL 邏輯的時(shí)鐘域一致避免跨時(shí)鐘域帶來(lái)的額外延遲。我的做法是把 ZYNQ7 PS 輸出的 FCLK_CLK0100MHz直接接到 AXI Interconnect 的 ACLK 上同時(shí)這個(gè)時(shí)鐘也作為整個(gè) PL 邏輯的主時(shí)鐘。如果你有獨(dú)立的 PL 時(shí)鐘源也可以接自己的只要保證 AXI 主從雙方時(shí)鐘正確連接。Vivado 會(huì)在 Validate 時(shí)報(bào)時(shí)鐘未連接的錯(cuò)看到 ACLK 相關(guān)的紅色提示八成就是時(shí)鐘沒(méi)接上。關(guān)于 FIFO 和寄存器切片AXI Interconnect 內(nèi)部會(huì)自動(dòng)插入寄存器切片來(lái)改善時(shí)序一般不用手動(dòng)加。但如果你的頻率調(diào)到 150MHz 以上時(shí)序不收斂可以手動(dòng)在 HP 接口前面加一級(jí) AXI Register Slice把長(zhǎng)組合路徑打斷時(shí)序會(huì)好很多。2.3 地址分配與 AXI Interconnect 的取舍Block Design 里PL 的 AXI Master 和 PS 的 S_AXI_HP0 之間要放一個(gè) AXI Interconnect新版 Vivado 里叫 AXI SmartConnect 也行。SmartConnect 對(duì)多主機(jī)多從機(jī)的場(chǎng)景更友好資源占用也優(yōu)化過(guò)但它默認(rèn)要求所有接口都是 AXI4連到 HP 的 AXI3 口時(shí)它會(huì)自動(dòng)轉(zhuǎn)換用起來(lái)沒(méi)問(wèn)題。傳統(tǒng) AXI Interconnect 更老實(shí)配置參數(shù)多但對(duì) AXI3 支持更直接。我個(gè)人的習(xí)慣是單主機(jī)單從機(jī)就用 Interconnect多主機(jī)混用就上 SmartConnect。接好之后點(diǎn) Address Editor你會(huì)看到 PS 的 DDR 段自動(dòng)分配給了這個(gè) HP 接口地址就是 0x0000_0000 起范圍 512MB 或 1GB。這里必須核對(duì)一遍確保 PL 側(cè)能訪問(wèn)的 DDR 地址范圍覆蓋了你打算用的區(qū)域。有時(shí)候工具只分配了一小段你得手動(dòng)改 Range 或者把整個(gè) DDR 段分過(guò)去。分配好地址生成 Output ProductsCreate HDL Wrapper然后 Add Constraints 把引腳綁好DDR 和固定 IO 一般 PS 配置里已經(jīng)處理好不用手動(dòng)綁。綜合、實(shí)現(xiàn)、生成比特流第一次可以跳過(guò)實(shí)現(xiàn)直接跑綜合看有沒(méi)有語(yǔ)法錯(cuò)誤。3. PL 側(cè) AXI-FULL Master 的寫(xiě)法3.1 五個(gè)通道的握手流程梳理要自己寫(xiě) AXI Master先把五個(gè)獨(dú)立通道的關(guān)系理順。AXI 是全雙工、通道獨(dú)立的協(xié)議寫(xiě)操作和讀操作各走各的寫(xiě)操作三個(gè)通道AW地址寫(xiě)用來(lái)發(fā)寫(xiě)地址和控制信息W數(shù)據(jù)寫(xiě)用來(lái)發(fā)實(shí)際數(shù)據(jù)、字節(jié)選通 WSTRB 和末拍標(biāo)志 WLASTB寫(xiě)響應(yīng)是從機(jī)回給主機(jī)的告訴你這次寫(xiě)成功還是失敗BRESP。讀操作兩個(gè)通道AR地址讀發(fā)讀地址R數(shù)據(jù)讀從機(jī)回?cái)?shù)據(jù)配合 RLAST 標(biāo)志末拍。每個(gè)通道都用 VALID/READY 一對(duì)信號(hào)做握手規(guī)則很簡(jiǎn)單VALID 由發(fā)送方拉高表示數(shù)據(jù)有效READY 由接收方拉高表示我準(zhǔn)備好了兩者同時(shí)為高的那個(gè)時(shí)鐘上升沿?cái)?shù)據(jù)被正式接收。發(fā)送方拉高 VALID 后必須等接收方 READY 才能撤不能中途反悔。寫(xiě)操作的通道依賴關(guān)系要說(shuō)清楚AXI3 允許 AW 和 W 通道的先后順序相對(duì)靈活但我在實(shí)現(xiàn)時(shí)采用的是先發(fā)完 AW 再發(fā) W的保守順序邏輯簡(jiǎn)單不易錯(cuò)。B 通道的響應(yīng)必須等到 AW 和 W 都完成之后才會(huì)來(lái)。讀操作沒(méi)有響應(yīng)通道收到 RLAST 就代表這一筆讀完成了。3.2 寫(xiě)通道狀態(tài)機(jī)實(shí)現(xiàn)下面是我實(shí)際用的寫(xiě)狀態(tài)機(jī)骨架Verilog 寫(xiě)的簡(jiǎn)化了信號(hào)名但邏輯完整。這個(gè) Master 做的事是收到觸發(fā)信號(hào)后往指定基地址連續(xù)寫(xiě) N 拍數(shù)據(jù)每拍 64 位。localparam S_IDLE 3d0, S_AW 3d1, S_W 3d2, S_B 3d3, S_DONE 3d4; reg [2:0] wstate; reg [3:0] wcnt; // 突發(fā)計(jì)數(shù)AXI3 最大 16 reg [63:0] wdata_reg; always (posedge aclk or negedge aresetn) begin if (!aresetn) begin wstate S_IDLE; s_axi_awvalid 1b0; s_axi_wvalid 1b0; s_axi_wlast 1b0; wcnt 4d0; end else begin case (wstate) S_IDLE: begin if (start_write) begin s_axi_awaddr base_addr; s_axi_awlen 4d15; // 16 拍突發(fā)AXI3 用 4 位值拍數(shù)-1 s_axi_awsize 3d3; // 每拍 8 字節(jié) s_axi_awburst 2b01; // INCR 遞增模式 s_axi_awvalid 1b1; wstate S_AW; end end S_AW: begin if (s_axi_awvalid s_axi_awready) begin s_axi_awvalid 1b0; s_axi_wvalid 1b1; wcnt 4d0; wstate S_W; end end S_W: begin if (s_axi_wvalid s_axi_wready) begin if (wcnt 4d15) begin s_axi_wlast 1b1; // 最后一拍 end if (s_axi_wlast s_axi_wready) begin s_axi_wvalid 1b0; s_axi_wlast 1b0; wstate S_B; end else begin wcnt wcnt 1b1; end // 數(shù)據(jù)源在這里更新實(shí)際項(xiàng)目從 FIFO 或采集邏輯取 wdata_reg wdata_reg 64h1; end end S_B: begin s_axi_bready 1b1; if (s_axi_bvalid) begin s_axi_bready 1b0; wstate S_DONE; end end S_DONE: wstate S_IDLE; endcase end end這段邏輯里有幾個(gè)點(diǎn)值得強(qiáng)調(diào)。AWLEN 字段寫(xiě)的是拍數(shù)減一要傳 16 拍就寫(xiě) 15這個(gè)減一很容易忘。AWSIZE 決定每拍多少字節(jié)3d3 代表 8 字節(jié)對(duì)應(yīng) 64 位數(shù)據(jù)寬度如果 AWADDR 沒(méi)按 8 字節(jié)對(duì)齊傳輸會(huì)報(bào)錯(cuò)或者行為異常。AWBURST 用 2b01 表示遞增模式地址隨突發(fā)自動(dòng)往上走這也是搬運(yùn)連續(xù)數(shù)據(jù)最常用的模式。3.3 讀通道狀態(tài)機(jī)與數(shù)據(jù)拼接讀通道相對(duì)簡(jiǎn)單只有 AR 和 R 兩個(gè)通道但數(shù)據(jù)接收階段的拼接和緩存要處理好不然高速讀的時(shí)候數(shù)據(jù)會(huì)丟。localparam R_IDLE 2d0, R_ADDR 2d1, R_DATA 2d2; always (posedge aclk or negedge aresetn) begin if (!aresetn) begin rstate R_IDLE; s_axi_arvalid 1b0; s_axi_rready 1b0; end else begin case (rstate) R_IDLE: begin if (start_read) begin s_axi_araddr base_addr; s_axi_arlen 4d15; s_axi_arsize 3d3; s_axi_arburst 2b01; s_axi_arvalid 1b1; rstate R_ADDR; end end R_ADDR: begin if (s_axi_arvalid s_axi_arready) begin s_axi_arvalid 1b0; s_axi_rready 1b1; rstate R_DATA; end end R_DATA: begin if (s_axi_rvalid s_axi_rready) begin // 實(shí)時(shí)把 rdata 送進(jìn)下游 FIFO 或校驗(yàn)邏輯 if (s_axi_rlast) begin s_axi_rready 1b0; rstate R_IDLE; end end end endcase end end讀數(shù)據(jù)階段的關(guān)鍵是RREADY 要盡早拉高讓從機(jī)有數(shù)據(jù)就往外送不要因?yàn)橄掠翁幚砺ㄗ】偩€。如果下游邏輯來(lái)不及消費(fèi)就在 R 通道后面加一個(gè)異步 FIFO 或者同步 FIFO 做緩沖RREADY 根據(jù) FIFO 的滿標(biāo)志動(dòng)態(tài)控制這樣既不丟數(shù)據(jù)也不浪費(fèi)帶寬。3.4 突發(fā)長(zhǎng)度和 4KB 邊界這兩個(gè)硬約束AXI 協(xié)議里有兩條硬性約束違反任意一條輕則數(shù)據(jù)錯(cuò)重則總線掛死。第一條是突發(fā)長(zhǎng)度上限。Zynq-7000 的 HP 口是 AXI3最多 16 拍。你如果想一次搬 1KB 數(shù)據(jù)64 位 × 128 拍就必須拆成 8 次 16 拍的突發(fā)來(lái)做。別指望一次發(fā) 128 拍AXI Interconnect 雖然會(huì)自動(dòng)拆分但如果你自己寫(xiě) Master 直接懟 128 拍給 HP 口行為是未定義的。第二條更隱蔽任何一筆突發(fā)傳輸都不能跨越 4KB 地址邊界。4KB 是 AXI 從機(jī)地址譯碼的粒度一筆突發(fā)如果從 0x1000_0FF0 開(kāi)始還要連傳 16 拍8 字節(jié) × 16 128 字節(jié)終點(diǎn)會(huì)跑到 0x1000_1070跨過(guò)了 0x1000_1000 這個(gè) 4KB 邊界這在 AXI 里是違規(guī)的很多從機(jī)會(huì)直接返回 SLVERR 或者干脆丟棄。避免的辦法是在地址計(jì)算階段就做邊界檢查每筆突發(fā)的起始地址和長(zhǎng)度算一下如果終點(diǎn)跨過(guò)了 4KB 對(duì)齊線就提前把這一筆截?cái)嘞乱还P從邊界處重新開(kāi)始。我寫(xiě)的一個(gè)小函數(shù)就是干這個(gè)的按 4KB 邊界把大塊搬運(yùn)拆成一串合法的突發(fā)序列。這個(gè)檢查邏輯雖然啰嗦但能避免一大類詭異的地址錯(cuò)亂問(wèn)題非常值得寫(xiě)。4. PS 側(cè)軟件配套地址規(guī)劃與 Cache 一致性4.1 共享內(nèi)存的地址怎么劃PS 端軟件跑在 DDR 里程序代碼、堆棧、全局變量都在占空間。PL 通過(guò) HP 口寫(xiě) DDR 時(shí)如果地址和你程序的數(shù)據(jù)區(qū)重疊了那就是災(zāi)難性的——CPU 的變量被莫名覆蓋程序跑飛還特別難查。所以第一步是劃出一塊誰(shuí)都不碰的共享區(qū)域。我的做法是在鏈接腳本 lscript.ld 里專門(mén)留一段。假設(shè)程序本身不大我用 0x1000_0000 到 0x1FFF_FFFF 這一大段給 PL 做數(shù)據(jù)緩沖區(qū)程序和數(shù)據(jù)限制在低地址區(qū)。具體操作是在 lscript.ld 里加一個(gè)自定義段_shared_start 0x10000000; _shared_end 0x1FFFFFFF;然后在 C 代碼里直接用這個(gè)絕對(duì)地址讀寫(xiě)。進(jìn)階一點(diǎn)的做法是在鏈接腳本里定義一個(gè) section 并分配固定地址再用__attribute__((section(.shared_mem)))把緩沖區(qū)放進(jìn)去。好處是編譯器知道這塊內(nèi)存的存在不會(huì)和別的變量沖突缺點(diǎn)是調(diào)試時(shí)得盯著 map 文件確認(rèn)地址真的對(duì)上了。還有個(gè)更省心的選擇用 OCM。Zynq 的 OCM 地址在 0xFFFF_0000默認(rèn)就是 non-cacheable 的PS 和 PL 都能直接訪問(wèn)做小數(shù)據(jù)量的握手標(biāo)志位、狀態(tài)同步特別合適省掉了所有 Cache 維護(hù)的麻煩。但 OCM 只有 256KB大塊數(shù)據(jù)還是得放 DDR。4.2 Cache 操作Flush 和 Invalidate 別搞反這塊是 PS-PL 數(shù)據(jù)交互里最容易翻車的地方我單獨(dú)拎出來(lái)講。Cortex-A9 有 L1 和 L2 CacheCPU 讀寫(xiě)內(nèi)存時(shí)數(shù)據(jù)可能只在 Cache 里還沒(méi)寫(xiě)回 DDR。這就導(dǎo)致兩個(gè)方向的坑PS 寫(xiě)、PL 讀CPU 把數(shù)據(jù)寫(xiě)進(jìn) buffer此時(shí)數(shù)據(jù)可能還躺在 Cache 里是臟的dirtyDDR 里還是舊值。PL 通過(guò) HP 口直接讀 DDR讀到的是舊數(shù)據(jù)。解決辦法是 PL 去讀之前PS 先調(diào)Xil_DCacheFlushRange(addr, len)把 Cache 里的臟數(shù)據(jù)強(qiáng)制寫(xiě)回 DDR。PL 寫(xiě)、PS 讀PL 把新數(shù)據(jù)寫(xiě)進(jìn)了 DDR但 CPU 的 Cache 里可能還緩存著這塊地址的舊副本。CPU 讀的時(shí)候命中 Cache拿到的是舊數(shù)據(jù)。解決辦法是 PS 讀之前調(diào)Xil_DCacheInvalidateRange(addr, len)讓這塊地址的 Cache 行失效CPU 下次讀會(huì)重新從 DDR 取。這兩個(gè)函數(shù)用反了或者干脆忘了調(diào)癥狀都是數(shù)據(jù)對(duì)不上而且時(shí)好時(shí)壞特別迷惑人。我踩過(guò)的坑是單步調(diào)試時(shí)數(shù)據(jù)是對(duì)的一全速跑就錯(cuò)原因就是斷點(diǎn)改變了 Cache 的時(shí)序。凡是 PS 和 PL 共享的內(nèi)存區(qū)每次跨邊界訪問(wèn)前都要老老實(shí)實(shí)做 Cache 維護(hù)。如果實(shí)在嫌麻煩可以在 MMU 配置里把這塊共享內(nèi)存設(shè)成 non-cacheableDevice 或 Strongly Ordered 屬性一勞永逸代價(jià)是 CPU 訪問(wèn)這塊內(nèi)存會(huì)慢一些因?yàn)槊看味颊娴娜?DDR 讀。數(shù)據(jù)量大、CPU 又不頻繁訪問(wèn)的場(chǎng)景這個(gè)取舍很劃算。4.3 中斷還是輪詢PL 和 PS 怎么知道對(duì)方干完活了兩種方式。輪詢PS 端死循環(huán)讀某個(gè)標(biāo)志位PL 寫(xiě)完了就把標(biāo)志位翻轉(zhuǎn)。實(shí)現(xiàn)最簡(jiǎn)單不需要配置中斷適合調(diào)試階段。壞處是浪費(fèi) CPU而且標(biāo)志位本身也要考慮 Cache 和內(nèi)存屏障問(wèn)題。中斷PL 通過(guò) IRQ_F2P 拉高中斷線PS 收到中斷進(jìn)服務(wù)程序處理。效率高但配置繁瑣要在 PS 配置里使能 PL-PS 中斷在 PL 里生成中斷信號(hào)在 Vitis 里注冊(cè)中斷處理函數(shù)、使能 GIC。適合正式產(chǎn)品。我調(diào)試階段一律先用輪詢把數(shù)據(jù)通路跑通確認(rèn)讀寫(xiě)邏輯沒(méi)問(wèn)題再換成中斷。別一上來(lái)就搞中斷中斷本身的 bug 和數(shù)據(jù)通路的 bug 混在一起排查會(huì)崩潰。順帶提一句流式數(shù)據(jù)的場(chǎng)景如果你的 PL 側(cè)是視頻或者傳感器采樣這種連續(xù)流通常先在 PL 里把 AXI-Stream 格式的數(shù)據(jù)轉(zhuǎn)成 AXI-FULL 寫(xiě)進(jìn) DDR這就是常說(shuō)的寫(xiě)幀緩存然后用中斷通知 PS這一幀寫(xiě)好了PS 再去 DDR 取。這樣 PL 和 PS 解耦各干各的效率最高。5. 實(shí)機(jī)聯(lián)調(diào)從波形看到帶寬5.1 先用 AXI Traffic Generator 探底自己寫(xiě)的 Master 第一次上板別急著接真實(shí)數(shù)據(jù)源。先用 Xilinx 提供的 AXI Traffic Generator IP 快速探一下通路是否打通。這個(gè) IP 可以自動(dòng)產(chǎn)生指定模式的 AXI 讀寫(xiě)流量你只要配好地址范圍、突發(fā)長(zhǎng)度、讀寫(xiě)比例它就能自己跑出滿負(fù)荷的流量。具體配置在 Block Design 里加一個(gè) AXI Traffic Generator把它設(shè)成 Master 模式接口連到 AXI Interconnect地址指向 DDR 段。配置成連續(xù)寫(xiě)模式數(shù)據(jù)模式選遞增或者固定 pattern。生成比特流上板后用 Vitis 跑一個(gè)簡(jiǎn)單的程序往 DDR 某個(gè)地址先寫(xiě)入已知數(shù)據(jù)然后讓 Traffic Generator 去讀看讀回來(lái)的數(shù)據(jù)對(duì)不對(duì)反過(guò)來(lái)讓 Traffic Generator 寫(xiě)PS 去讀驗(yàn)證。這一步能驗(yàn)證的東西很多HP 接口通不通、地址映射對(duì)不對(duì)、時(shí)鐘有沒(méi)有接好、互聯(lián)配置有沒(méi)有問(wèn)題。如果 Traffic Generator 都跑不通那你自己的 Master 更別想跑通先解決底層通路。5.2 ILA 抓握手信號(hào)定位卡死自己寫(xiě)的 Master 上板后最常見(jiàn)的問(wèn)題是狀態(tài)機(jī)卡在某個(gè)狀態(tài)動(dòng)不了。這時(shí)候 ILA集成邏輯分析儀就是救命稻草。在 Vivado 里給 AXI 的握手信號(hào)加 ILA 核重點(diǎn)抓這幾個(gè)AWVALID、AWREADY、WVALID、WREADY、BVALID、ARVALID、ARREADY、RVALID、RREADY再加上你自己的狀態(tài)機(jī)狀態(tài)寄存器。抓波形的判斷邏輯很直接如果 AWVALID 拉高了但 AWREADY 一直低說(shuō)明從機(jī)沒(méi)準(zhǔn)備好接收可能是地址不合法、接口沒(méi)使能、或者時(shí)鐘域不對(duì)。如果 AW 握手成功了但 W 一直不握手檢查 WSTRB 和 WLAST 有沒(méi)有正確設(shè)置。如果卡在等 BVALID說(shuō)明寫(xiě)數(shù)據(jù)發(fā)出了但從機(jī)沒(méi)回響應(yīng)往往是地址越界或者觸發(fā)了 SLVERR。我第一次調(diào)試時(shí)狀態(tài)機(jī)卡在 S_W 死活不動(dòng)抓波形發(fā)現(xiàn) WREADY 一直是低折騰半天才想明白是 AWLEN 配錯(cuò)了——我寫(xiě)了 4d15 想傳 16 拍但數(shù)據(jù)源只給了 8 拍就斷了從機(jī)等不到 WLAST 就一直不拉 READY。這個(gè)坑很典型突發(fā)長(zhǎng)度聲明了多少拍就必須實(shí)實(shí)在在地送夠多少拍數(shù)據(jù)配合正確的 WLAST。5.3 帶寬實(shí)測(cè)數(shù)據(jù)與優(yōu)化通路跑通之后就該關(guān)心性能了。先算理論值HP 接口 64 位寬ACLK 用 100MHz單口理論帶寬是 64bit × 100MHz 6.4Gbps 800MB/s。如果 ACLK 提到 150MHz那就是 1.2GB/s。但注意PS DDR3 的物理總帶寬是有限的32 位 533MHz DDR 大概 4.26GB/s四個(gè) HP 口和其他主設(shè)備CPU、DMA都要分這塊蛋糕。實(shí)測(cè)下來(lái)單 HP 口用 16 拍突發(fā)連續(xù)讀寫(xiě)效率通常能到理論值的 60% 到 80%。影響因素排序大概是突發(fā)長(zhǎng)度越長(zhǎng)效率越高但受 16 拍限制、讀寫(xiě)比例DDR 頻繁讀寫(xiě)切換有開(kāi)銷連續(xù)讀或連續(xù)寫(xiě)效率更高、地址是否連續(xù)連續(xù)地址比跳躍地址效率高得多、以及 CPU 是否在搶總線。我做的優(yōu)化有幾個(gè)把連續(xù)搬運(yùn)的突發(fā)盡量用滿 16 拍讀寫(xiě)分開(kāi)做不要交替進(jìn)行批量操作時(shí)讓 PS 端 CPU 先歇著別在搬運(yùn)時(shí)跑重活。調(diào)整之后同樣的數(shù)據(jù)量搬運(yùn)時(shí)間縮短了差不多三分之一。想要更高帶寬就得上雙 HP 口并行但前提是 DDR 總帶寬還沒(méi)被吃滿不然加了也白加。6. 踩坑記錄與問(wèn)題速查表6.1 常見(jiàn)問(wèn)題對(duì)照表下面這張表是我和身邊朋友在 ZYNQ PS-PL DDR 交互里遇到過(guò)的典型問(wèn)題按現(xiàn)象歸類方便對(duì)號(hào)入座。現(xiàn)象可能原因排查方向PL 讀寫(xiě) DDR 返回 SLVERR地址越界、HP 接口未使能、時(shí)鐘未連接核對(duì) Address Editor 地址范圍檢查 PS 配置里 HP 是否勾選讀回?cái)?shù)據(jù)全是 0 或全 FF握手不完整、WSTRB 未設(shè)置、從機(jī)未響應(yīng)ILA 抓握手信號(hào)確認(rèn)每拍數(shù)據(jù)都被接收數(shù)據(jù)整體錯(cuò)位一兩個(gè)字節(jié)地址未按數(shù)據(jù)寬度對(duì)齊、WSTRB 與數(shù)據(jù)不匹配檢查 AWADDR 是否 8 字節(jié)對(duì)齊64 位傳輸PS 讀到舊數(shù)據(jù)Cache 未 invalidate讀前調(diào) Xil_DCacheInvalidateRangePL 讀到舊數(shù)據(jù)Cache 未 flushPL 讀前 PS 調(diào) Xil_DCacheFlushRange狀態(tài)機(jī)卡死不動(dòng)AWLEN 配錯(cuò)、WLAST 未在正確拍拉高核對(duì)突發(fā)拍數(shù)與 WLAST 時(shí)序移植到高頻率后時(shí)序不收斂HP 時(shí)鐘太快、組合路徑過(guò)長(zhǎng)降頻驗(yàn)證加 AXI Register Slice程序莫名跑飛PL 寫(xiě)的 DDR 區(qū)域和程序區(qū)重疊嚴(yán)格劃分共享內(nèi)存地址別碰程序段仿真時(shí) DDR 無(wú)響應(yīng)缺少 DDR 模型或未接 AXI VIP仿真用 BRAM 替代或用 Micron DDR3 模型固化到 Flash 后跑不起來(lái)FSBL 加載地址或 DDR 初始化問(wèn)題確認(rèn)應(yīng)用是否必須放 DDR必要時(shí)縮小放 OCM6.2 幾條血淚心得先說(shuō)仿真這件事。很多人問(wèn) Vivado 里怎么仿 DDR 交互其實(shí)完整仿真整條 DDR 通路很麻煩需要 Micron 的 DDR3 Verilog 模型速度慢、配置繁瑣。我的建議是仿真階段只驗(yàn)證你的 AXI Master 邏輯本身用一個(gè)簡(jiǎn)單的 AXI Slave 模型或者 BRAM 控制器替代 DDR把握手時(shí)序、突發(fā)拆分、狀態(tài)跳轉(zhuǎn)驗(yàn)證清楚就夠了真正的 DDR 時(shí)序留到上板用 ILA 看。上板抓波形比跑仿真直觀一百倍。再說(shuō)固化的問(wèn)題。有人問(wèn)用 JTAG 固化 Flash 到底需不需要 DDR。答案是不強(qiáng)制Zynq 的啟動(dòng)流程是 BootROM 先跑加載 FSBLFSBL 負(fù)責(zé)初始化 DDR 等外設(shè)然后加載應(yīng)用。如果你的應(yīng)用不大FSBL 和應(yīng)用都可以加載到 OCM 里跑完全不碰 DDR。但一旦應(yīng)用超過(guò) OCM 容量256KB就必須初始化并使用 DDR 來(lái)存放應(yīng)用。所以要不要 DDR取決于你的應(yīng)用體積不是固定的規(guī)矩。PCB 層面的東西也順帶提一句。板子出廠時(shí) DDR 走線都做好了等長(zhǎng)和阻抗控制這部分我們改不了也不用管。但如果你自己畫(huà)板DDR 地址線和數(shù)據(jù)線的等長(zhǎng)、分組、參考平面這些就繞不開(kāi)了那又是另一門(mén)學(xué)問(wèn)遠(yuǎn)超這篇的范圍。最后是調(diào)試心態(tài)。PS-PL 交互出問(wèn)題時(shí)現(xiàn)象往往很玄學(xué)——單步對(duì)、全速錯(cuò)或者跑一會(huì)兒才錯(cuò)。這種時(shí)候別急著懷疑玄學(xué)老老實(shí)實(shí)回到三件事上查Cache 有沒(méi)有維護(hù)、地址有沒(méi)有越界、握手有沒(méi)有漏拍。我遇到過(guò)的九成問(wèn)題最后都能歸到這三類里。把 ILA 波形和 Cache 操作日志對(duì)著看問(wèn)題基本無(wú)所遁形。我個(gè)人在實(shí)際項(xiàng)目里的體會(huì)是ZYNQ 的 PS-PL 數(shù)據(jù)交互看著復(fù)雜但骨架很清晰PL 寫(xiě)個(gè)規(guī)規(guī)矩矩的 AXI MasterPS 開(kāi)好 HP 口和地址兩邊用共享內(nèi)存加 Cache 維護(hù)對(duì)上眼剩下的就是帶寬和時(shí)序的調(diào)優(yōu)。真正花時(shí)間的從來(lái)不是寫(xiě)代碼而是第一次把信號(hào)接對(duì)、把地址算對(duì)、把 Cache 想明白。第一次跑通之后后面加通道、提頻率、改數(shù)據(jù)格式都是水到渠成。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月婷婷啪啪| 1024在线一区| 色五月亚洲开心网| 99操视频| 五月婷婷六月综合| 亚洲综合色婷| 国产亚洲成AV人片在线观黄桃| 色情一区二区播放| site:wpjngj.com| 91在线观看www| 国产成人99久久亚洲综合精品| www.狠狠操.com| 《久久综合九色综合97婷婷| 操97在线观看| 9久久狠狠的| 国产成人av在线播放| www.狠狠干com| 九九热99熟女| 九九精品99久久久| 久久日九九| 国产美女无遮挡裸体毛片A片| 97碰人人操| 亚洲激情视频网| 亚洲亚洲人成综合网络| 婷婷丁香五月亚洲| 午夜成人AV在线| 五月婷婷自拍视频| 激情五月婷婷综合网| 色婷婷导航| 综合久久六月| 青青草婷婷久久| 成人中文网| 亭亭玉月丁香| 国产成人亚洲综合A∨婷婷| 综合久久人妻| 激情99在线视频| 5月婷婷六月丁香| 丁香婷婷人妻| 色色三级视频| 九九99九九精品免费 | 91精品久久久久久久| 国产女人十八水真多1| 成人无码髙潮喷水A片| 大香蕉九九| 熟女激情网| 99精品久久久久久久婷婷| 久久久精品免费啪啪国| 亚洲岛国电影| 婷婷日本色| 九九99精品免费播放| 色色综合网站| 国产午夜成人免费看片无遮挡| 99热这里只有精品16| 婷婷丁香九月| 色99视频| 五月天综合在线网| ady狠狠入| 激情都市另类| 特黄三级又爽又粗又大| 日韩精品一区二区亚洲AV观看| 婷婷综合在线视频| 9超碰在线| 97超碰欧美中文字幕| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 亚洲AV无码久久精品色欲| 99re热精品视频国| 精品怡红九九九| 亚洲爱爱无码婷婷色五月| 深爱激情小说五月婷婷| 日日夜夜爽| 天天天天色天天天天天干| 丁香六月激情蜜桃| 五月婷婷六月丁香在线| 99在线观看视频| 婷婷天堂综合| 国产精产国品一二三在观看| 日本一毛片| 噜一噜在线| 噜一噜在线| 亚洲在线综合| 无码少妇高潮喷水A片免费| AV在线不卡播放| 97色五月婷婷在线| 天天操无码| 婷婷激情伍月网| 深爱网深爱综合网| 五月的色婷婷高潮| A久久| 国产乱子轮XXX农村| 国产成人精品一区二区三区视频 | 五月天婷婷基地| 91日视频| 99视频| 玖玖综合色区在线观看| 九九久久五月天| 婷婷五月成年人| 丁香六月天色婷婷| 岛国AV网| 激情久久综合网| 激情黄色小说色五月| 精品思思久久| 久久久精品人妻录| 51国精产品自偷自偷综合| 亚洲中文字幕在线观看| 99久扒热| 国产婷婷五月天| 久久综合首页| 午夜]香婷婷深深爱| 第四色五月婷婷| 激情五月黄色小说| 99九九视频精彩在线| 久久婷婷亚洲| 久大香蕉| xxx.色婷婷| 一级性爱视频| 99热999| 99热99成人| www、色色色| 色噜噜狠狠色综合成人网| 婷婷色网| 日本九九九九| 99热在线播放| 丁香六月丁香婷婷激情| 久久五月天激情婷婷| 五月 婷婷 成人| 久久香蕉影院| 99久久.www| 五月丁香网av| 亚洲午夜AV| 黄急一级视频| 日操| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 久久99热只有精品| 操逼视频一区| 99啪视频在线观看| 婷婷综合六月| 刘玥av在线| 996er热| 色色色无码| 亚洲乱码精品久久久久..| 丁香婷婷五月人体| 99愛国产| 91狼友视频在线观看| 熟女色专区| 在线观看免费狠狠色丁香香综合| 9 大屁股在线视频精品| 啪到高潮激情丁香五月| 日韩熟女啪啪视频| 天天色天天爱天天爽| 六月丁丁香| 99热综合在线| 五月天开心色情网| 激情AV在线| 五月婷婷婷| 99热99艹在线观看| 大地资源色婷婷视频在线| 精品婷婷| 久色成人| 午夜精品人妻无码一区二区三区| 99丁香五月婷| 黑人巨粗进入警花疼哭A片| 亚洲人妻av| 激情五月综合| 97婷婷丁香| 婷婷伊人五月天| 五月天天丁香婷婷| 久色国产| 色站9/| 久久久久人妻中文| 99热在线播放精品| 久久怕怕视频| 久艹大香蕉| 99在线小视频| 97碰人人操| 五月丁香婷婷综合视频| 久久婷五月综合| 波多野结衣AV无码Porn| 91日本在线观看| 激情久久久久久| 天天操B| 九九re精品视频在线观看| 另类视屏| 久久五月天合网| 无码区婷婷五月花开| 日本97在线| 丁香五月婷婷在线| 色久九| 五月丁香六月在线| 色丁香久综合在线久综合在线观看| 黄桃AV无码免费一区二区三区| 亭亭丁香久久五月| 99九九99九九九视频精品| 婷婷香五月| 综合久久十| 五月丁香免费看| 婷婷五月天久久综合88| 激情五月婷婷| 日韩视频99| 任你日热视频| 色色五月天婷婷| sewuyue第四色| 人人操婷婷| 1区2区视频| 亚洲免费看片| 久久日本wwww色| 99视频在线观看网址| 六月丁香六月婷婷欧美| www.婷婷五月天| 五月婷婷色丁香| 在线播放人妻| 综合AV在线| 欧美欧盟性爱网| 色欧美一级| 99亚洲精品视频| 91五月天| 激情五月婷婷色色| 99热.com| 五月天婷婷在线播放免费| 色色色在线观看| 99热在这里只有精品| 激情网站综合五月天| 婷婷狠狠香蕉综合| 五月天婷婷在线观看| 婷婷五日b| 婷婷五月天毛片| 91九九| 超碰操日| 中文av网| 九九热精品| 欧美激情五月天婷婷| 一区二区成人电影免费播放| aa久久| 五月丁香网站在线播放| 色一情一乱一乱一区91| 色站9/| 婷婷五月激情中文字幕| 色五月五月天色婷婷色五月| 先锋av性爱成人电影| 激情爱爱网站超大免费| 桃色五月婷婷| 五月丁香综合网| 99热99热在线| 色综合久久天天综合网| 五六月婷婷| 97sese婷婷| 99热综合| 五月婷婷开心网| 色天五月天在线观看视频| 婷婷色亚洲| 丁香色五月 97干| 婷婷狠狠五月综合| 五月婷婷丁香成人网| 久久免费干| 人人爱操| 大香蕉五月天婷婷| 色九月婷婷| 天天爱夜夜爽| 99爱无码| 99热视精品| 五月丁香久久综合| 五月丁香婷婷色色| 操逼六区| 六月婷婷网| 亚洲妇女熟BBW| 国産精品| 久久停停超碰| 伊人久久大香蕉网| 天天插天天爱| 99久热这里只有精品| 六月丁香婷婷开心综合基地| 天天在线久久综合| 丁香狠狠| 丁香五月综合激情久久潮喷| 天天久久人人| 噜噜噜噜婷婷五月天| 可以免费观看的av| 色偷偷五月天| 亚洲无码色| www.minyis.com【JT】实力收量可预付QQ2101460746 | 五月丁香六月停停| 激情美女五月天激情在线| 26uuu青青| 五月婷久久久| 99九九综合久久九九| 免费成片在线观看| 99色日本| 欧美色宗和激情| www,色综合| 色婷婷无吗| 五月丁香婷婷伊人日韩| 色偷偷人人| 男同色五月开心五月激情五月| 综合色色五月| 日韩无码亚欧无码| 五月丁香六月婷婷综合| 中文AV在线观看| 色婷婷文字幕| 大陆极品少妇内射AAAAAA| 午夜一区| 中文字幕精品无码一区二区| 婷婷99视频在线| 69凹凸成人综合网| 日韩有码一区| 99九九精品视频| 激情久久五月天| 狠狠色噜噜狠狠狠狠综合| 狠狠99| 色一情一乱一乱91Av| www热久久yy9| 日韩一级A片黄色| 欧美五月婷婷| 六月激情婷婷综合| 日日夜夜爽| 激情五月五月婷婷| 久久九九热视频| 色99视频| 九九艹女| 亚洲免费观看高清完整版AV线| 日本丁香久在线| 九九色之九九色88| 深爱激情小说五月婷婷| 51avj视频大全| 天天做天天爱天天高潮| 色色日本| 久久ri精品| 男人的天堂99| 久久新地址| 一区二区中文字幕| 97丁香五月| 婷婷婷久久久| 中文字幕无码人妻少妇免费视频| 欧美日本高清视频99| 色五月综合激情| 秋霞黄色一级久久| www.婷婷五月| www.夜夜操| 黄色片avv| 丁香五月婷婷Av| 人人澡天天色天天做| 超碰renrenai| 激情性爱五月天| 性做久久久久久久免费看| 亚洲不卡123| 九热精品| 99热在线成人网站| 色婷婷电影网| 91在线操| 婷婷五月天综合蜜桃| 五月天综合图片| 色五月天堂| 99久久66综合| 丁香色六月婷婷| 天天综合永久| 婷婷综合五月天| av一区免费看| 丁香成人综合| 中文字幕黄色片| 婷婷丁香日韩五月| 99精品视频在线6| 色五月人妻| 欧洲色色| 玖玖婷婷五月天| 色婷婷五月天视频在线| 无遮挡国产高潮视频免费观看| 婷婷丁香黄色| 婷婷丁香激情五月| 丁香色婷婷| 9久久久| 婷婷五月天va| 亚洲色五月婷婷| 国产91在线视频| 激情五月伊人婷婷| 大香蕉手机视频| 色婷婷最新域名| 激情网站综合五月天| 午夜激情综合| 在线视频99| 婷婷五月天激情丁香| 久久色情| 九九热视频精品2| 五月激情综| 亚洲精品国产A久久久久久| 男人的天堂五月丁香| 无码人妻一区二区三区免费九色| www99热| 丁香婷婷色情| 久久久精品人妻| AA片在线观看视频在线播放| 五月天婷五月天综合网在线观| 97操操操| 超碰九九热| 99色网站| 日本三级网址| 美国色五月天婷婷资源站| seav天堂| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 情色婷婷五月天| 9色天堂| 狠狠狠人妻| 天天干天天插| 久久在这里有精品| 色色亚洲| 97涩涩丁香五月天| 大战熟女丰满人妻AV| 丁香五月天在线观看视频| 亚洲综合另类| 精品久久久999| 免费亚洲婷婷| 99人人操| 色狠狠999综合| 操久久精| 婷婷五月天堂| 中海油常州环保涂料有限公司| 欧美性爱一区| 91色久| 91大神操美女| 日本久久99| 99热超碰在线| 六月丁香成人| 性生生活大片又黄又| 丁香五月婷婷激情视频播放| 色天使色综合| 五月婷婷在线观看黄| 婷婷丁香成人五月天| 色婷婷六月| 丁乡久久| 99热这里只有精品中文字幕| 激情婷婷五月天伊人在线观看| 五月天婷婷色色| 丁香综合伊人AV| 婷婷无五月无码视频| 99er久久| 丁香五月综合久久综合| 国产精品久久..4399| 色色五月天丁香| 国产这里只有精品| 日逼免费视频| 丝袜激情网| 思思热精品在线| 激情精品久久| 中文字幕av网站| 色欲影香| 色五月开心五月激情五月| 国产一区二区av免费| AV天堂婷婷五月天| 操操天堂| 亚洲国产精品二二三三区| 淫荡综合网| 青青草五月天| 五月婷婷激情| 天天色色天天| 九玖视频这里只有精品| 五月天婷婷Av| 91九色精品熟女内射| AV天堂淫乩| 白度黄视频| 九九操操| 五月天婷婷丁香六月| 插逼综合网| 夜夜操狠狠操| 色婷婷的五月天| 丁香五月天无码AV| 婷婷五月天天激情| 超碰在线看| 九九色视频| 久久久999精品| 欧美A级成人婬片免费看理论| 欧洲亚洲精品| 最新五月天婷婷影| 一级精品999WWW| 综合AV网| 亚洲天堂99| 综合色激情| www.com在线操视频免费观看| 色婷激情网| 91九色在线观看免费| 激情欧美五月丁香| 玖玖资源站视频| 五月天婷婷久久视频| 色色热| 超碰97免费在线| 能看的AV网站| 99精品免费| 青青草原爱爱网| 婷婷五月激情基地| 激情综合五月| 久操干| 伊人色欲五月天| 天天爱天天操| 久久久久9| 人人干av| 久草婷| 五月丁香激情片| 超碰99热精品| 久久99免费视屏| 天天成人五月天| 99ri精品视频在线观看| 久久人五月| 99久久成人| 色综合五月天| www狠狠| 亚洲操B| 五月综合激情啪啪啪啪啪| 丁香五月大香蕉| 婷婷五月天网址| 亚洲99一级无嗎特制在线| 婷婷激情六月综合| 大香蕉婷婷| 激情丁香社区| 91狠狠综合网| 操97免费超级视频| 操骚货在线| 丁香婷婷五月天成人| 综合在线丁香五月| 欧美黑人巨大性生话| 思思热国产视频| 日韩成人AV在线| 久久精品91视频| 五月丁花六月丁香综合| 亚洲免费电影2| 五月丁香激情欧洲啪啪| 五月丁小婷婷激情四射| 亚洲婷婷丁香五月视频| 超碰在线网站9| 深爱五月中文字幕| 国产性av| 看国产探花操逼三级片| 激情六月婷婷啪啪| 国产精品久久7777777精品无码| 亚洲欧美在线观看| 五月天婷婷丁香视频| 亚洲成av人影院| 新99思思视频| 亚洲视频一区| 日日婷婷不卡| 大香蕉AV电影在线| 可以免费看AV网站| 综合色婷婷| 殴美综合激情五月天免费视频| 色一情一乱一乱一区9| 五月丁香六月成人| www.综合久久.com| 这里只有精品2| 色综天天综合| 五月天婷婷久久| www.日韩艹| 日本黄色三级片内射| 亚洲色色精品| 婷婷激情综合色五月久久91| 五月天播播中文字幕| 婷婷五月网图片区| 99精在线| 六月婷婷狠狠色在线观看| 亚洲日韩一页精品发布| 丁香婷婷五月六月天| 丁香婷婷AV| www.色擼擼.com| 99九九免费精品| 人人操av| 九月婷婷| 狠狠CAO日日穞夜夜穞AV| 色婷婷五月综合在线| 天天色中文字幕女优AV| 五月天激情小说欧美激情| 超碰中文字幕在线| 综合网色| 激情婷婷人妻| 99热在线播放精品| 五月天婷婷网站888| 丁香色五月婷婷17C| 国色天香成人网| 色丁香五月婷婷在线| 99色| 国产99精品免费视频| 男人操女人高潮91视频| www.99热这里只有精品| 丁香婷婷久久 | 婷婷激情综合| 白天AV月月| 肏日网在线看| 色爱亚洲| 天天综合网网欲色| 激情久久五月天| 欧美大片免费播放器| 五月丁香AV在线| 91人碰| 人人干av| 婷婷五月情天| 狠色综合网| 国产精品成av人在线视午夜片| 26uuu欧美| 99精品视频在线免费观看| 9 7总站超级碰免费视频| 丁香五月天.com| 婷五月天在线草| 九九超日本| 久热只有精品| 色五月天成人| 日日夜夜青青草| 激情五月色综合网| 99久久九九视频| 亚洲色图五月丁香| 色情免费视频播放| 亚洲精品视频在线播放| 99热欲| 狠狠狠狠狠狠| 色色色99| 色久五月| 婷婷亚洲天堂| 狠狠色婷婷色| 色久综合| 日本啪啪网| 六月丁香激情综合| 日日骑夜夜撸| 成人免费在线电影| 亚洲AV成人一区二区在线观看| 久操人妻| 人人干人人看| 丁香亚洲婷婷五月| 久热欧美| 婷婷色一二三区波多野结衣| 成人午夜天| 九色91国产| 99热精国产这里只有精品| 欧美日韩一a.无| www.久久婷婷| www.夜夜爱.com| 99热国产| 亚洲无码播放| 五月激情婷婷播播开心| 丁香五月23111| 日日干五月天婷婷| www.91在线观看| 91av色色乱视频| 国产国产乱老熟女视频网站97| 爆乳熟妇一区二区三区爆乳照片| 99re这里| 五月天色婷婷基地| www.狠狠操.con| 色区久久| 国产av基地| Caoporn公开| 成人国产欧美大片一区| 亚洲这里只有精品| 中文字幕在线资源| 97热这里精品在线视频| 六月激情综合| 色噜噜五月天| 欧美丁香婷婷五月| 开心五月深爱婷婷| 婷婷五月天美女视频| 婷婷五月天,影院| 久久最新色色色| 日本99热| 色九月| 99九九99九九九视频精彩| 国产永久一黄| 五月天丁香啪啪啪啪| 激情五月四色| 影音先锋91网站在线观看| 91狠狠色丁香婷婷综合久久| 丁香六月激情综合| 超碰99热| 狠狠综合| www.色婷婷| 26uuu亚洲| 日韩AV大全| 二色av| 天堂久久精品| 91九色国产| 五月天婷婷网站888| 色婷婷激情四射视频| 激情五月天视频| 十一月婷婷激情四射| 五月天婷婷7米| www五月| 天天爽天天| 日本在线99| 67194中文字幕| av在线免费网站| 超碰高清在线| 玖玖婷婷综合| www久久久久久久97| 91超碰在线观看| 综合激情五月天| 老司机日日夜夜青草| 99综合| 青柠影视免费高清电视剧| 另类少妇人与禽zOZZ0性伦| 亚洲乱码日产精品BD| 久久精品A片777777| 牛牛澡牛牛爽| 亚洲热久| 99自拍网| 桃色Av色哟哟| 天天舔天天| 天天综合网网欲色| 国产婷婷综合在线免费视频| 婷婷在线视频| 精品无码久久久久久久久| 九九爱激情| 六月丁香天堂| 中文字幕av久久爽一区| WWW.激情| 六月五月婷婷| 九九干视频| 丁香色婷婷| 熟女人妻一区二区三区免费看 | 91久久精品国产91性色TV| 日韩人妻白浆视频系列| 五月天激情图片网| 97色碰| 四虎婷婷五月天| AAAA网站| 97久久视频| 色五月情| www一起操在线观看| 婷婷九月激情| 五月天堂婷婷| 人人草人人看| 五月天大香蕉| 丁香六月成人网| 久久五月婷| 先锋资源 996| 久大香蕉| 任你躁XXXXX麻豆精品| 色色婷婷婷丁香五月天| 天天综合情| 79色色免费| 热久国产| 综合色五月亭亭| 91九色国产熟女| 亚洲一色色色色色色色色| 五月婷婷激情四月| 久操大香蕉| 色吧婷婷五月亚洲| 色五月色五天色情网| 五月丁香激情综合欧美| 99热精品观看| 思思9久久| 97人人操| 婷婷五亚洲| 激情综合亚洲| 99热免费18| aaaaa黄色| 婷婷五点亚洲| 一本色道久久综合狠狠躁小说| 丁香五月停停av| 120分钟婬片免费看| 深爱激情网五月天| 五月天另类激情在线| 综久久久| 五月丁香在线国产| 超碰免费99| 欧美97超碰| 色情五月天视频网| 五月天婷婷色| 久9综合| 丁香五月,开心五月,成人婷婷| 丁香激情综合| 无码人妻少妇色欲AV一区二区| 99在线视频免费| 天天添天天摸天天天天做| 狼人久草| 婷婷综合av| 天天舔天天| 欧美日韩成人| 4399欧美另类视频| 婷婷成人小说综合| 色五月综合网| 中文字幕AV网址| 五月婷婷开心综合| 欧美色综合天天久久综合精品| 婷婷综合精品| 婷婷丁香五月综合免费视频百花| 在线视频区| 人人草成人视频| 精品女人九九九| 狠狠色狠狠色综合日日91| wwccc久久久| 婷婷五月花| 久久九九玖玖| 99视频只有精品| 五月丁香久久激情综合| 天天拍夜夜爽日日| 99啪啪视频| 伊人干综合| 久久9热| 日本一级大片| 久久婷婷五月综合伊人| 不卡在线中文字幕无| 天天舔天天插天天爱| 91色吧网| 青996青| 婷婷五月情天| 九九伦子片| 国产精品成人av在线观看春天| 极品人妻VIDEOSSS人妻| 思思视频精品| 桃色五月天| 日本激情ⅩXX免费视频| 日日天天干| 色色婷婷五月天| 五月丁香成人| 九九AV在线| 色玖玖导航| 久久精品99久久| 九九在线视频| 婷婷久久精品| 国产成人AV在线播放| 色播五月综合网| 99在线观看精品视频| 9 1大香蕉| 操操操Av| 久久在线大香蕉| 五月婷婷激情综合| 99五月婷| 玖玖99免费视频| 一区二区免费看| 五月综合丁香婷婷| 亚洲婷婷91丁香| 国产97色在线| 久热久| 国产激情综合五月久久| 久久久色婷婷五月天| 日本婷婷五月天| 丁香六月天AV| 51精品国自产在线| 五月丁香狠狠| 9999热精品| 十一月婷婷激情四射| 99热网址| 亚洲第一第二网站| 亚洲99激情| 国产精品美女久久久久AV超清| 五月色情网| 色狠狠婷婷| 99热免费精品| 婷婷五月网图片区| 91久久99久久91熟女精品| 99久久久久| 五月婷婷六月色| 91小黄书网址在线观看| 91九色无码内射| 色欲午夜无码久久久久久张津瑜 | 激情五月丁香亭亭| 91婷婷丁香五月| 97人人草| 青青草蜜臀| www.激情五月天.com| 婷婷六月天| 九九九九国产| 国产亚洲精品久久久久久郑州| 日日狠夜夜狠| 无码动漫AV| 日韩一级片| 激情五月无码| 九九九九成人| 97久久视频| 激情综合网激情五月网| 碰碰碰97免费精彩视频| 色丁香五月婷婷| 中文不卡一二三区| 久人人操| 五月天色丁香| 婷婷五月天首页| 伊人玖玖网| 狠狠穞A片一區二區三區| 综合五月天天天天天五月| 丁香五月天激情四射网络不好| 91丨九色丨熟女| 亚洲婷婷开心五月| 91热手机在线| 激情综合婷婷| 久久精品视频在这里有| www.91色| 99久久超级| 99激情网| 色性日本| 亚州操操| 一本大道伊人AV久久综合| 亭亭玉月丁香| 激情婷婷五六月天| 婷婷五月丁香色播| 婷婷色综合| 79精品视频在线观看,| 亚洲无码成人网| 1769在线观看欧美国产| 婷香五月激情视频| 狠狠草狠狠草| 久热这里只有精品在线观看| 美女伊人久久| 欧美人与性动交CCOO| 97操碰在线视频| 狠狠色丁香婷婷基地| 超碰在线观看9| 九九婷婷五月天| 日本人妻A片成人免费看片| 婷婷激情六月天视频| 97色婷婷| 久久思思99| 天堂成人A片永久免费网站| 少妇性按摩无码中文A片| 五月婷婷综合激情| 久久婷网| 四色五月婷婷| 丁香五月婷婷啪啪| 色五月激情综合| 五月婷在线视频免费播放| 丁香五月天啪啪| 欧洲区自拍| 国产偷人爽久久久久久老妇APP| 99热在线看片| 五月婷婷精品无在线| 高潮毛片遮挡费高一百度| 国产综合81p| 天天射天天操天天干| 99热都是精品| 色情久久久| 99无码黄色视频| 色五月五月天| 就要去操亚洲成人精品五月天丁香婷婷| 色婷婷亚洲在线观看| 野战J办公桌椅H| 五月花免费视频| 成人免费在线电影| 五月花综合视频| 五月色欧洲| 丁香亭亭久久| 五月天综合久久| 五月天之色情综合网| 狠狠久久婷五月综合色| 婷婷五月天基地| 午夜丁香| 中文字幕,综合,91| 99乱视频| www.夜夜騎夜夜狠| 开心四月婷婷在线色播播| 九热视频| 大香蕉狼人久久| 99久久高清视频| 99热10在线高清播放| 国产FREESEXVIDEOS性中国| 伊人五月天在线| 99热爱爱干干日| 免费精品99| 日韩aaa| 噜噜色噜噜网| 天天爽天天摸| 久久久99精品| 婷婷五月天AV激情| va婷婷在线| 美女va| 激情丁香五月天综合| 日韩综合天堂| 亚洲六月色婷婷| 色女人久久| 激情视频91| 婷婷五月综合色拍| 亚洲性爱电影| 丁香五月综合激情啪啪| 男人的天堂五月丁香| 五月婷免费视频| 一本九九色| 五月婷九九草| 日逼影音先锋AV男人资源站| 色九九九综合| 日韩精品在线观看9| 真实的国产乱XXXX在线91| 五月天大香蕉av| 色色五月婷婷网| aaa久久久| 色婷婷AV在线观看| 激情色情五月天| 亚洲欧洲一二| 国产小网站| 任你操精品免费| 熟女激情网| 成人av免费观看| 色色综合无码| 欧洲激情五月天婷婷| 天天操天天操| 九九热这里只有精品31| 婷婷 月 丁香| 在线综合网| 99热综合在线| www.久久| 拍真实国产伦偷精品| 第四色在线观看| aV直接看| Av在线资源| 97色婷婷在线观看| 热久久91| 五月激情四射婷婷丁香| 五月激情婷婷开心五月| 亚洲久久婷婷| 九九婷婷网五月天| 亚洲va综合va国产va中文| 影音先锋噜一噜| 日日干日日| 国产69久久久欧美黑人A片| 久久婷婷综合五月| 男人視頻站| 久久性爱视频| 天天干天天日天天插| 日本成人噜噜| 大香蕉中文| 这里只有精品视频在线| 99年操人人爽| 黄色五月婷| 久久综合性| AV 3P| 久久久久丁香婷婷五月天| A在线观看| 99综合网| 国产午夜成人免费看片无遮挡| 久久丁香婷婷色情综合| 婷婷五月激情的图片| 丁香久久| 开心五月丁香啪| 婷婷性福五月天| 色色色无码| 成人做爰黄A片免费看直播室男男| 五月天丁香看婷婷| 色噜噜狠狠色综合成人网| 色必久悠悠影院| 亚洲激情97五月天| 91操熟女| 精品国产一区二区三区四区阿崩 | 久久色五月天激情小说| 香蕉操亚洲| 欧美私人家庭影院| 成人网页在线观看| 五月丁香激情综合啪| 色五月视频,小说| 五月久久婷婷| 亚洲成人AV高清字幕| 亚洲人妻电影| 六月综和久久| 欧美成人性爱网| 五月婷婷香| 97超级免费无码| 快乐激情五月色婷婷| 五月婷婷丁香狠狠撸久久| 亚洲中文字幕AV| 任你搞免费视频观看| 丁香五月日韩| 婷婷五月噜噜| 久久九九99| 另类国产欧美视频| 爱性综合网| 丁香五月Av| 色999亚洲人成色| 久久婷婷丁香五月宗合| 五月熟妇婷婷久久| 色色五月婷婷久久| 丁香五月激情久久麻豆| 婷婷久久亚洲| 亚洲欧美一区二区三区爱爱动图 | 思思99热| 激情五月色综合网| 五五月五月| 色哟哟www| 成人亚洲精品久久久久| 久久艹99| 五月丁香黄色| 久久曰曰| 九九热大香蕉| 青青草原精品久久| 久热这里| 日韩在线观看亚洲| 天天成人综合视频| 欧洲亚洲精品| 色婷婷精品视频| 26UUU精品一区二区c〇m| 开心激情网在线| 婷婷综合在线视频| 精品九九视频| 99人人干| 丁香六月啪啪啪| 色亚洲欧洲| 国产XXXX搡XXXXX搡麻豆| 中文字幕综合网| 婷婷伊人网| WWW嗯嗯啊啊啊啊| 婷婷激情肏屄网| 色五月大| www九月婷婷| jiujiu无码五区| 激情九月婷婷| 婷婷色一二三区波多野结衣| 激情二色月| 伊人色综合网| 久9热在线视频| 五月婷婷综合丁香视频| 婷婷丁香成人色综合| 五月丁香久久综合| 亚洲人妻av| 久久婷婷五月天激情四射| 五月天天爽| 中文字幕人妻一区二区| 内射激情在线| 大香蕉久操| 综合色播| 丁香五月91| 色九九九九| 色婷婷亚洲精品天天综| 五月婷婷香蕉| www·五月天| 嫩草AV久久伊人妇女超级A| 九九综合久久| 亚洲色碰| 超碰com| 国产成人AV在线播放| 人妻中文字幕精品| 五月综合色播播丁香婷婷| 尤物一区二区| 丁香五月综合福利视频导航| 激情小说五月天| 久久五月天精品视频| 天天插综合| 九九精品在线视频观看| 99热日本| 9色在线| 色五月天丁香| 亚洲av综合网| 六月婷婷av| 国产精品日日躁夜夜躁| 另类图片五月天| 玖玖五月丁香| 亚洲综合五月天婷婷丁香| 欧美成人日韩| 天天爱天天狠天天透| 99热插| 免费看成人747474九号视频在线观看| 2013AV天堂| 99色色| 久久草中文日韩欧美| 91avse| 色吧综合网| 激情综合五月婷婷| 99色看这里只有精品| 国外亚洲成AV人片在线观看| 五月丁香亚洲五月| 新激情五月天| 色色网站免费| 青996青| 色99网| 欧美日韩成人在线| 亚洲精品视频在线播放| 婷婷丁香五月天欧美| 91无码色色| 丁香五月色五月婷婷宗合| 九九色中文| 五月天开心网| 综合啪啪| 99久久久| www.人人操人人看人人想人人摸 人人人人操,COM | 黄色精品五月婷婷| 综合网色| 色综合爽| www.97视频| 五月婷婷六月少妇激情| 五月丁香久久婷| 综合激情五月婷婷| 色 免费网站视频| 99热在线观看| 丁香六月无码| www91久久| 日本三级大片| 婷婷五月天无码熟女| 亚洲182在线观看| 99热在线观看| 久久er视频6| 色伊人91在线视频| 日韩AAAAA| 大香蕉婷婷色| 人妻熟人中文字幕一区二区| 亚洲日日操| www.婷婷五月天| 欧洲第一无人区观看| 丁香六月婷婷综合在线| 99热丁香| 五月丁香婷婷综合网| 婷婷丁香视频| www.色情五月天.com| 久久99婷婷| 亚洲mm色| www:99热视频| 午夜五月天| 日本激情五月| 成人中文字幕在线| 天堂成人A片永久免费网站| 99免费视频网| 九九色影视| 91性交在线播放| 五月婷激情影院| 婷婷五月天无码熟女| 99日视频在线| 色婷婷丁香五月| 久久久精品色| 天天激情5月天亚洲| 婷婷在线网| 91丨九色丨熟女|老版| 午夜丁香六月婷| 停停五月色宗合| 五月天婷婷色色| 综合网天天| 操国产人妻| 97干在线观看| 中文幕无线码中文字蜜桃| 五月丁香啪啪啪免费看| 狠狠干狠狠干| 激情丁香淫荡婷婷| 91婷婷五月丁香碰| 亚洲乱码日产精品BD| 婷婷五月六| 激情综合网婷婷久久| 天堂久久性| www久久久久久久久久久| 久久99综合网| 深爱开心激情网| 91婷婷色五月| 超碰2021| 色偷偷五月天| www.minyis.com【JT】实力收量可预付QQ2101460746 | www.婷婷五月天,com| 殴美97色| 97色干| 丁香婷婷噜噜| 六月丁香啪| 激情人妻综合| 亚洲三A| 99热99色| 亚洲欧美另类在线23p| 激情五月开心五月在线视频| 五月婷婷狠狠久久| 国产真实乱了老女人视频| 六月丁香啪啪啪| 99热久久这里只有精品2010| 五月天五月色婷婷综合| 五月丁香婷婷啪啪网| 狠狠干五月| 五月婷在线| 超碰色综合| 丁香五月婷婷色偷偷| 俺五月| 久久这里这里有精品免费视频| 久久九九re热| AV网在线| 五月色综合| 五月丁香婷中文| 99亚州综合精品成人网| 丁香成人综合| 狠狠干综合| 婷婷操久久| 亚洲激情Av| 夜夜操加勒比| 久操婷婷| 五月天婷婷激情小说电影| 六月丁香五月婷婷| 快色t v在线入口| 桃色伊人在线| 婷婷丁香六月五月天| 色色五月天网站| 精品99在线观看|