免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
欧美天天草人人草| 色色五月天婷婷丁香| 色噜婷婷| 思思re最新视频| 91久久精品无码一区二区三区| 激情婷婷人妻| 丁香五月天色综合| 婷婷涩五月| 91精品国产综合久久久不卡电影| 五月天综合| 很很干夜夜干| 五月丁香六月婷婷久久久综合| 久久多色| 日本欧美国产| 99人人操人人操人人精| 97成人超碰免| AVV黄| 精品亚洲国产成人A片在线鸭王| 久久久久久久人妻| 婷婷日日夜夜| 色五月婷婷五月丁香五月| 狠狠色婷婷| 人操91在线| 精品色色| 伊人久久艹| 亚洲精品色| 婷婷丁香五月天狠狠| 热99这里只是精品| 99re这里只有精品99| 婷婷五月18永久免费网站| 五月天激情国产综合婷婷婷| 噜噜噜狠狠色综合| 丁香六月综合激情| 成人精品视频99在线观看免费| 精品激情| 色色亚洲| 亚洲情综合五月天| 涩丁香| 成人免费120分钟啪啪| 久久伊人五月天| 久久婷五月综合| 色色网站免费| www.jiujiujiu| 草综合14| 天堂在线9| 啪色综合| 天天插天天爱| 国产又爽又猛又粗的视频A片| 色色色色网站| 欧美S码亚洲码精品M码| 超碰成人黄色网| 另类少妇人与禽zOZZ0性伦| 99热这里只有精| 538在线精品| 丁香六月激情四射| 狠狠插狠狠操| 色色色色欧美| 成人人操| 丁香五月久久| 少妇婷婷五月天| 日本va欧美va精品发布视频 | 日日日日做夜夜夜夜无码| 久久久久亚洲AV成人无码电影| 久草九九| 思思99热热热99| 五月天婷婷色五月天| 99综合网| 欧美另类五月激情| 天天做天天爽| 99热婷婷| 超碰人人操人人9| 久热爱大香蕉在线蜜臀悦色| 婷婷综合色| 欧美色色色| 九九爱这里只有精品| 梁铮版蜘蛛女在线观看| 久播影院免费观看电视剧大全最新网| 亚洲色夜| 99re6在线视频精品免费| 激情内射人妻1区2区3区| 久久精品A片777777| 日本操B视频在线观看| 九九色婷| 在线成人网站| 天天操夜夜爽| 欧美性爱五月天| 天天爽天天| 久久99国产综合精品免费| 影音先锋91网站在线观看| 99人人爽| 九九精品在线视频观看| 五月花亭亭| 可以免费观看的AV| 伊人在线视频| 毛片新网地| 99爱欧美| 91九色精品| 96丁香六月婷婷蜜桃综合久久| 欧美S码亚洲码精品M码| 99黄色在线视频精品熟女| 久热视频A.| 五月丁香激情婷婷综合| 亚洲天天| aaa9区免费在线观看| 九九av| 99.色| 五月天精品| 色五月激情网| 九九 激情 网| 日日夜夜天天爽| 97干免费视频| 99精品偷拍视频| 五月亭亭六月色| 亚洲va欧美va国产综合久久久| 9九色首页| 色婷婷五月综合| 天天久久婷婷| 激情久久五月网| 色五月天电影| 日韩色色色色| 十月丁香婷婷| 激情五月天视频| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 九九精品这里只有| 99九九在线观看免费| 青柠影视免费高清电视剧| 大香蕉 伊人夜| 午夜九九电影| 91欧美| 婷婷伊人綜合| 五月天婷婷视频30| 成人无码精品1区2区3区免费看| 欧美视频五区| 久久视频婷婷| 99这里有精品视频| 人与禽A片啪啪| 丁香六月啪啪啪| 五月天激情网页| 婷婷五月天视频| 性色人人爽| 中文字幕成人| 激情色视频| 9久久久| 日韩99视频| 91在线日| 超碰在线观看三级片| 精品无码99| 激情四射婷婷色色色| 五月天婷婷av| 欧美Va在线| 最新日韩久热免费视频看看| 九九热免费视频| 另类小说五月天激情| 九色1区视频在线| 五月婷婷激情综合| 久久er九九| 亚洲操女| 超碰av在线| 五月激情偷拍婷婷| www.zbzhongsen.com| 婷婷综合久久综合| 久久这里都是精品免费| 丁香五月天啪啪| 天天弄天天操| 在线综合婷婷| 欧美超碰人人| 五月婷婷激情久久| VfJxEwPH| 五月天开心色色网| 欧美草久久五月天91| 欧美内射AAAAAAXXXXX| 五月天丁香六月综合| 精品久热| 狠狠香婷婷五月| 久久婷婷伊人| 天天 日综合| 五月婷婷激情综合| 成年人99热| 日韩精品色| 九九激情网| 开心五月激情| 啪啪日本欧美| 噜噜狠狠色综合久| 日本三级中国三级99人妇网站| 色欲天天综合网| 六月色色| 日逼影音先锋男人AV资源站| 五月丁香亚洲综合| 日韩成人AV在线播放| 婷婷综合视频| se色99| 亚洲亚洲人成综合网络| 亚洲夜夜操| 九九九九无码| 99热婷婷| 日本五月丁香| 色色色色色五月| 96精品久久久久久久久| 国产色婷婷亚洲| 99燥99日| 超碰人人超碰| 26uuu欧美亚洲日韩| 色色色激情网| 黄网免费看| 色噜噜狠狠色综合无码久久欧美| 大香蕉伊人丁香五月| 人妻VideOssS人妻高清| 超碰激情网| 久热这里| 狼人婷婷久久| 亚洲十月婷婷综合| 丁香五月激情棕合| 九九九激情网| 九九色热| 婷婷五月丁香基地| 五月天色导航婷婷资源婷婷| 丁J香六月首页| 丁香激情五月| 丁香五月激情综合久久| 丁香六月激情| 综合五月激情网| 日韩在线99| 婷婷中文字幕| 久久婷婷五月天激情四射| 女性自慰系列第五页| 亚洲综合五月天婷婷| 激情五月天偷拍综合网| 99热精品一区| 99热99在线| 97日本在线播放| 天天搡日日搡aaaaⅩ| 九九热区一区二区三区| 五月色婷| 蜜乳人妻一区二区三区| 亚洲亚洲人成综合网络| 久久激情网| 亚洲免费99| 久综合色| 超碰不卡在线| 成人免费超碰| 少妇大叫太大太粗太爽了A片| 天天日日爽| 久久人操| 久Se视频在线观看| 狠狠色综合图片| 亚洲视频99| 99热这里只有精品国产首页| 奸逼视频| 99热精品在线播放观看| 久热这里只有精品在线观看 | 99在线视频在线观看| 五月婷婷激情综合在线| 五月丁香美女| 天天摸天天舔天天爽| 亚洲久热无码| 久久视屏这里只有久久| 99riAV国产精品视频| 激情玖玖sh| 色99在线| 91超级碰碰碰| 久久色区| 久久xxxx| 久草大| 色五月丁香五月天| 快色t v在线入口| 激情宗合哪里能看| 天天操夜夜啊| 综合激情五月四射婷婷| 色色婷婷五月天| www.久9| 丁香婷婷成年| 婷婷五月天久草在线| 婷婷五月天福利| 97干在线播放| 亚洲综合久| 久久五月天网| 日韩综合久久| 色综合网址| 九九热精品在线| 日韩欧美一级大黄网站| 情久久综合五月天| av人人干| 色你久久| 天天爽天天爽天天爽天天爽天天爽天天爽天天| 无码人妻激情| 婷婷丁香久久| 狠狠看狠狠| 91丨九色丨国产打屁股| 5月婷婷视频网站综合| 九九久久综合| 九九家庭影院| 色狠狠图片| 色色婷婷综合网| WWW、日本色丁香、co m| 激情五月天啪啪视频| 国产1区2区3区在线观| 大香蕉九九| www.久久久久| 激情美女五月天| 99久热在线精品| 色色五月婷| 九九青青草成人| 99热亚洲| 成人天天爽| 人妻久久久久久久久妻久久久久久久久| 色五月天激情| 情欲综合网| 天天操天天操| 几激情五月婷婷色五月色天堂| 九九热在线视频观看| 中文AV网站| 野战毛片三一3| 久久久27操| 亚洲最大在线| 久久精品99国产精品日本| 国产成人精品123区免费视频| 牛色色碰| 先锋资源91| 97视频.干com| 色插综合网| 久久开心五月婷婷| 久热91精品| 天天干天干| 激情小说五月天| 夜夜操加勒比| 激情六月婷婷| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 综合亚洲AV| 九九热99免费视频| 色另类五月天| 99综合视频| 91久久久久久| 第九色区AV在线| 大香蕉 伊人夜| 五月天大香蕉| 韩国久久少妇视屏| 久久久8| 天天拍天天操| 日韩黄色电影| 日日干日日s| av性爱在线| 五月激情影院| 亚洲亚洲人成综合网络| 国产无人区大片| 99热99ai| 五月天成人免费视频| 色婷婷久久| 教师性爱毛片| 婷婷激情丁香五月婷婷激情丁香五月婷婷| 色婷婷裸体色性在线| 碰碰91| 少妇高潮呻吟A片免费看软件| 五月香蕉网| 人人爽在线视频综合网| 超碰网站在线观看| 狠狠干.com| 色九月婷婷综合| 日韩欧美四五区| 五月天成人在线播放| 丁香五月天啪啪| AVV黄| 欧日韩AV| 婷婷色综合| 九九久99免费视频| 丁香婷婷人妻综合网| 五月婷婷激情中文字幕| 五月丁香六月停停停| 五月天社区| 思思热99热| 情欲禁地| 亚洲成人在线在线| 狠狠干综合| 久久婷婷在线| 久热久| 性色婷婷| 天天爱天天爽| 激情性爱婷婷| 五月天婷婷青青草| 人妻丰满精品一区二区A片| 中文字幕视频在线播放| 182TV大香蕉| 极品少妇婷婷五月| 色欲AV导航| 风流少妇A片一区二区蜜桃| 天天爽在线视频| 91碰| 激情婷| 亚洲色色色色| 97超碰婷婷五月天| 婷婷五月天,影院| 99操视频| 色色免费网站| 99热欧美| 99无码视频| 色五月婷婷网| 国产成人AV在线播放| 婷婷五月天激情在线| 日韩成人中文| 亚洲九九99精品视频在线播放| 激情五月婷| 三级三久久线久久99久目本WW| 综合久久99| 99热97美女| 性生活久久朋友人妻| 少妇出轨做爰高潮A片| 天天人人综合| 色99视频| 天天噪夜夜爽| 久久5 9视频免费观看| 熟女重口味αV| 99这里有精品| 天堂爱爱| 4438亚洲欧美| 久久色这里只有精品| 国产av天天插天天操天天爽| 久久婷婷五月天激情唯美| 黄色国久久| WWW激情五月天| 无码成人AAAAA毛片AI换脸| 99视频久久免费视频| 五月天社区| 热九九在线| 色婷婷电影| 婷婷丁香久久五月综合| 丁香情色五月| 舔色婷婷| 亚洲中文字幕网| 日本五月婷| 金桔一区二区ab地址| 五月丁香色婷婷| 青青操avbb| 亚洲无AV在线中文字幕| 色婷婷视频综合| 丁香婷婷久久综合在线| 91干视频| 亚洲激情电影五月天色婷婷丁香一起草| 亚洲va综合va国产va中文| 五月综合婷婷开心网| 99精品偷自拍| 这里只有精彩视频| 狠狠搞五月天| 激情综合色婷婷啪啪五月天| 亚洲激情久久| 丁香五月自拍| 激情婷婷护士激情| 99综合久久| www.久久| 色情网综合| 久久免费精彩视频| 色热久资源| 99精品偷自拍| 九九这里只有精品| 丁香五月天色| 婷婷五月超碰| 狠狠干五月天| 怡红院视频| 91成人电影| 超碰在线国产| 欧美日韩AAAA| 极品色丁香| 97一区二区| 天天干天天插| 五月综亚洲| 九月丁香欧美综合| 人妻少妇色综合| 五月开心深深爱激情综合| 日韩另类在线观看| 91中文狠狠综合| 天天噜| 丁香午月AV中文字幕| 九月停停| 久久综合激情| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 青青草日本亚洲| 91九色欧美| 99精品偷自拍| 黄网免费观看| 丁香五月婷婷色情综合| 色爱综合视频| 99精品一二三四视频| av亚洲国产小电影| 久久久久9| www.av骚货| 色色色999| 99久热在线精品99re6热| 丁香五月性| 五月婷婷丁香av| 日韩综合网络男女香蕉a片| 热91久| 亚洲欧美成人在线| 99这里只有精品视频| 五月天天天综合| 日本九九网| 色色欧美。| 五月婷婷中文字幕| 999激情视频| 色婷婷综合网站| 丁香婷婷五月天校园春色| 久久婷婷五月综合啪| 五月天大香蕉av| 99亚洲视频| 天天摸天天舔天天天天爽| 激情五月综合免费| 婷丁五月| 五月丁香啪啪| 色色色999| 91大屁股精品| 伊人久久综合| 久99久视频精选| 高潮毛片又色又爽免费| 五月婷婷色| 99ri视频| 五月天久久婷婷| 99爱精品| www.99热精品| 激情五月婷黄版| xxx.色婷婷| 五月丁香六月花| 99热这里只有精品13| 精a品a视a频| 九月丁香亭亭| 色啪影院| 成人五月天综合网| 这里只有精品在线视频精品| 婷婷五月色| www99精品| 久久99久久99精品免观看粉嫩| 久久人操-久草婷婷-成人AV| 色爱综合五月| 9视频1在线| 丁香五月激情月| 国产精品视频网| 超碰在线个人观看| 九九热99精品| 中文在线成人| 任你爽精品免费视频6| 99人人干人人| 97人人干人人操| 亚洲AV综合在线观看 | 九九色综合九九色| 99精品免费视频| 色五月欧美| 天天插天天爽| 五月天操逼网| 九九热精品| 99热激情| 成人免费120分钟啪啪| 国产69久久久欧美黑人A片| 北京熟妇搡BBBB搡BBBB| 欧美三级巜人妻互换| 五月天网址在线刘玥| 亚洲综合网在线| 99@久久@99精品视频| 九九色网| www.婷婷.com| 性色播| 色狠狠六月| 天天日天天做天天操| 大陆肏屄视频| www,色婷婷| 亚洲综合五月天婷婷| 激情久久久| 久久久久久五月天| 丁香婷婷婷五月综合色情| 国产avapp 网| 安息电影在线观看完整版| 亚洲AV激情五月综合网| www99热| 成人五月天丁香婷| 亚洲无码色| 开心色色五月天综合| 久久九九经典| 97在线精品| 97婷婷丁香五月天激情图片| 欧美色色网| 五月天综合激情网| 99精品视频在线观看| 国产免费一区二区三州老师F1……| 成人短视频免费| 丁香五月婷婷超碰在线| 五月丁香六月婷婷综合伊人| 久色| 丰满少妇猛烈A片免费看观看| 五月色亭丁香| 五月开心婷婷网| 丁香五月天激情小说| 噜一噜在线| 婷婷色中文字幕| 九 九九九AV| 人人爱操| 思思热视频| 国产亚洲成AV人片在线观黄桃| 九九热在线观看视频| 激情五月丁香婷婷| 国产成人精品一区二区三区视频| 婷婷五月天丁香综合网| 一操久久| 91干| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 久久免费精彩视频| 色区久久| 97五月天| 激情婷婷在线| 久久9久久| 色综合久久久久| 九九99视频精品| 三十路磁力链接| 99久久久| 99精品自拍视频| 久99热| 九九综合九| 欧洲区自拍| 亚洲六月色婷婷| 久久综合这里只有精品1| 五月丁香天堂网婷婷| 色久五月天| 日韩人妻无码精品| 丁香五月激情五月| 色婷婷丁香AV综合| 99热这里只有精品1025| 激情五月综亚网| 色亚洲激情| 99色色色色| 五月大香蕉| 婷婷五月综合色中文字幕| 亚洲精品无码A片一区二区| 午夜福利成人AV91| 色九网| 91九色白丝| 婷婷丁香午夜综合影视| 天天日天天爽| 国产超碰在线| 99无码超碰| 欧美性爱日韩性爱| 99精在线| WWW、日本色丁香、co m| 色婷婷五月天成人网| 夜夜爽天天爽| 在线99热| 超碰人妻在线| 无码人妻激情| 久久9久| 182TV大香蕉| 日韩三级高清无码| 久草婷婷视频| 吉澤明步Av一區二區| 丁香激情综合| 就去涩涩丁香五月天| 亚洲无AV在线中文字幕| 久久亚洲婷婷综合色五月| 久久曰曰| 性爱久久| 久久这里只有精品07 | 九九99在线免费在线观看视频| A1片久久久| 另类视屏| 99热主页日本| 激情婷婷色色| 五月天开心激情综合网| 开心五月婷婷激情| 婷婷五月天AV| 九九九午夜影院成人| 久久精品99国产精品日本| 第二色AⅤ| 天天做天天爱天天爽| a69在线视频| 亚洲精品白浆高清久久久久久| 怡红院院在线导航网| 国产精品99久久久久久久女警| 欧美激情五月天在线观看| 婷色五月天| 久久婷婷六月综合资源| 婷婷丁香激情五月天色色色| 黄色AAAAA| 99精品视频推荐| 婷婷五月综激情| 91色婷婷综合久久中文字幕二区| 夜夜夜夜夜操| 99re思思精品视频在线观看| 深夜婷婷 丁香| se99视频| 99re热在线视频| 婷婷丁香六月天| 丁香五月婷婷激情123| 激情五月最新网址| 99狠狠| 天天久久人人| 成人五月丁香花| 激情五月天在线免费美女视频| 久久久久亚洲AV无码网影音先锋| 九九在线精品| 五月花亭亭| 色五月婷婷AV| 婷婷久久网| 天天干com| 99网址在线看| 人妻熟人中文字幕一区二区| 亚洲免费婷婷| 99噜噜噜在线播放| 亚洲AV无码成人电影| 九九99香蕉在线视频播放| 丁香色五月直播| 色五月丁香五| 综合婷婷久久| 亚洲国产成人裸舞| 欧美日本国产欧美日本韩国99| 9色在线| 可似看的AV| 亚洲国产成人在线| 久久大大香| av久热| 婷婷五月天亚洲综合网| 啪啪婷婷五月天激情| 国产成人精品123区免费视频| www色五月| 3pAV| 九九十99视频| .青娱乐天天操B| 丁香五月激情啪| 色色色色色色色色色999| 99在线免费视频| 日韩av变天就操逼不卡区| 97人妻碰碰碰久久香蕉| 欧美婷婷五月天综合| 黄色片区子| 久久久久久9热不雅视频| 玖玖热视频| 五月天网站免费欧美| 天天爽天天日人人爱| 天堂网啪啪| 日韩一本操| 欧美久热| 色五月亚洲| 毛片新网地| 六月婷婷天天操夜夜爽视频| 五月叮香啪| 成人草榴视频| 亚洲成人网站在线观看| 久9免费视频| 26uuuuuuuu国产| 色五月天中文字幕| 69精品人人人人| 任你日热视频| 草榴视频黄色网| 国产精品18久久久| 69精品人人人人| 婷婷五月天激情小说| 五月丁香婷婷综合网色欲| 激情综合网五月在线播放| 婷婷自拍| 色五月婷婷91在线| 狠狠色色色| 无码少妇高潮喷水A片免费| www久久久| 97色97干| 99视频只有精品| 99亚洲无码| 79色色免费| 人人舔人人色人人高潮| 亚洲激情 久久| 丁香五月激情婷婷视频| 91玖玖| 久久3p| 999久久久国产精品| 99热亚州综合| 涩丁香91| 狠狠狠狠草草| 日本道久久91| 成人五月天。COM| 五月天婷婷丁香成人网| 色婷青青| 九色成人AV在线| 狠狠色 综合色区| 91在线就要啪| 丁香色婷婷色手机免费在线| 午夜天堂一区人妻| 激情综合婷婷| 超碰99热| 一本色道久久综合狠狠躁小说| 超碰色综合| www..999热久| 六月婷久久| 久久综合中文| 久久婷婷五月综合| 99综合| 丁香五月天之婷婷影院| 国产激情视频在线观看| 9色在线| 青青青在线视频国产| 久热大香蕉| 极品少妇高潮啪啪AV无码| 开心激情婷婷| 日日躁夜夜躁狠狠久久AV| 精品久久久人妻| 这里只有精品免费视频| 日本三级大片| 国产看真人毛片爱做A片| 久久人妻超碰一区| 狠狠久久婷五月综合色| 99超级超级超级碰| 久七香蕉| 欧美影院婷婷| site:hcxsz888.com| 色综合天天网| 婷婷综合在线观看视频| 婷婷伊人网| 五月婷婷九九热| 香蕉久久国产AV一区二区| 这里只有精品2| 女人高潮内射99精品| 丁香五月婷婷网| 91色呦哟| 婷婷五月丁香色综合| 99欧州偷拍视频| 婷婷欧美色| 日韩激情人伦人| 99爱视频在线观看这里只有精品| 免费AV在线| 亚洲热热视频| av网站不卡在线| 欧美在线视频9| 五月天激情久久| 六月综和久久| 五月天婷婷无码视频| 站长推荐无码播放| 五月丁香激情综合网| 欧美色色色色色| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 久久综合五月天| 99无码| 五月情涩综合婷婷| 亚洲五月天,激情视频| 亚洲婷婷丁香五月亚洲| www.99热这里精品| 激情五月天婷婷五月天| 日韩在线视频9色| 亚洲婷婷五月| 久久五月婷综合网| 开心激情五月天网| 久9热| 丁香五月 无码| 日木狠狠干| 色欲AV导航| 97人人干| 五月婷婷色色网址| www.99热日韩.com| 99色精品| 五月天婷婷色| 日本色色网站| 成人色五月天| 久久性操| 96丁香婷婷九月蜜桃综合久久| 超碰色综合| 五月久久丁香| 天天操综合网| www.com亚洲网站在线免费| 麻豆科斗777| 99九九视频精彩在线| 亚洲欧洲中文日韩久久AV乱码| 丁香婷婷超碰| 九玖欧洲亚洲| 婷婷五月在线观看| 六月丁香狠狠爱| 啪啪啪啪五月天| 97碰啪啪| 人人操大| www.五月天。com| 亚洲精品视频在线播放| 伊人热婷婷| 久热综合| 99激情| 激情综合九| 伊人大香五月天| 久久婷丁香五月| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 婷婷久久五月天丁香| 99这里只有精彩视频| 激情婷婷五月天| 激情婷婷久久| 色婷婷裸体色性在线| 日本欧美成人片AAAA| 亚洲AV人人操| 五月天成人在线视频网站| 久久激情网| 影音先锋一区| 久久九精品| 天天视频精品9| 操操操操操电影网| 色婷婷色99国产综合精品| 色综合久久88色综合天天99| 欧美婷婷五月丁香| 久久激丁香| 噜噜噜噜噜日本视频| 99热日本| 操碰99| www.99热精品| 99久久精彩视频| 99在线精品视频免费观看20| 青青草伊人婷婷| 天天插夜夜爽| 欧美在线视频99| 六月色日韩| 丁香五月婷婷影院| www.婷婷五月天.com| 五月婷婷亚洲色视频| 久久婷婷五月综合一| 久久这里只有精品16| 五月丁香色婷婷| 性色播| 九九热最新视频| 人妻狠狠操| 色噜噜狠狠色综合日日| 99在线观看| 91九色欧美| 第四色五月婷婷| 天天做天天爱天天高潮| 久久sp免费视频| 精品人妻一区二区三区四区不卡在| 亚洲精品第一国产综合亚AV | 五月丁香六月婷婷综合在线| 丁香婷婷大香蕉| 婷婷人人操| 婷婷五月av| 国产99美少妇| 激情五月综合网| 人妻系列久久久久久久久久久| 大香蕉九九| 婷婷久久免费看| 69凹凸成人综合网| 狠狠草综合网| 激情网色五月| 激情第四色| 婷婷五月激情欧美| 丁香五月在线观看| 天天综合亚洲综合网天天αⅴ| 丁香五月影院| xfplayav在线| 大操人妻| 91丁香五月| 色欲丁香| 欧美美女视频| 国产色色色色| 欧美伊人9| 99久久极情精品一区| 激情影院内射| 亚洲成AV人片在线观看| 丁香五月天综合| 婷婷大乡焦噜噜| 泰州成人视频| 婷婷五月天色综合翘| 日本久久九| www.五月天婷婷| 久久xx| 中文字幕丰满孑伦无码专区| 亚州视频九九99| 欧洲色区| 婷婷丁香五月综合网上| 五月丁香琪琪| 狠狠综合网| 亚洲欧美另类在线23p| 丁香婷婷婷五月综合色情| 97在线精品视频| 日韩五月天婷婷| 日韩小视频在线99| 激情五月婷婷综合| xfplayav在线| 久久久久婷| 色婷婷成人做爰A片免费看网站 | 人妻久久人妻久久第一区| 婷婷99狠狠躁天天| 亚洲12p| 综合99久久天天综合| 五月婷丁香花| www.激情五月天.con| 天天爽天天操| 五月丁香六月婷婷综合网缴情| 91一起艹| 夜夜嗨一区二区三区直播内容 | 玖玖资源站蜜臀| 九九香蕉网| 婷婷五月激情欧美大胆视频| 91丁香五月| 啪啪激情网站| 在线可以看的av网址| 激情五月天电影| 亚洲丁香婷婷| 一级性感黄色内射视频| 激情网开心网| 婷婷激情在线| 丁香五月综合| 成人国产欧美大片一区| 久久免费丁香| 五月丁香婷婷综合激情基地| 亚洲色热| 麻豆AV一区二区三区| 婷婷色在线播放| 这里都是精品99| 亚洲色视频| 激情开心五月天| 日91高清无玛| 婷婷丁香视频在线观看免费| 六月丁香五月天| 五月婷婷开心网| 久久丁香婷婷五月| 亚洲尤物在线| 九九99免费理论| 99干免费视频| 天天做综合| 日本色爽| 人人插操| 五月丁香六月婷婷精品| 热99在线| AA片在线观看视频在线播放 | 中文字幕无码人妻少妇免费视频| 婷婷大乡焦噜噜| 欧洲免费视频色| 欧美这里只有精品| 日韩免费99| 天天日天天舔天天摸| 狠狠草狠狠草| 欧美性生交A片免费看| 99色干| 色婷婷五月天偷拍| 精品一二三区久久AAA片| 无码人妻激情| 天天澡天天狠天天天做| 99在线精品免费视频| 天天色播| 五月婷婷激情日本| 看国产探花操逼三级片| 色婷婷日本| 97人人干视频| 青青夜夜狠狠夜夜狠狠| 成人深爱丁香五月| 天天干天天插| 国产女18毛片多18精品| 日本美女97在线视频| 亚洲殴洲精品Av在线| 色婷婷五月在线| 天天爽天天日人人爱| 毛片色五月| 久久伊人大香蕉| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 五月丁香亭亭操逼| 激情小说五月天中文字幕| 无码任你操| 色九网| 五月天色软件| 日良久久| 丁香婷婷久久老熟女综合网| 色色激情网| 久久久天堂国产精品女人| 少妇婷婷五月天| 婷婷五月 丁香六月| 色五月婷婷亚洲| 亚洲无码99| 婷婷狠狠狠爱| 五月婷婷高清| 婷婷狠狠色| 粉嫩AV久久一区二区三区| 超碰97色| Xx色综合| 91视频精品99| 超碰婷婷色| 无码区婷婷五月花开| 天天干、天天日日| 国产成人网站在线观看| 狠狠色丁香乆乆| 久久九九九九| 狠色狠色狠色狠色狠色网| 99色综合| 三十熟女| 中文字幕成人| 激情五月天开心总和网| 五月丁香色综合| h亚洲| 色婷婷五月天激情综合| 久久久99视频| 久久久色情| 人人综合久| 另类综合网| 五月色丁香| 97在线综合| 五月婷av| 亚洲黄网AV| www.婷婷网| 色婷婷综合亚洲| 99视频啪啪| 亚洲久久婷婷丁香五月天| 五月婷婷影| 久久性爱网| 激情婷婷内射| 欧美 日韩 成人 在线| 五月丁香另类网| 婷婷五月天影视| 9l视频自拍9l视频自拍九色学生| 68热超碰在线| 丁香花五月天| 亚洲天天操| 色九月婷婷丁香| 激情5月婷婷| 婷婷91视频| 久久久久妻| 五月丁香六月成人| av人人操| 婷婷五月天熟妇| 久久伊人大香蕉| 丁香五月婷婷亚洲综合精品| 久久丁香综合| 五六月婷婷久久| 色婷婷丁香五月丁香| 天天操天天日天天爽| 99热都是精品| 激情无码网| 狠狠高潮精品亚洲1| 黄色网址五月婷婷| AV色五月婷婷| 九九99免费理论| 欧美图片丁香五月天| 五月色婷婷综合| 视频一区二区在线| 狠狠草综合网| 538在线精品| 婷婷婷色五月| 中文字幕日产A片在线看| 99婷婷国产最新视频| 狠狠插狠狠插| 少妇婷婷五月天| 成功精品影院| 九九亚洲天堂| 99热只有精品在线观看| 秋霞少妇AV网站| 天天天天天色| 免费无码毛片一区二区A片 | 四月婷婷丁香五月| 亚洲黄色操逼| 婷婷精品性性性性性性性| 成人美女网| 色婷婷婷婷成人网| http:色情日本com| 五月婷六月天| 五月天亭亭俺也| 丁香花操逼| 欧州色色| 99热人人操人人操| 国产成人99久久亚洲综合精品| 26UUU精品一区二区| 在线播放成人网站| 日本丁香五月| 99re思思在线视频| 99热婷婷| 国语对白性爱视频播放| 国产熟妇的荡欲午夜视频| mmm1717.6dbm人人爱人人操| 婷婷五月天成人网| 五月丁香六月色情网欧美| 日本视频久久| www.狠狠干com| 亚洲成人av在线观看| 五月婷婷丁香五月 | 韩国中文字幕91| 热成人网| 色原狠狠综合| 婷婷五月激情网| 99热老网站| 亚洲欧洲另类| 天天操夜夜夜拍拍拍| 人妻久久久| 天天射影视综合网| 大香蕉网 久久| 色噜噜伊人| 亚洲成人AV高清字幕| 天天做天天爱天天爽在| 91妻人人爽人人看片| 四月婷婷丁香| 伊人激情网| 丁香五月婷婷偷拍| 五月丁香香蕉| 99超级碰免费视频| 精品久久人妻热| 六月婷婷毛片| 97视频.干com| 色播五月天激情| www.十八禁不禁AV.com| 国产五月视频| 色色色色五月| 天天肏夜夜肏| 91人在线观看| 婷婷天天日婷婷| 大香蕉伊人99| 日日鲁鲁鲁夜夜爽爽狠狠视频97| WWW五月| 日韩黄色网络| 色情五月丁香| 成人性爱无码| 大香蕉伊人久久| 国产肥白大熟妇BBBB视频| 99久久玖玖| 色噜噜狠狠色综合日日| 久久这里只有精品热在99| 亚洲五月婷天天操| 欧美婷婷丁香五月| 久久激情五月| 五月婷婷自拍视频| 九九热99免费视频| 超碰av在线| 五月丁香性| 五月丁香A片| 偷拍九九热| 日韩在线视频中文字幕| 九九国产视频| 曰本aaaaaa丈片| 婷婷五月天色色| 色婷婷六月精品| 久久99综合网| 成人超碰网| 91丨九色丨熟女丰满| 久久99热这里只有精品23| 五月天综合色| 色五月综合网| 免费观看的婷婷五月视频在线| 91人妻PORNY九色大屁股| 色网五月婷婷| 色播综合| 丁香婷婷十月| 九月丁香| 日日夜夜亚洲一区| 五月丁香啪| 99re8这里只有精品99re8热视频| 亚洲色五月| 在线sebiav精品视频| 热九九精品| 久久婷婷综合国产| 六月天无码网址| 成人五月天丁香| 狼人伊人干| 国自产拍偷拍精品啪啪一区二区| 婷婷五月天六点丁香五月| jiqingtaose五月天| 精品亚洲日韩99欧美片| 国产成人精品一区二区三区视频 | 99热在线观看这里只有精品| 99精品在线观看| 九九九九精品精| 超碰狠狠操| 丁香六月婷| VA婷婷亚洲| 九九熱最新視頻| 婷婷五月综合啪| 色色亚洲99com| 综合色久| 激情综合网激情五月天| 开心五月婷婷在线视频免费观看| 狠狠色综合网| 大香蕉狼人久久| 国产精品久久欧美久久一区| 久久婷狠狠色| 五月婷在线播放| tingtingzonghewang| 国产三级片91| 荫道BBWBBB高潮潮喷| 色九区| 亚州操操| 色99视频| 深爱五月日韩| 婷婷丁香五月av|