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

ARTICLE DETAIL

資訊詳情

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

FPGA入門必學(xué):Verilog按鍵消抖原理、代碼與仿真詳解

FPGA入門必學(xué):Verilog按鍵消抖原理、代碼與仿真詳解 寫FPGA和Verilog的人幾乎都有一個繞不過去的入門關(guān)卡就是按鍵消抖。你興沖沖燒錄了第一個點(diǎn)燈程序按下板子上的按鍵結(jié)果燈要么不亮要么閃爍好幾下要么計數(shù)器一下子跳了好幾個數(shù)。這時候十有八九不是板子壞了而是少了“按鍵消抖”這一步。這篇內(nèi)容就是專門給剛接觸Verilog的小白準(zhǔn)備的我會從按鍵為什么會有抖動講起把消抖的常見思路拆開然后手寫一段可以直接用的Verilog消抖代碼再帶你用Icarus Verilog寫testbench做仿真最后把新手最容易踩的坑一次性列清楚。我能理解你現(xiàn)在可能是剛學(xué)數(shù)字邏輯代碼能跑通但心里發(fā)虛也理解你可能已經(jīng)被各種模塊例化、狀態(tài)機(jī)、時序約束搞得頭暈。放心按鍵消抖是典型的“麻雀雖小五臟俱全”的入門案例只要你認(rèn)真跟完這篇你對時鐘計數(shù)、信號同步、邊沿檢測、仿真驗證都會有一個非常直觀的認(rèn)識。看完之后你可以直接照著抄到自己的工程里也能理解為什么網(wǎng)上搜出來的按鍵消抖代碼長什么樣、為什么那樣寫。另外多說一句按鍵消抖雖然看著簡單但里面藏著的“時間窗口”、“穩(wěn)定電平確認(rèn)”、“亞穩(wěn)態(tài)處理”這些概念后面學(xué)IIC、SPI、串口、DDR3都會反復(fù)遇到。所以別覺得這是小題大做把這個例子吃透比刷十遍語法書都管用。1. 按鍵抖動到底是怎么一回事機(jī)械世界的毛刺怎么進(jìn)了數(shù)字系統(tǒng)1.1 機(jī)械開關(guān)不是理想開關(guān)按下瞬間會“彈跳”你可以在紙上畫一個理想的按鍵按下通松開斷。但在真實世界里按鍵內(nèi)部是金屬彈片或者導(dǎo)電橡膠機(jī)械結(jié)構(gòu)從接觸到穩(wěn)定需要幾毫秒甚至幾十毫秒。這段時間里觸點(diǎn)會靠自身的彈性反復(fù)彈開、接觸、再彈開、再接觸就像你用力關(guān)一扇有彈簧的門門不會一次合上而是在門框上彈幾下才安靜下來。用示波器看按鍵引腳的電平你會發(fā)現(xiàn)按下時并不是干凈地從高電平跳到低電平而是來回抖動一串脈沖高、低、高、低交替持續(xù)幾毫秒到幾十毫秒不等。這個現(xiàn)象就叫“抖動”bounce。對模擬電路工程師來說這是物理接觸的必然現(xiàn)象對數(shù)字邏輯工程師來說這串抖動脈沖會造成嚴(yán)重問題因為數(shù)字電路只認(rèn)0和1不知道什么是“彈跳”。按鍵抖動通常發(fā)生在按下和釋放兩個階段而且持續(xù)時間不是固定的。同一個按鍵按得快一點(diǎn)和按得慢一點(diǎn)抖動波形都不一樣不同批次、不同型號的按鍵抖動時間也千差萬別。這也是為什么按鍵消抖不能靠固定寫死一種完全精確的模型而是要用“等待穩(wěn)定”的思路來處理。1.2 不消抖直接采樣后果是什么如果你直接把按鍵引腳接到FPGA的輸入端口然后在always塊里讀取寄存器的值最直觀的后果就是一次物理按鍵會被當(dāng)成多次數(shù)字按鍵。舉個例子你寫了一個計數(shù)器每檢測到一次按鍵按下就加一。本來你想按一下加到1結(jié)果因為抖動key_in在幾毫秒內(nèi)變化了十幾次計數(shù)器直接從0跳到了12。你用數(shù)碼管顯示就會發(fā)現(xiàn)數(shù)碼管數(shù)字亂跳或者一瞬間閃過好幾個數(shù)字。如果是用在搶答器、鬧鐘設(shè)置、步進(jìn)電機(jī)控制這種對輸入次數(shù)敏感的場景誤觸發(fā)會讓人崩潰。更隱蔽的問題是按鍵信號是異步輸入的和FPGA時鐘沒有任何固定關(guān)系。如果直接拿這個信號做邊沿檢測會產(chǎn)生亞穩(wěn)態(tài)。所謂亞穩(wěn)態(tài)就是觸發(fā)器的建立時間和保持時間沒有被滿足輸出端在0和1之間震蕩甚至?xí)堰@個不確定狀態(tài)傳給后面的電路導(dǎo)致整個邏輯錯亂。所以按鍵信號不能直接進(jìn)時序邏輯需要先同步。我曾經(jīng)在一個小項目里圖省事沒有消抖就檢測下降沿結(jié)果每次按下去串口發(fā)送的都是亂七八糟的字符。一開始以為是波特率錯了折騰半天才發(fā)現(xiàn)是抖動導(dǎo)致同一個字節(jié)被發(fā)送了好多次。從那以后我再也不敢不消抖直接采按鍵了。2. 消抖思路拆解硬件上能消邏輯上也能消2.1 硬件消抖RC低通濾波和施密特觸發(fā)器最傳統(tǒng)的消抖方式是在電路板上解決。按鍵引腳對地接一個電容再串聯(lián)一個電阻組成RC低通濾波器。抖動脈沖頻率高電容會把高頻成分濾掉讓電平信號變得圓滑。后面再接一個施密特觸發(fā)器整形就能輸出干凈的高低電平。這種方案在模擬電路時代很成熟成本低、可靠性高。但FPGA開發(fā)板為了節(jié)約面積和靈活性不會給每個按鍵都配一組RC濾波和施密特觸發(fā)器。大多數(shù)開發(fā)板的按鍵只有簡單的上拉電阻直接把電平送到FPGA引腳。所以你想用現(xiàn)成板子做實驗最靠譜的辦法就是寫Verilog邏輯做消抖。硬件消抖還有一個問題RC時間常數(shù)是固定的一旦按鍵老化、抖動時間變長濾波效果就會變差。邏輯消抖可以通過參數(shù)隨時調(diào)整等待時間甚至在同一個設(shè)計里給不同按鍵配置不同消抖時長這在硬件方案里很難做到。2.2 邏輯消抖的核心延時采樣和連續(xù)電平確認(rèn)邏輯消抖的原理說穿了很簡單抖動期間電平是亂的我不能每看到一個變化就信一次我要等一段時間如果這段時間內(nèi)電平穩(wěn)定在一個值我再認(rèn)為按鍵真的按下了。最常見的實現(xiàn)方法是“延時采樣”。檢測到按鍵電平變化后啟動一個計數(shù)器計數(shù)到設(shè)定的消抖時間比如20ms。如果在這20ms內(nèi)電平一直保持新狀態(tài)就判定電平切換有效如果中途又變回去了說明之前的“新狀態(tài)”只是抖動計數(shù)器清零重新等待。這種方法相當(dāng)于給信號加了一個“時間窗口”窗口內(nèi)穩(wěn)定才算數(shù)。另一種思路是“連續(xù)多次采樣”。一個信號連續(xù)N個采樣周期都讀到同一個值才認(rèn)為它是真的。比如連續(xù)采樣20次每次間隔1ms如果20次全是低電平就判定按鍵按下。這種方法本質(zhì)上是滑動窗口濾波的雛形。從工程角度說延時采樣法對隨機(jī)抖動更有效因為它允許抖動期內(nèi)電平反復(fù)變化只要在最后一段時間穩(wěn)定即可。連續(xù)采樣法則取決于N次采樣的覆蓋范圍和抖動概率覆蓋不好的話也可能誤判。實際綜合設(shè)計里兩種思路都有應(yīng)用按鍵消抖通常用延時采樣高速總線上的毛刺濾除則偏向滑動窗口。2.3 滑動窗口濾波和按鍵消抖是什么關(guān)系你可能最近在看Verilog相關(guān)經(jīng)驗帖時總看到“滑動窗口濾波”這個詞它和按鍵消抖其實是一家人?;瑒哟翱诘暮诵乃枷胧蔷S護(hù)一個長度為N的移位寄存器每個時鐘周期把當(dāng)前輸入移進(jìn)去然后看整個窗口里的數(shù)據(jù)規(guī)律。如果窗口里所有位都是0說明輸入長時間穩(wěn)定在0如果所有位都是1說明輸入穩(wěn)定在1如果窗口里有0也有1說明信號還在變化輸出保持上一次的結(jié)果。這樣做可以實時濾除窄毛刺因為在窗口長度內(nèi)只要有一個采樣點(diǎn)“反彈”輸出就不會改變。按鍵消抖可以看成滑動窗口的簡化版不需要完整保存N個點(diǎn)只需要一個計數(shù)器記錄“新狀態(tài)維持了多久”。只要這個持續(xù)時間超過閾值就判定穩(wěn)定。所以你在很多綜合代碼里會看到計數(shù)器方案而不是真正的移位寄存器方案因為計數(shù)器占用的寄存器少很多邏輯也更簡單。理解這層關(guān)系很重要。等以后你去處理IIC總線上的SDA毛刺、SPI時鐘邊沿附近的數(shù)據(jù)抖動或者DDR3讀寫時對有效窗口的采樣你會發(fā)現(xiàn)方法一模一樣窗口內(nèi)穩(wěn)定數(shù)據(jù)才可信。3. Verilog按鍵消抖模塊從零開始寫參數(shù)、代碼、逐行解讀3.1 先把參數(shù)算清楚時鐘頻率、消抖時間、計數(shù)器位寬寫代碼之前先把數(shù)學(xué)搞好。假設(shè)你板子上的時鐘頻率是50MHz也就是每秒50,000,000個周期一個周期20ns。想要消抖20ms那么需要等待的時間周期數(shù)就是50,000,000 × 20 / 1000 1,000,000也就是需要數(shù)到100萬個周期。這個數(shù)字用二進(jìn)制表示需要多少位因為2^20 1,048,576剛好大于100萬所以計數(shù)器位寬20位就夠了。如果板子時鐘是100MHz消抖時間還是20ms那就要數(shù)2,000,000個周期仍然要用20位以上2^21 2,097,152。如果不重新算直接把之前50MHz工程里的計數(shù)器位寬照抄很可能因為位寬不夠?qū)е掠嫈?shù)器溢出消抖時間遠(yuǎn)小于預(yù)期。有一個Verilog內(nèi)置函數(shù)可以省去人工計算就是$clog2返回參數(shù)向上取整的以2為底的對數(shù)。比如$clog2(1_000_000)結(jié)果是20。你可以用localparam CNT_WIDTH $clog2(CNT_LIMIT 1);來讓代碼適應(yīng)不同參數(shù)不會出現(xiàn)位寬不夠的問題。注意$clog2是SystemVerilog語法但I(xiàn)carus Verilog也支持很多綜合工具也都兼容可以放心用。3.2 核心第一步為什么要給按鍵輸入打兩拍按鍵信號是真實世界的物理信號和FPGA內(nèi)部時鐘完全無關(guān)。直接把這種異步信號送入always塊觸發(fā)器很容易進(jìn)入亞穩(wěn)態(tài)。解決辦法是“兩級同步”也就是把一個寄存器串聯(lián)到下一個寄存器。第一級寄存器采樣到按鍵信號時可能處于亞穩(wěn)態(tài)但它有整個時鐘周期來穩(wěn)定。到下一個時鐘上升沿第二級寄存器再從第一級取值此時第一級輸出大概率已經(jīng)穩(wěn)定了。這個“打兩拍”的結(jié)構(gòu)并不能百分之百消除亞穩(wěn)態(tài)但能把亞穩(wěn)態(tài)傳遞到后續(xù)電路的概率降到幾乎可以忽略。工業(yè)界標(biāo)準(zhǔn)做法就是至少兩個觸發(fā)器做同步。同步之后的信號抖動的毛刺會被拆分到相鄰時鐘周期但邏輯電平和原始輸入基本一致不影響消抖判斷。你可以把同步后的信號名字寫在代碼注釋里這樣后面的人一看就知道這個信號是安全可用的。另外要注意同步器的復(fù)位初值應(yīng)該和按鍵松開電平一致。一般開發(fā)板按鍵按下為低電平松開為高電平所以兩個同步寄存器復(fù)位時都應(yīng)該賦值為1。如果初始化成0上電瞬間會誤判成“已按下”后面整個消抖邏輯都會出錯。3.3 完整可綜合代碼與逐行解析下面這段是完整的Verilog按鍵消抖模塊參數(shù)化設(shè)計支持不同時鐘頻率和消抖時間。代碼風(fēng)格盡量簡潔適合小白閱讀。module key_debounce #( parameter CLK_FREQ 50_000_000, // 時鐘頻率單位Hz parameter DEBOUNCE_MS 20 // 消抖時間單位ms )( input wire clk, input wire rst_n, input wire key_in, // 原始按鍵輸入按下為0松開為1 output reg key_out // 消抖后的電平輸出 ); // 消抖時間對應(yīng)的時鐘周期數(shù) localparam CNT_LIMIT CLK_FREQ * DEBOUNCE_MS / 1000; // 計數(shù)器位寬自動計算 localparam CNT_WIDTH $clog2(CNT_LIMIT 1); localparam CNT_MAX CNT_LIMIT - 1; reg [CNT_WIDTH-1:0] cnt; reg key_in_d1; reg key_in_d2; reg key_stable; wire key_sync; assign key_sync key_in_d2; // 一級輸入同步消除亞穩(wěn)態(tài) always (posedge clk or negedge rst_n) begin if(!rst_n) begin key_in_d1 1b1; key_in_d2 1b1; end else begin key_in_d1 key_in; key_in_d2 key_in_d1; end end // 二級核心消抖邏輯 always (posedge clk or negedge rst_n) begin if(!rst_n) begin cnt 0; key_stable 1b1; // 復(fù)位默認(rèn)松開 end else if(key_sync ! key_stable) begin if(cnt CNT_MAX) begin key_stable key_sync; cnt 0; end else begin cnt cnt 1b1; end end else begin cnt 0; end end assign key_out key_stable; endmodule逐行來看。key_sync是同步后的按鍵信號。第二個always塊里key_sync ! key_stable表示“當(dāng)前輸入狀態(tài)和之前確認(rèn)的狀態(tài)不一樣”也就是檢測到了切換可能。這時候計數(shù)器開始累加。只要輸入一直沒有變回去計數(shù)器就會一直加加到CNT_MAX時說明新狀態(tài)已經(jīng)穩(wěn)定了足夠長時間于是把key_stable更新成新的電平。如果輸入只是在抖動比如說從1變成0還沒過幾個周期又變回1那么key_sync ! key_stable就不成立進(jìn)入else分支計數(shù)器立刻清零。這樣抖動就不會被認(rèn)成一次有效按鍵。整個過程只用一個16到20位的計數(shù)器和一個狀態(tài)寄存器資源占用非常少。需要注意的是key_out直接連的是key_stable也就是消抖后的電平。按下為低、松開為高。如果你的按鍵是按下為高把復(fù)位初值和同步寄存器賦值改成0即可。3.4 擴(kuò)展功能從電平輸出變成單脈沖輸出很多實際場景里你不需要持續(xù)的電平信號而是希望“按一下產(chǎn)生一個脈沖”。比如給狀態(tài)機(jī)觸發(fā)一次跳轉(zhuǎn)或者給計數(shù)器加一。有了消抖后的key_stable你可以很容易產(chǎn)生一個下降沿脈沖因為按下瞬間電平從1變成0。加兩個寄存器就行reg key_stable_d1; always (posedge clk or negedge rst_n) begin if(!rst_n) begin key_stable_d1 1b1; end else begin key_stable_d1 key_stable; end end assign key_press_pulse key_stable_d1 ~key_stable;key_press_pulse只在高電平變成低電平的那個時鐘周期為1其他時間為0。這就得到了一個干凈的單脈沖。注意這個檢測一定要放在消抖模塊的輸出端不要在原始key_in上做否則抖動期間會產(chǎn)生一堆毛刺脈沖。如果你希望檢測“松開”時刻把邏輯反過來寫成~key_stable_d1 key_stable即可。按下和松開邊緣都可以用來做觸發(fā)看你的應(yīng)用場景需要哪種行為。4. 用Icarus Verilog仿真驗證看不到波形一切等于零4.1 搭建本地仿真環(huán)境iverilog和GTKWave寫完了代碼下一步不是直接上板而是先仿真。仿真能看到內(nèi)部所有信號波形是調(diào)試Verilog最強(qiáng)大的工具。Icarus Verilog是一個開源的Verilog仿真器跨平臺Windows和Linux都能裝。它的命令行名字通常叫iverilog配套的波形查看工具是GTKWave。如果你用的是Windows可以去Icarus Verilog官網(wǎng)下載安裝包裝完在CMD里就能直接運(yùn)行iverilog。Linux下更簡單Ubuntu直接sudo apt install iverilog gtkwave。仿真的基本流程分三步編寫設(shè)計文件編寫testbench測試文件然后編譯仿真。命令行如下iverilog -o sim.vvp key_debounce.v tb.v vvp sim.vvp gtkwave tb.vcdiverilog負(fù)責(zé)把設(shè)計文件和測試文件一起編譯成可執(zhí)行的仿真文件vvp執(zhí)行仿真生成VCD波形文件最后用GTKWave打開。VCD文件記錄了所有信號隨時間變化的歷史是波形查看的基礎(chǔ)。4.2 寫一個帶真實抖動波形的testbench測試平臺testbench里我們需要模擬真實按鍵的抖動。以50MHz時鐘為例周期20ns。從初始的高電平開始按下時先變低然后來回彈跳幾個周期最后穩(wěn)定為低。釋放時也做同樣處理。完整testbench代碼如下timescale 1ns/1ps module tb; reg clk 0; reg rst_n 0; reg key_in 1; wire key_out; always #10 clk ~clk; // 50MHz時鐘 key_debounce #( .CLK_FREQ(50_000_000), .DEBOUNCE_MS(1) // 仿真時減小消抖時間節(jié)省等待 ) dut ( .clk(clk), .rst_n(rst_n), .key_in(key_in), .key_out(key_out) ); initial begin rst_n 0; repeat (5) (posedge clk); rst_n 1; repeat (5) (posedge clk); // 模擬按下抖動低-高-低-高-低之后穩(wěn)定低 #10 key_in 0; #200 key_in 1; #300 key_in 0; #400 key_in 1; #150 key_in 0; #1_300_000; // 等待1.3ms大于1ms消抖時間 // 模擬釋放抖動高-低-高-低-高之后穩(wěn)定高 #10 key_in 1; #200 key_in 0; #300 key_in 1; #400 key_in 0; #150 key_in 1; #1_300_000; // 再等待1.3ms $finish; end initial begin $dumpfile(tb.vcd); $dumpvars(0, tb); end endmodule這段代碼里DEBOUNCE_MS設(shè)置成1是為了讓仿真不要等太久。如果設(shè)成20ms仿真器要運(yùn)行20萬個時鐘周期也就是4ms的仿真時間雖然也能跑完但在交互調(diào)試時太磨嘰。實際工程你還是要在參數(shù)里恢復(fù)成20ms。抖動時間安排在200ns到400ns之間雖然真實抖動通常幾毫秒但仿真中我們只要保證抖動遠(yuǎn)小于消抖時間就夠了。關(guān)鍵是讓key_in在消抖窗口開始之前多次翻轉(zhuǎn)驗證計數(shù)器不會在抖動期間輸出錯誤結(jié)果。Testbench里另一個細(xì)節(jié)是repeat (5) (posedge clk);用來讓復(fù)位信號持續(xù)5個時鐘周期確保所有寄存器都完成異步復(fù)位。之后釋放復(fù)位再做后續(xù)操作。4.3 從波形里判斷消抖是否成功仿真完成后用GTKWave打開VCD文件把key_in、key_sync、cnt、key_stable、key_out都拖進(jìn)波形窗口。你希望看到的畫面是這樣的在第一次按下抖動期間key_in上下跳動好幾次cnt可能先變成1、2但很快又被清0。當(dāng)key_in穩(wěn)定為低約1ms后cnt持續(xù)累加到CNT_MAXkey_stable從1變成0key_out也跟著變成0而且之后再無變化。在釋放抖動期間同樣是key_in混亂cnt反復(fù)清零之后穩(wěn)定高電平約1mskey_stable回到1。從第一次按下去到松開key_out只發(fā)生了兩次電平切換對應(yīng)一次按下和一次釋放。如果看到key_out跟著key_in一起抖動那說明消抖時間太短或者計數(shù)器邏輯有問題。這時候第一件事就是放大波形數(shù)清楚cnt到底有沒有跑滿再看看key_sync是否為穩(wěn)定干凈電平。仿真最大的好處就是你可以看到每個寄存器內(nèi)部細(xì)節(jié)比上板后對著示波器猜要高效得多。5. 新手最容易踩的坑和排查技巧邊踩邊填5.1 計數(shù)器位寬不夠消抖時間大打折扣新手經(jīng)常直接抄一段代碼不重新算計數(shù)器位寬。比如原來100MHz時鐘消抖20ms需要2,000,000計數(shù)但如果代碼里計數(shù)器是reg [15:0]最大只能數(shù)到65535每1.3ms左右就溢出回繞一次。最終現(xiàn)象是按鍵輸入變化后計數(shù)器不斷歸零重來key_stable要么遲遲不更新要么在錯誤時機(jī)更新。排查方法很簡單仿真的波形里看cnt是否在某一個數(shù)值被截斷回0。解決辦法是用$clog2自動計算位寬或者自己先按“時鐘頻率 × 消抖秒數(shù)”算出最大值再選擇合適的二進(jìn)制位寬。記住一個經(jīng)驗法則50MHz、1ms消抖需要16位10ms需要19位20ms需要20位。5.2 復(fù)位初值寫錯上電就亂觸發(fā)按鍵板子通常是按下為低、松開為高。同步寄存器和key_stable的復(fù)位初值都應(yīng)該是1。如果你圖省事寫成0上電復(fù)位結(jié)束后key_sync默認(rèn)是1key_stable默認(rèn)是0兩者不相等計數(shù)器馬上開始計時不到20ms就會把key_stable誤更新成1。這個時候你還沒按鍵輸出就已經(jīng)經(jīng)歷了一次虛假的電平變化。如果你做成脈沖輸出上電后就會多出一個誤觸發(fā)脈沖后面整個狀態(tài)機(jī)都可能被帶偏。所以每次新建模塊第一件事就是確認(rèn)按鍵有效電平是低還是高并把所有相關(guān)初值一次性改對。5.3 邊沿檢測放錯了位置消抖就白做了有人想當(dāng)然地在原始key_in上做下降沿檢測檢測到脈沖后再去延時一段時間。這樣做的問題是抖動期間key_in會產(chǎn)生好幾個下降沿每個都被當(dāng)成一次有效邊沿后面的延時計數(shù)器會被反復(fù)打斷輸出當(dāng)然不穩(wěn)定。正確的順序是先同步再消抖最后在key_stable上做邊沿檢測。也就是說消抖模塊輸出的電平已經(jīng)是穩(wěn)定信號邊沿檢測只是給它加一個過渡脈沖。這個順序千萬別搞反。我在自己項目里吃過這個虧浪費(fèi)了整整一個晚上最后才發(fā)現(xiàn)是把檢測放到了消抖前。5.4 多按鍵擴(kuò)展是并行復(fù)制還是共用一個模塊板子上按鍵往往不止一個。你可以直接把模塊例化多份每個按鍵一個實例資源和邏輯完全獨(dú)立這是最穩(wěn)妥的做法。但要注意如果按鍵數(shù)量很多比如矩陣鍵盤就不能簡單例化了而要用掃描消抖結(jié)合的方式本質(zhì)上仍然是每個按鍵獨(dú)立計時。還有一種偷懶做法是直接把所有按鍵信號通過組合邏輯拼接消抖后統(tǒng)一處理。比如寫一個key_debounce模塊端口從單個按鍵位擴(kuò)展到多bit向量。這樣做的好處是節(jié)省一部分計數(shù)器壞處是代碼可讀性下降而且一旦某個按鍵抖動特性不一樣無法單獨(dú)調(diào)整時間。我的建議是新手期老老實實逐個例化等到你真正理解了模塊復(fù)用再考慮向量化。5.5 常見問題速查表現(xiàn)象可能原因排查方法輸出跟著輸入一起抖消抖時間太短調(diào)大DEBOUNCE_MS仿真看cnt是否跑滿上電就觸發(fā)一次復(fù)位初值寫錯檢查同步器和key_stable初值是否為松開電平按鍵幾次才觸發(fā)一次計數(shù)器位寬不夠溢出用$clog2算位寬仿真看cnt是否被截斷按下一次輸出多個脈沖邊沿檢測放在key_in上把邊沿檢測改到key_stable之后切換時鐘后消抖失效參數(shù)沒有重新計算用參數(shù)化設(shè)計不寫死計數(shù)器目標(biāo)值6. 從按鍵消抖延伸出去這步學(xué)到的東西能用到哪6.1 “時間窗口”思維在協(xié)議時序中的價值你能從按鍵消抖里抽出的最重要一句話任何信號只要想確認(rèn)它的有效狀態(tài)就必須在足夠長的時間窗口內(nèi)保持穩(wěn)定。這句話放到通信協(xié)議里同樣成立。比如IIC協(xié)議解析時SCL和SDA上的信號同樣有建立時間和保持時間如果亂碼毛刺進(jìn)來讀到的數(shù)據(jù)就是錯的。你可以在采樣點(diǎn)附近加一段持續(xù)N個周期穩(wěn)定判斷的窗口只有窗口內(nèi)數(shù)據(jù)一致才把它當(dāng)作有效位。QSPI讀寫Flash時候也是同理外部Flash輸出來的數(shù)據(jù)在時鐘邊沿附近有短暫的毛刺區(qū)間采樣點(diǎn)應(yīng)該避開它。DDR3就更典型了數(shù)據(jù)有效窗口很短控制器要在正確的時間點(diǎn)對DQ信號采樣本質(zhì)上也是在做“窗口內(nèi)穩(wěn)定才采樣”的判斷。所以說按鍵消抖是你第一次系統(tǒng)接觸“時間馴化信號”這個概念后面所有時序邏輯都是它的高級版。6.2 滑動窗口濾波的Verilog實現(xiàn)思路按鍵消抖已經(jīng)用了計數(shù)器但如果你真想直接做滑動窗口濾波也很簡單。維護(hù)一個N位移位寄存器每個時鐘周期把同步后的按鍵信號移位進(jìn)去。然后檢查 (shift_reg)是否全為1或者~| (shift_reg)是否全為0。全為1表示連續(xù)N個周期采樣都是高輸出可以更新為高全為0表示連續(xù)N個周期采樣都是低輸出更新為低其他情況保持原輸出。下面是示意代碼片段parameter N 8; reg [N-1:0] shift_reg; wire all_high shift_reg; wire all_low ~|shift_reg; always (posedge clk or negedge rst_n) begin if(!rst_n) begin shift_reg 0; end else begin shift_reg {shift_reg[N-2:0], key_sync}; end end always (posedge clk or negedge rst_n) begin if(!rst_n) begin filter_out 1b1; end else if(all_high) begin filter_out 1b1; end else if(all_low) begin filter_out 1b0; end end你會發(fā)現(xiàn)這種滑動窗口的方案比計數(shù)器版更直觀但占用的寄存器數(shù)量隨窗口長度線性增加。如果你要過濾1ms內(nèi)的毛刺、時鐘20ns那窗口長度可能是5萬移位寄存器根本不可能這么長。所以真正工程里還是用計數(shù)器方案做長窗口用短小的滑動窗口做邊沿附近的毛刺過濾。兩者可以組合使用。6.3 學(xué)習(xí)路徑建議消抖之后練什么如果這是你第一個正經(jīng)寫的Verilog小模塊那完成得很好。下一步我建議按這個順序繼續(xù)先寫一個按鍵單脈沖控制LED亮滅的小工程把今天學(xué)的消抖和脈沖結(jié)合起來然后寫一個帶使能的計數(shù)器用按鍵脈沖控制加減用數(shù)碼管顯示再做UART串口發(fā)送把按鍵值通過串口發(fā)到電腦。這幾步能把時序邏輯、狀態(tài)機(jī)、模塊例化全部串起來。等這些基本功扎實了再去看IIC主機(jī)控制器、SPI接口、QSPI Flash讀寫這些復(fù)雜IP里的狀態(tài)機(jī)核心邏輯和按鍵消抖一樣離不開穩(wěn)定窗口和邊沿檢測。很多人一上來就啃DDR3控制器啃得頭暈眼花其實就是因為前面這些小模塊里的基本功沒有吃透。我個人的經(jīng)驗是每學(xué)一個新模塊除了看官方手冊最有效的辦法就是像今天這樣寫一個帶真實擾動情況的testbench觀察波形對齊時間節(jié)點(diǎn)然后故意制造bug再通過波形找出來。這個過程比單純讀十篇教程都有用。按鍵消抖這一課你能把仿真練熟后面學(xué)所有通信協(xié)議都會順很多。最后分享一個小技巧調(diào)試按鍵消抖時別只盯著key_out一定要看cnt和key_sync。如果cnt遲遲不清零說明輸入還在變化如果cnt清零次數(shù)太多說明抖動還沒結(jié)束。這兩個信號結(jié)合能讓你對代碼的“時間感”特別敏感。上了板別急著一次成功先用仿真把時間對齊再燒進(jìn)去你就知道這套流程有多省時間了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷激情社区| 五月天伊人综合| 亚洲成人网站在线观看| 99ER热精品视频| 五月婷色| 日本激情综合| 天堂久久婷婷| 先锋资源 996| 1024国产| 九九综合九色欧美狠狠| 日韩久热| 狠狠干思思热| 五月丁香999| 久草热在线视频| 丁香五月天激情婷婷丁香六月| 欧美交换配乱吟粗大25P| 天天更新天天亚洲| 99热九九在线| 婷婷香蕉精品| 这里只有精品久久| 91碰碰视频| 色久播播| 丁香激情五月少妇| 99热91| 草婷婷在线| 99在线综合视频| 思思精品视频| 人人色婷婷| 激情六| 九九热内射| 日韩中文欧美| 五月婷婷激情综合av| 欧美婷婷| 婷婷久久婷婷色五月| 26uuu成人网| 久久伦乱| 久久婷婷五月天| 婷婷在线播放av| 亚洲狠狠色丁香婷婷综合久久| 老司机日日夜夜青草| 久久久久久丁香五月| 免费色色色| 五月天天天色| 婷婷久热| 亚洲视频色色| 丁香五月婷婷综合视频| 熟女激情网| 69天堂99| 人人九色| 玖玖婷婷五月天| 丁香五月电影| 成人VAV视频在线观看| 久久丁香五月天| 日日插日日干| 久久亚洲婷婷| 激情五月天小说网| 九九热只有精品| 激情五月小说婷婷| 7777国产盗摄农村女人| 九热久| 色婷青青| 六月婷婷九月丁香| 97久久草草超级碰碰碰| 亚洲综合网激情五月天| 婷婷五月花丁香| 天天操天天日天天爽| 婷婷五月天激情AV影院| 色婷婷社区| 丁香六月婷婷综合欧美| 色五月婷婷久久| AVDV久久| 99热很操老逼| 丁香五月婷婷婷婷欧美综合| 精品久久久人妻| 天天日天天舔| 色婷婷五月在线| 婷婷在线视频| 久久se 综合网 | 激情婷婷丁香| 97色色综合| 丁香五月天社区| 狠狠爱深色婷婷综合| 婷婷久热| 国产亚洲99久久精品| 人人人操 超碰| 天天干天天爽| 538任你爽视频不一样的| 色播五月丁香综合| 成人国产综合| 丁香五月激情六月综合| 色爱五月天| 噜噜五月天综合| 色婷久久| 9色婷婷| 嫩草视频观看| 中文字幕久久一区二区三区| 丁香五月色情| 久久久久婷婷| 亚洲综合五月天婷婷丁香| 再綫Av免费視品| 99性感视频| 天天爽日日搞| 综合久久综合| 五月天激情综合网| 五月丁香婷婷综合久久| 深爱激情五月网| 无码 色| 爱婷婷都市激情| 99九九久久| www.无码com| 六月丁香婷婷大香蕉| 婷婷涩五月| 99爱视频免费看| 狠狠色丁香| 三日本无码| 婷婷色婷婷亚洲成人| 丁香色情五月综合网站| 色色a| 99热在线观看| 99亚洲综合| 色老久久| 久久视频在线视频| 热久久色| 日日操日日撸| 亚洲日本三级片| 日日夜夜狠狠婷婷色| 99这里有精品| 99噜噜| 丁香五月第九色| 99自拍视频在线观看| 成人综合网站| 91爱操| 丁香五月五月婷婷| 五月天婷婷情色| 亚州欧美国产久精国产99综合视频| 婷婷的色色五月天| 婷婷九月丁香中文| 99色视频在线| 久久久婷婷五月亚洲97号色| 日韩十国产极品久久| 五月丁香成人| 99热99色| 久久婷婷五月天懂色| 欧美人人女女精品综合五月天| 夜丁香五月婷婷| 97 A I色色| 日韩另类| 免费视频无码| 丁香社区婷婷五月| 五月天丁香久久| 婷婷中文字幕| 久久欧洲久久| 激情综合视频| 嫩草免费视频| 无码网| 可以看的av网站| 丁香五月婷婷欧美成人色图| 国产日韩欧美性爱| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 亚洲婷婷视频| 麻豆AV一区二区三区| 丁香婷五月天| 成人做爰A片免费看视频| 丁香五月123| 天天婷婷| 丁香五月天欧洲在线| 91丨九色丨国产打屁股| 丁香六月无码| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 色婷婷丁香五月| 91九九精品| 人人色性网| 97干97色| 色婷婷五月影视| 操操国产| 深爱五月中文字幕| 丁香伍月婷电影全集| 操丝袜视频影院导航| 99综合97| 夜夜爽天天爽| 五月激情综合美女久久| 视频这里只有精品| 久久一级免费黄色片| 这里只有精品视频在线| 桔色成人官方网站| 一区=区操屄高清大全av| 日韩av大全| 久久日本wwww色| 六月色丁香中文字幕| 狠狠爱婷婷色| 99免费| 99热精这里只有精品| 久久爱综合| 色色婷婷五月天| 欧美熟女乱又伦| 婷五月天六| 激情综合五月| 日本天堂免费99| 黄色99视频| 亚洲狠狠丁香婷婷香蕉| 国产激情综合五月久久| 亚洲色五月| 五月丁香综合网色欲| 久久婷婷网址| 在线观看国产高清视频免费网站 | 成人AV免费观看| 91肏| 亚洲成人噜噜| 五月婷婷少妇之| 97超级操操| 激情久久久| www激情| 天干天天干天天天天天| 欧美在线视频99| 五月天婷婷狂暴白浆| 色五月琪琪| 五月情色天| 激情深愛五月視頻| 色噜噜狠狠色综合日日| 色欲AVV| 大香蕉五月天婷婷| 久久久久亚洲AV成人无码电影| 天天粽合合合合| 五月婷婷综合激情网| 欧美在线ee日韩| 五月天六月色| 青青草五月天| AVDV久久| 天天干,天天日| 久久综合中文字幕| 色色婷婷丁香五月天| 亚洲VA在线| 九九99在线观看视频| 影音先锋91资源站| 婷婷五月天丁香激情| 激情5月婷婷| www.久久| 亚洲亚洲人成综合网络| 婷婷久久综合久| 丁香五月影院| 亚洲区视频| 九九热婷婷| 狠狠摸狠狠摸| 超碰99久久| 99精品热| 婷婷五月色| 久热黄色| 999热这里只有精品| 五月丁香婷婷综合久久| 99色在线| av色色国产| av网址在线| 美女网黄| 国产肥白大熟妇BBBB视频| 丁香婷婷色九月| 免费精品99| 精品人妻伦一二三区久| 欧洲亚洲免费视频9 | 日本欧美国产| 一丁香五月天月AV| 色综合色| 日本操B视频| 五月天丁香色色| 久99久视频精品| 亚洲无码影音| 六月丁香婷婷综合狠狠爱夜夜爱| 五月婷婷内射网| www.夜夜夜| 26UUU在线观看| 99日韩网站| 激情綜合W W W,激情五月天| 激情综合五月色在线| 五月综合激情久久| 俺去也在线视频| 色综合色综合网| 色五月色五天免费视频| 99久久性爱| 五月婷婷性爱| 成人人操| 五月天激日本色情在线| 影音先锋777xfplay色资源网站| 久久婷婷五月综合色和| 91天天操天天干天天射| 亚洲无码性爱| 色色日韩网| 伊人六月无码视频| 色哟哟精品| 嫩草AV久久伊人妇女超级A| 另类少妇人与禽zOZZ0性伦| 日韩艹比| 婷婷色五月丁香六月欧美啪| 婷婷日日天天| 99热在线观看免费| 97色在线| 99丁香五月婷婷在线| 五月6香色婷婷视频| 无码激情精品色婷婷久久久久| 五月婷婷亞洲中文| 五月丁香六月婷综合成人综合| 色色网站毛片| 久久久这里都是精品| 天天拍夜夜爽| 狠狠做婷婷| 久久久久久五月天| 亚州精品色情无码A片| 丁香五月丁香伊人| 色优久久| WWW免费视频碰碰碰碰| 日日噜狠狠色综| 天天干天天日天天操| 天天拍天天操| 日本不卡中文字幕| 狠狠爱五月婷婷综合六月| 亚洲AV中文在线| 久99视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 白人荫道BBWBBB大荫道| 婷婷伊人久久| 激情综合五| 国产成人精品一区二三区熟女在线| 欧美超碰人人| 丁香桃色网| 深爱激情五月天| 久久久婷婷五月亚洲97号色| 五月天啪啪啪| 色999五月色| 五月精品99综合| 五月开心婷婷网| 99热在这里只有精品| 欧美交换配乱吟粗大25P| 久久天堂网| av操一操| 五月婷婷黄网站大全| 五月婷六月综合在线观看| 免费亚洲婷婷| 伊人碰碰婷婷| 婷婷丁香亚洲色综合91| 丁乡久久| 久久久久久久久99精品| 日本一级一级一级一级| 色综合久久88色综合天天99| 26UUU欧美激情一区二区| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 国产亚洲99久久| 91日韩美女被插视频| 五月婷综合网| 色色999三级片| 五月丁香少妇网| 成人综合网站| 婷婷色Av| 激情碰碰碰| 婷婷精品性性性性性性性| 202丰满熟女妇大| 天天免费成年人视频| 热99这就是精品视频| www.五月天色色.com| 亚州激情网站无码| 性做久久久久久久免费看| 天天狠狠婷婷在线| www.激情| 日韩色色视频www| 99riAV成人在线视频| 中文不卡一二三区| 人操91在线| 丁香九月婷婷色| 亚洲无码影音| 99热资源在线| 天天曰夜夜爽| 97caop| www.五月婷婷| 国产乱人偷精品人妻A片| 天天插天天很| 9色免费网| 可以免费观看的AV| 亚洲婷婷五月天在线激情综合网| 激情五月黄色| 久久综合中文字幕| 人妻五月天激情开心网| 996黄色片| 丰满人妻一区二区三区| 日日日,com| 风流少妇A片一区二区蜜桃| 五月天婷婷开心| 4399精品一区二区| 青草激情综合| 综合六月激情婷婷| 超碰人人艹| 日本天天操| 五月婷婷丁香| 激情婷婷久久| 99热只有| 天天干天天干天天操| 五月丁香色综合| 婷婷丁香六月| 六月丁香社区| 婷激情五月天视频导航| 欧美碰碰| 九九亚洲| 成人视屏在线观看| 婷婷综合六月| 开心婷婷五月激情网小说| 9九九久久精品无码专区| 玖玖在线| 视色综合| 激情五月激情综合网一级丸片 | 婷婷开心六月| 丁香五月狠狠在线观看| 五月丁香综合影院| 91男同视频| 大香蕉伊人爱在线| 五月丁香六月综合激情网| 婷婷综合色网| 婷婷久久女人| 国产午夜伦鲁鲁| 日日夜夜干| 狠狠操天天操综合| 少妇高潮一区二区三区99欧美| 综合aV在线| 久久9久| 99热这里只有精品18| 丁香六月综合激情| 日本丁香久在线| 成人网在线观看视频| 婷婷伊人网| 久久人妻伊人| 五月丁香婷中文字幕 | 日韩日比视频| 一级性感毛片| 91在线视频观看午夜福利| 亚洲高清在线| 色婷婷五月综合在线| 亚洲国产精品综合色区| 天天在线久久综合 | 99热在线看片| 热婷婷在线视频| 日日夜夜天天| 人妻人人操| 六月婷婷狠狠色在线观看| 99精品综合| www.99热| 婷婷色基地| 激情丁香五月激情婷婷| 日本在线免费中文com.| 99热丁香| 五月丁香网站| 色综合中文色综合网| 色情激情五月婷婷| 亚洲日本三级片| 97高清国语自产拍| 嫩草AV久久伊人妇女超级A| 激情综合网五月激情| 任你日视频| 狠狠色丁香婷婷久久综合| 另类小说激情五月天| 五月婷婷狠狠干| 色婷婷视频| 色色色色色级无码| 五月丁香六月色情网欧美| 久久机热这里只有精品免费视频| 欧美色图45678| 99久久精| 五月丁激情| 激情丰满熟妇五月| 五月婷婷丁香狠狠撸久久| 日本va视频| 激情性五月天免费小说视频| 夜夜夜夜撸夜夜操| 五月天婷婷綜合院| 色播丁香| 中字幕视频在线永久在线观看免费 | 激情激情激情网| 五月天小说激情| 久久人人人人妻| 五月花亭亭| 夜夜做夜夜愛| 另类激情五月在线视频欧美| 久久只有18视频| 色色a| 狠狠色综合网| 婷婷狠狠青青| 思思99久久| 五月丁香婷婷综合| 婷婷五月天日日日干干干| 久99热| 色色日本欧美| 99爱在线视频| 婷婷五月天电影网| 久777| 中文网婷婷字幕婷| 色播五月婷婷| 久久婷婷五月天大香蕉| 91日视频| 人人干天天操五月丁香| 色五月人妻| 亚洲区视频| 亚洲熟妇AV乱码在线观看| 婷婷在线日韩综合| 综激情网| 天天操天天日天天操| 免费亚洲婷婷| 1000部毛片A片免费观看| 激情6月| 久久免费丁香| 亚洲人妻一区二区| 婷婷五月天av| 婷婷婷久久| 亚洲成人在线免费| 五月天色婷婷基地| 亚洲操b| 五月综合激情啪啪啪啪啪| 999久久久国产精品| 色情·com| 五月花免费视频| 久热免费| 婷婷色色丁香五月天| 色婷婷六月综合| 91丨九色丨熟女|老版| 无码AV免费精品一区二区三区| 怡红院91a√| 激情婷婷色小说| 天天透天天爱| 成人丁香婷婷| 综合久色五月| AA丁香综合激情| av一区免费看| 五月天亚洲最大成人| 人人爱人人草| 久久婷婷青青| 狠狠婷婷爱| 成人电影在线免费试看| 五月丁香A片| 五月天天丁香婷婷在线中| 天天日天天干天天爽| 亚洲日本韩国| 激情五月图| 91九色精品女同系列| 五月婷婷综合成人| 欧美另类五月激情| 99精品偷自拍| 无码一区二区日韩| 日韩无码色色| 国产在线中文字幕| 色五月婷婷av| 婷婷五月天Av| 99热资源在线| 射琪琪| 97色色在线视频| 成人亚洲精品久久久久| 色五月婷婷少妇人妻| 久热综合| 色呦呦免费观看| 欧美大道不卡| www.婷婷.com| 91久久综合亚洲鲁鲁五月天| 超碰国产在线观看| 啪啪黄页网| 婷婷亚洲久久| 9热在线观看| 婷婷五月天丁香成人社区| 婷婷五月丁香综合人妻| 99久99久| 综合色色色| 综合激情四射一theav| 另类图片婷婷五月天| 岛国在线观看91| 亚洲婷婷六月天| 亚洲精品无人区| 亚洲激情 久久| 亚洲人妻av| 婷五月天天| 色欲天天综合网| 丝袜大香蕉| 色色色色色色色色网站| aaaaaa片| 琪琪色综合网站| 另类综合网| 色婷婷无吗| 九九在线精点品| 亚洲午夜一区二区| 丁香五月婷婷影院| 久久五月丁香综合17C| 久久久天堂国产精品女人| 婷婷五月色网| 色99婷婷五月天| 亚洲人妻Av| 99热99在线| 五月丁香六月婷| 五月丁香综合伦理片| 久久久久久久久月丁| 天天插AV丝袜中| 啪色综合| av九九| 美国天天日天天操| 婷婷天堂视频| 亚洲人人操| 九九热这里只有精品一| 99碰视频| 99热在线播放| 综合久久99| 五月婷婷激情网| 国产精品激情AV久久久青桔| 九九热只有精品| 色久女| 国产毛多水多女人A片| 婷婷五月骚厕所| 久久婷婷内射| 91 影音先锋| 五月丁香网站| 精品99网站| 69人妻人人澡人人爽久久| 亚洲五月花| 337午夜福利| 大香蕉五月婷婷| 日本4399天堂中出| 色婷网| 五月天婷网| 欧美人人操| 五月婷婷色欲| 激情五月综合网| 五月丁香激情欧洲啪啪| 色色色999| 91国产精品视频播放| 久9热| 99热这里只有精品18| 婷婷五月天最新综合你懂的| www.精品久9| 九九爱激情| 激情五月婷婷丁香六月| g00d人体西西| 五月丁香综合色婷婷| 99精品在线| 五月激情六月宗合| 五月婷庭丁香在线| 成人精品在线观看| 九九性爱网| 琪琪色五月婷婷老师| 可以看的AV| 九九成人视频| 亚洲国产va| 草美女在线观看视频在线播放| 国产三级片91| 丁香香蕉婷婷| 六月丁香婷婷爱| 香蕉AV777XXX色综合一区| 亚洲综合1024| www.婷婷| 久久视频婷婷| 久久99热这里只频精品6学生| 丁香五月天激情AV| 婷婷激情综合无月| 五月天激日本色情在线| 日本一级一级一级一级| 六月丁香大香蕉| 欧美性爱一区| 色www.con| 欧美婷婷综合网| 嫩模草| 国产五月视频| 久热在线中文字幕色999舞| 天天日,天天干,天天操| 97碰免费视频在线| 日韩砖区| 日韩五月婷婷| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 欧亚洲在线高清视频| 成人亚洲精品| 丁香五月婷婷啪啪| 五月天丁香六月综合| 婷婷性爱影院| 538午夜激情| 激情五月天久久丁香| 激情综合亚洲| 夜夜骑日日操| 丁香网五月网| 婷婷丁香五月综合激情视频| 四色99久久| 99久视频| 六月丁香啪啪啪| 亚洲无码播放| 亚洲激情av| 第九色区av天堂| 色五月激情五月| 秋霞av吧| 国产精品岛国片在线观看免费| 欧美超碰亚洲| 在线观看av网站| 国产在线中文字幕| 婷婷五月天激情综合| 婷婷精品在线| 天天做天天爱天天爽综合网| 九月综合| 亚洲精品99| 色欧美一级| 国产在线视频1234| 日本三级黄色大片| 成人婷婷五月| 五月丁香六月婷婷成人电影| 国产激情久久| 超碰亚洲欧美| 婷婷五月天AV在线| 99热6这里之有精品| 9999热这里只有精品| 99热精品观看| 色噜噜,噜噜色| 激情五月婷婷丁香综合网| 丰满人妻一区二区三区| 丁香五月婷婷基地| 色色婷婷综合| 丁香五月综合| 秋霞影音91人妻久久| 久9视频免费播放| 九九综合| 九九九九九九九九九九九九九国产精品| 香蕉婷婷色五月| 婷久看人爽| 婷婷五月激情网| 天天日日夜夜| 精品网站:999WWW| 五月丁香 久久久| 婷婷五月天激情小说| 国产免费一区二区在线A片视频| av在线免费播放观看| 国产精品社区| 99热这里只有免费| 日日夜夜干| 色吊丝中文字幕| 丁香五月六月久久综合| 九九视频在线| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 丁香香蕉射射射| 日韩成人精品中文字幕| 婷久久高清| 色综合夜夜| 五月天婷婷激情小说电影| 精品色色| 五月丁香六月婷综合成人综合 | 日本久久久97| WWW色五月天| 亚洲色图五月丁香| 天天操天天插天天射| AAAA亚洲| 狠狠色婷婷| 婷婷99狠狠躁天天躁中文| 丁香五月亚洲综合| 五月天偷拍| 久久九九爽| 人人摸人人澡人人| 大香蕉视频婷婷| 在线综合婷婷| 成人精品在线| 婷婷色中文字幕| 色婷另类| 国产综合久久久777777| 久久综合激情婷婷激情| 国产精产国品一二三在观看| 欧美va精品va老师va| 亚洲婷婷基地| 嫩草视频观看| 天天插天天射| 97婷婷丁香五月天激情图片| 中文字幕乱轮| 67久久| 天天干-天天日| 年轻的妺妺伦理HD中文| 五月天婷婷自拍图片在线观看| 久久精品婷婷| 色碰干| 国产精品视频免费看| 日韩 mm 不卡| 国产激情婷婷| 伊人色五月| 色色日本欧美| 婷婷丁香久久| 金桔一区二区ab地址| 色色色免费视频| 日韩亚洲视频| 天天干天天爽| 人妻性爱| 国产99久久久国产精品免费看| 五月丁六月香av| 免费黄网不卡AV| 天天xxxxxx天天日| 日韩欧美婷婷丁| 99爱在线免费视频| 婷婷久久精品| 五月天综合网| 色五月开心五月激情五月| 国产亚洲精品久久久久苍井松| 五月天色综合服务平台| 九月丁香八月婷婷加勒比| 五月婷婷六月奇米网丁香| 五月婷婷很很色| 天天舔天天操| 色女人久久| 日本丁香五月| 另类激情五月| 六月婷婷AV| 狠狠爱激情网| 色五月婷婷少妇人妻| 99色爱| 六月丁香啪啪啪| 超碰免费人人| 亚洲日本韩国| 丁香五月婷婷色情综合| 9人人操人人看| 婷婷色播婷婷| 丁香五月婷婷在线视频| 91人人澡人人爽人人看| AV电影在线播放| 色婷亚洲| 91婷婷丁香| 国产亚洲精品久久久久久牛牛| 亚州AV超碰人人操| 探花搜索结果 - 黄上黄| 丁香五月婷婷影院| 这里只有精品久| 婷婷 伊人 久久| 伊人91| 婷婷色情六月| 亚洲综合激情五月久久| 九色在线五月婷婷网址| 久草a片| 99热国产国产| 91 九色 入口| 亚洲综合色网| 激情婷婷丁香| 99热日本| 五月婷婷av| 99热每日| 91精品综合久久久久久五月丁香| 五月婷婷无码专区| 婷婷久久99| 色五月丁香91| 丁香五月婷婷影院| 5月丁香婷婷激情网| 五月婷婷高清| 99精品97| 影音 五月 婷婷 久久| 亚洲午夜视频| av中文网站| 99re思思热在线视频| 九九激情视频| 成人做爰A片免费看视频| 久热99热| 中国激情网| 草美女在线观看视频在线播放| 99色在线观看视频| 丁香综合日产精品久久| www.狠狠操| 五月天偷拍| 欧美综合激情五月天| 五月天五月色婷婷综合| 亚洲AV网址| 开心五月婷婷伊人| 成人AV在线电影| 色色五月婷婷久久| 美女丁香五婷婷| 99久久成人| 丁香五月网络网络| 一起草Av| 无码髙清| 狠狠色丁香婷婷| 天天综合天综合久久网| www.夜夜| 99热这里| 五月丁香亚洲综合| 一区二区乱码视频| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 99婷婷五月天激情| 丁香五月玖玖| 亚洲综合网在线| 狠狠操狠狠插| 超碰av在线| 国产色色视频| 婷婷性爱| 99思思| 五月天婷婷视频| 9l视频自拍九色9l视频自拍九色9l社区 | 五月婷婷丁香狠狠撸久久| 五月亭亭激情综合| 国产综合激情五月久久| 五月色丁香综合| 五月婷婷六月丁香激情深爱| 国产免费一区二区在线A片视频| 五月丁香自拍| 婷婷月综合| 国产精品国产| 国产无人区大片| 大香线蕉伊人| 丁香婷婷五月天激情四射| 五月婷婷中文字幕| 色狠狠综合| 啪啪色激情五月天| 综合五月天亚洲婷婷| 九月丁香婷婷综合激情| AV堂狠狠干| 亚州欧美国产久精国产99综合视频| 久久66er久久| 久久与婷婷| xxx日本东京热| 九九机热| 六九色综合婷婷五月天| 久热这里| 国产操碰| 日韩操人| 懂色av粉嫩av蜜臀av| 色综合色香蕉网| 超碰成人在线免费观看| 国产小网站| 97碰| 婷婷久久婷婷色五月| 激情综合网激情五月网| 日日夜夜狠狠干| 人妻久久久久久久 | 精品夜夜澡人妻无码AV| 草草色情综合网| 亚洲免费电影2| www久久99| 人妻体体内射精一区二区| www.wuyuetian啪啪| 成人短视频免费| 99精品在线观看视频| 天搞天天天天天| 婷婷综合五月色播| 丁香美女五月天婷婷| 99欧美| 爱爱网址9| 狠狠久久婷婷| WWW.天天日| 久色五月| 99热爱爱干干日| 婷婷五月影院| 91人人爽人人操| 婷婷色婷婷亚洲成人| www.五月激情红色| 色九九九九| 图片区 小说区 区 亚洲五月| AV在线二十六页| 久久久婷婷婷| 五月婷婷伊人在线| 久久久久婷婷| 免费碰碰视频久| 我爱大香蕉| 毛片毛片毛片毛片| 九九色热| www.久久色.com| 播五月婷婷开心| 色色亚洲五月天| 五月丁香影院| 色婷婷AV在线| 思思re视频在线| 亚洲综合色婷婷| 婷婷五月丁香99| 亚洲va欧美| 天天做好综合色| 五月丁香激情综合| 日本久久视频| 99成人免费视频| 色五月天婷婷| 99少妇精品| 噜噜噜噜在线| 三级三久久线久久99久目本WW| 婷婷.com| www.天天干.com| 狠狠操狠狠| 九九色婷婷五月天| 久热这里只有精品6官网亚洲| 26uuu亚洲| 激情小说色五月| 婷婷五月亚洲激情| 99ri国产在线| 亚洲AV永久无码影院黑人| 五月社区婷婷激情| 五月综合色| 五月丁香婷婷色色色| 五月丁香六月综合基地| 免费视频无码| 久久久人妻久久久| Av九九| 亚洲一级AV在线免费播放| 日日懆天天懆| 丰满少妇乱A片无码| 五月天激情影院| 婷婷五月色惰| 五月色婷丁香| 丁香婷婷十月| 综合久久激情久久| 婷婷丁香五月天欧美| 大香蕉综合网| 色啪综合| 色婷婷狠狠18禁| 影音先锋一区二区三区| 色色色网站| 色色色色色五月| www.com五月天| 色综合久久无码| 99免费视频精品| 日本不卡一区二区三区| 情婷婷五月天在线| 亚洲日韩一页精品发布| 五月丁香综合啪啪| av中文在线| 五月丁香网视频| 99热这里只有精品中文字幕| 婷婷综合色图| 色婷婷久久综合| 五月停停色色丁香| 爱久综合| 激情久久久久久| 婷婷五月天影院| 精品久热| 天天肏夜夜肏| 99爱免费在线观看| 国产精品VIDEOSSEX久久发布| 99热日韩这里只有精品| 成人国产欧美大片一区| 噜噜噜噜在线| 日韩精品VIP| 五月天婷婷乱论小说| 97人妻碰碰碰久久久久-最近国语高清| www.com五月天| pom538精品视频| 久久九九网| 欧美成性色| 天天揷综合网| 婷婷五月图片小说网| 欧美日韩精品一区二区三区钱| 日本色爽| 综合色久| 色综合久久之分久久| 国产精品激情五月天色婷婷| 九九Y精品热播| 天天综合色| 99操| 丁香色婷婷色手机免费在线| 九九久热| 色玖玖综合网| 狠狠爱综合网| 色五月亚洲开心网| 六月婷婷综合久久| 狠狠爱综合网| 9l视频自拍9l九色9l成人| 成人在线精品| er99免费视频在线| 一起操 91N.com| 亚洲天堂久久| 丁香亚洲婷婷五月| 国产小网站| 日本丁香五月| 99日这里只有精品| 九九亚洲综合| 任你躁XXXXX麻豆精品| 欧美人妻一区二区| 另类专区在线观看| 色伊人91在线视频| 九九99在线观看视频| 亚洲狠狠色丁香婷婷综合久久| 五月天最新网| 天天综合亚洲综合网天天αⅴ| 日韩欧美成人网| 67194成I人在线观看线路1| 激情丁香五月激情婷婷| 九九99精品| 五月天综合在线观看| 九九色精品| 蜜臀av 粉嫩av 懂色av | 成人一区在线观看| 九九無妻| 思思re99视频在线观看| 国产激情久久| 在线成人国产| 大香蕉综合| 99热这里只有精品3| 99re思思| 婷婷综合网性| 久草婷婷网| 五月婷婷欲色| 久久久久9| 日本操B片| 99热这里只有精品8| 天天爽天天操| 亚洲人人干| 亚洲永久免费| 婷婷五月丁香A∨| 影音先锋高清无码资源网| 激情九月婷婷| 日日操天天操| 特级片神马电影| 婷婷基地成人五月天| 婷婷色五月开心五月| 色碰碰| 久久性爱视频这里只有精品| 热久久思思热思思| www.婷婷五月| 99资源在线| 天天操天天干天天射| 久久丁香五月天| 黄色成人网站在线播放| 婷婷丁香激情综合色情| 色综合xx| 就要去操亚洲成人精品五月天丁香婷婷| 九九偷拍网| 九月丁香婷婷网| 日韩成人无码| 99精品网| 丁香五月自拍| 婷婷五月天777| 亚洲精品视频在线播放| 国产熟女大叫受不了| 亚洲啪啪自拍| 激情操逼婷婷| 99婷婷精品推荐在线视频| 天天干天天干天天| 日本啪啪网| 91人操| 久99热在线观看| 18av天堂| 99热久| 婷婷的99视频网站| 99久扒热| 原琪琪色影院| 男人天堂99| 久久婷婷五月综合激情国产| www.97干视频| 99ri在线播放| 超碰在线观看9| 2017人人操| 久久香蕉丁香| 182TV亚洲| 婷婷丁香花五月天| 欧日韩成人| 久久精品9| 成片免费播放| 色热久资源| 天天弄天天爽| 伊人天天色| 五月激情偷拍婷婷| 97色婷婷五月天| 五月丁香婷婷成人综合网| 激情小说五月欧美亚洲丁香| 五月婷在线播放| 五月婷婷官网色| 九月婷婷激情| 五月婷婷av| 综合网色| 怡红院AV亚洲一区二区三区H| 久草热8精品视频在线观看| 男女啪啪做爰高潮无遮挡| AⅤ网站在线看| www.九九婷婷| 色婷婷88| 色色色色热热| 久色五月婷婷综合| 五月的色婷婷高潮| 99riAV国产精品视频| 九九这里都是精品| 日本不卡一区二区三区| 免费色婷婷| www999日韩精品| 去干网av| 爱的综合网| 色色亚洲视频| 婷婷色色五月天| 98国产精品综合一区二区三区| 丁香婷婷五月色综合| 婷婷综合偷拍| 午夜成人AV在线| 五月婷婷天天色| 99精品免费欧美小视频| 9热精品| 国产在线aaa片一区二区99| 丁香八月综合激情| 色婷婷免费视频| 色播丁香五月婷婷操:屄| 婷婷五月18永久免费视频| 九九干视频| 香蕉久久国产AV一区二区| 99热99日天天干| 日韩成人中文字幕| 婷婷五月天99| 五月丁香六月激情综合| 五月丁香在线| 成人丁香五月婷| 婷婷丁香视频在线观看免费| 色丁香五月综合网| 欧美综合五月丁香六月婷| 国产AV一区二区三区最新精品 | 婷婷五月天激情基地| 玖玖无码中文| 久久五月网| A在线观看| 人人插操| 色情五月丁香| 91久久婷婷人人澡草| 五月婷婷色| 六月婷婷天堂| 亚洲综合网区| 丁香五月婷婷AV在线| 五月天大香蕉| 婷婷久久伊人| 天天做综合网色综合| av在线免费播放| 第四色色六月色综合| 无码se| 永久精品| 日本欧美成人片AAAA| 婷婷丁香激情综合色情| 淫荡综合网| 六月色色| 久久婷婷五月天蜜桃| 亚州精品久久久久AV无码| 丁香五月五月婷婷| 久婷婷色| 视频色色色色色色| 成人免费120分钟啪啪| WWW.99热| 色五月色五天免费视频| 久久小说网| 五月丁香爱婷婷深深| 色婷婷精品视频| 热久免费视频9| 综合性视频99| 大香蕉婷婷| 日韩无码成人电影| 亚洲五月婷婷| 色色五月天 亚洲| 99re在线观看视频| 五月婷av| 99精品一二三四视频| 这里只有精品免费| 涩丁香| 2025天天爽天天摸| 久久综合五月天| www99热| 操99| 久久婷婷啪啪视频| 激情图片久久| 婷婷丁香五月激情密臀av| 婷婷五月天激情五月天深爱五月天| 99视频这里有精品| 综合狠狠五月婷婷| 在线99热| 五月天婷婷一起草| 天天天天天天操| 色色五月天婷婷| 色五月网址| 五月天堂色| 99在线精品观看99| 亚洲五月婷| 亚洲综合色色色| 91久操| 五月丁香六月婷婷网| 色九网| 狠狠做婷婷| 激情综合播播| 开心激情婷婷| renrencaoni| 亚洲妇女熟BBW| 色国产五月| 六月成人网| 99视频精品8| 综合色、色综合| 狠狠插狠狠| 97婷婷久久丁香| 五月天婷婷激情| 色碰碰|