亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Verilog中wire與reg到底怎么用?從硬件本質(zhì)到工程實(shí)踐徹底講清

Verilog中wire與reg到底怎么用?從硬件本質(zhì)到工程實(shí)踐徹底講清 寫了這么多年RTL帶過不少剛?cè)腴T的同學(xué)我發(fā)現(xiàn)關(guān)于 wire 和 reg 這個(gè)問題的出現(xiàn)頻率高得有點(diǎn)離譜。幾乎每隔一陣子就有人在群里問一遍“這個(gè)信號(hào)到底該定義成 reg 還是 wire”面試的時(shí)候十個(gè)人里也有七八個(gè)會(huì)在這上面被繞進(jìn)去。今天干脆把這件事徹底講透從硬件本質(zhì)、仿真模型、綜合行為到真實(shí)工程里的選擇習(xí)慣一次性掰開揉碎。先給一句話結(jié)論wire 描述的是“物理連線”或“組合邏輯的連續(xù)驅(qū)動(dòng)”reg 描述的是“always 塊內(nèi)部的過程賦值目標(biāo)”兩者在仿真模型里的角色完全不同但綜合出來的硬件未必是你想的那樣。至于“什么時(shí)候用哪個(gè)”說到底就一條最實(shí)用的判斷準(zhǔn)則你先想清楚要用 assign 連續(xù)賦值還是要用 always 過程賦值前者聲明成 wire后者聲明成 reg。1. 先搞懂本質(zhì)wire 是“線”reg 是“變量”很多初學(xué)者在學(xué) Verilog 的時(shí)候腦子里的第一反應(yīng)是“wire 就是導(dǎo)線reg 就是寄存器?!边@個(gè)說法在八成的情況下能對(duì)付作業(yè)但一旦接觸到真實(shí)工程會(huì)翻車翻得很難看。原因在于這個(gè)說法混淆了仿真層面的數(shù)據(jù)類型和綜合后的硬件邏輯這兩件事不是一回事。1.1 從硬件視角看 wire它就是一根物理連線wire 這個(gè)詞的本意就是“導(dǎo)線”在語言標(biāo)準(zhǔn)里屬于net type網(wǎng)絡(luò)類型。網(wǎng)絡(luò)類型描述的是一個(gè)信號(hào)值由某個(gè)驅(qū)動(dòng)源持續(xù)驅(qū)動(dòng)的連接關(guān)系它本身不存儲(chǔ)任何狀態(tài)。你把一個(gè) wire 想成一塊電路板上的一截銅線就行了當(dāng)前時(shí)刻這根線上是什么電平完全取決于現(xiàn)在誰在驅(qū)動(dòng)它。在 RTL 設(shè)計(jì)里wire 最典型的出現(xiàn)位置有幾個(gè)模塊與模塊之間的端口連接。assign 連續(xù)賦值的左側(cè)。頂層文件里把子模塊輸出接到另一個(gè)子模塊輸入的中間信號(hào)。你寫assign led cnt[3];的時(shí)候左側(cè)的 led 就必須是 wire。這句話翻譯成硬件行為是把計(jì)數(shù)器第 3 位這根線的電平直接連到 led 引腳上。它不是某一時(shí)刻賦值一次而是每一時(shí)刻都被持續(xù)驅(qū)動(dòng)這也是連續(xù)賦值這四個(gè)字的含義。還有個(gè)容易忽略的小細(xì)節(jié)wire 這類網(wǎng)絡(luò)類型的默認(rèn)值是高阻態(tài) z。在仿真里如果一個(gè) wire 沒有被任何驅(qū)動(dòng)源驅(qū)動(dòng)它讀出來是 z 而不是 0。這個(gè)特性在某些總線模擬場景下很關(guān)鍵。1.2 從硬件視角看 reg它是一種“會(huì)記住”的存儲(chǔ)行為reg 在語言標(biāo)準(zhǔn)里屬于variable type變量類型。它描述的是一個(gè)過程賦值procedural assignment的目標(biāo)也就是說它的值是在 always、initial、task、function 這些過程塊內(nèi)部通過賦值語句在某一時(shí)刻被更新然后保持這個(gè)值直到下一次被更新。你寫always (posedge clk) begin cnt cnt 1b1; end這里的 cnt 必須聲明成 reg。如果把電路行為翻譯成自然語言時(shí)鐘上升沿來的時(shí)候把 cnt 更新成新值其他時(shí)間它保持不動(dòng)。這種保持的行為天然適合用變量類型去建模。所以從仿真模型上看reg 更像程序語言里的變量它是內(nèi)存里的一個(gè)值可以被賦值可以保持可以在被賦值之前讀取雖然這樣會(huì)讀到未知態(tài) x。1.3 最容易踩的坑reg 并不等于硬件寄存器這是整個(gè)問題里最經(jīng)典的認(rèn)知偏差。很多人以為 reg 類型綜合出來就一定是觸發(fā)器wire 綜合出來就一定是連線這個(gè)想法錯(cuò)得非常徹底。reg 只是一個(gè)仿真語義層面的變量類型。一個(gè) reg 信號(hào)綜合出來到底變成什么硬件完全取決于你對(duì)它做了什么。always (posedge clk)塊里賦值的 reg綜合成 D 觸發(fā)器。always (*)塊里賦值的 reg如果賦值完整綜合成純組合邏輯。always (*)塊里賦值不完整綜合成鎖存器latch。在initial塊里使用的 reg只在仿真里存在綜合時(shí)往往被直接優(yōu)化掉。我用一個(gè)更直白的例子幫你建立感覺。下面這段代碼reg result; always (*) begin if (sel) result a b; else result a - b; endresult 聲明的是 reg但它綜合出來是純組合邏輯實(shí)現(xiàn)的是一個(gè)二選一的加減法器沒有時(shí)鐘、沒有觸發(fā)器。因?yàn)?always 塊是 level sensitive電平敏感的且在 if 和 else 兩個(gè)分支里都賦值了信號(hào)每個(gè)時(shí)刻都是被驅(qū)動(dòng)的所以不需要存儲(chǔ)。反過來看如果你寫wire out; assign out din_reg;out 是 wire但它接的實(shí)際連過去的是寄存器輸出。綜合后硬件上out 可能就是某個(gè)觸發(fā)器輸出引腳連出來的一小段金屬線。所以別再背reg 就是寄存器這種簡化口訣了。reg 描述的是賦值方式不是硬件結(jié)構(gòu)。2. 什么時(shí)候用 wire核心場景拆解講完本質(zhì)現(xiàn)在落實(shí)到具體工程里到底怎么選。一個(gè)信號(hào)聲明成 wire就意味著這個(gè)信號(hào)會(huì)出現(xiàn)在 assign 語句左側(cè)、模塊實(shí)例化的輸出端口、或者連續(xù)賦值產(chǎn)生的表達(dá)式中。2.1 結(jié)構(gòu)建模與端口連接wire 是模塊間通信的管線數(shù)字系統(tǒng)設(shè)計(jì)到一定規(guī)模幾乎逃不開自頂向下、模塊化這套方法。當(dāng)你例化一個(gè)子模塊的時(shí)候子模塊的輸出端口在父模塊這一側(cè)連接它的一定是 wire。來看一個(gè)典型的例子// 子模塊并轉(zhuǎn)串發(fā)送器 module uart_tx( input wire clk, input wire rst_n, input wire tx_start, input wire [7:0] tx_data, output reg txd ); // ... endmodule // 頂層模塊例化 uart_tx module top( input wire clk, input wire rst_n, input wire send_en, input wire [7:0] data_in, output wire uart_txd ); wire tx_start_w; assign tx_start_w send_en; uart_tx u_uart_tx ( .clk (clk), .rst_n (rst_n), .tx_start (tx_start_w), .tx_data (data_in), .txd (uart_txd) ); endmodule父模塊聲明的連接線 tx_start_w 和輸出端口 uart_txd 都是 wire。原因很簡單這些信號(hào)是“別人驅(qū)動(dòng)的”當(dāng)前模塊只需要讀取它的值或者把它繼續(xù)連出去不需要在某個(gè)時(shí)刻捕獲并保持它。從硬件意義上說它們就是一根根真實(shí)存在的連線。2.2 組合邏輯的數(shù)據(jù)流建模assign 連續(xù)賦值的黃金搭配assign 語句是 Verilog 里描述組合邏輯最基本的手段而任何 assign 語句的左側(cè)目標(biāo)信號(hào)都必須是 wire 類型。這算是語法上的硬性規(guī)定。組合邏輯什么時(shí)候優(yōu)先用 assign而不是用 always我的習(xí)慣是當(dāng)邏輯可以用一條或幾條布爾表達(dá)式直接描述清楚時(shí)用 assign 更簡潔、更不容易出錯(cuò)。比如wire flag_valid (byte_cnt 4d8) (state BUSY); wire [7:0] next_data (fifo_empty) ? 8h00 : fifo_dout;這兩個(gè)信號(hào)的硬件含義就是一堆與門、或門、比較器和多路選擇器的組合沒有任何“時(shí)序狀態(tài)”在里面。我在做滑動(dòng)窗口濾波或者累加求和這類純粹的組合運(yùn)算時(shí)也偏好用 assign 把中間結(jié)果鋪開。好處是一眼能看出數(shù)據(jù)的流向不用去翻 always 塊的端口列表仿真排錯(cuò)的時(shí)候非常直觀。2.3 多驅(qū)動(dòng)與總線場景wire 才能掛多個(gè)驅(qū)動(dòng)源wire 類型還有個(gè) reg 不具備的特性它允許多個(gè)驅(qū)動(dòng)源共同驅(qū)動(dòng)雖然這在行為級(jí)建模時(shí)要非常小心。真實(shí)工程里典型的場景是三態(tài)門和雙向 IO。// 雙向數(shù)據(jù)線由讀寫控制信號(hào)決定驅(qū)動(dòng)方向 inout wire sda; assign sda (wr_en) ? tx_data_reg : 1bz; assign sda (rd_en) ? 1bz : tx_data_reg;這種用高阻態(tài) z 釋放總線的寫法本質(zhì)是在說“我不驅(qū)動(dòng)這根線的時(shí)候把它讓給別人?!边@種能力只有網(wǎng)絡(luò)類型wire具備。如果你把一個(gè) inout 引腳內(nèi)部信號(hào)聲明成 reg綜合工具會(huì)直接報(bào)錯(cuò)因?yàn)?reg 是有狀態(tài)保持的變量無法實(shí)現(xiàn)掛起釋放。需要再補(bǔ)一句多個(gè) assign 同時(shí)驅(qū)動(dòng)同一個(gè) wire 時(shí)如果兩個(gè)驅(qū)動(dòng)源同時(shí)有效并且電平相反仿真結(jié)果取決于驅(qū)動(dòng)強(qiáng)度硬件上則可能燒毀。所以設(shè)計(jì)內(nèi)最好避免邏輯上的多驅(qū)動(dòng)沖突總線場景請用三態(tài)控制或仲裁邏輯。2.4 一個(gè)小結(jié)看到這些信號(hào)就用 wire綜合多年工程經(jīng)驗(yàn)下面這些信號(hào)我基本上是閉眼聲明成 wire模塊端口里聲明的 input 信號(hào)input 天然只能是 wire。模塊例化時(shí)連接輸出的外部連線。assign 語句左側(cè)的組合邏輯目標(biāo)。三態(tài)總線、雙向 IO 的內(nèi)部信號(hào)。由子模塊輸出經(jīng)過簡單邏輯立即作為另一個(gè)子模塊輸入的中間信號(hào)。判斷的底層邏輯是**如果一個(gè)信號(hào)不需要在 always 塊里被賦值那么它就是 wire。**反過來只要它出現(xiàn)在任何 always 塊左側(cè)就必須是 reg。3. 什么時(shí)候用 reg核心場景拆解3.1 always 塊中的過程賦值必須用 reg 的硬性規(guī)則Verilog 語法規(guī)定過程賦值語句在 always、initial、task、function 內(nèi)賦值的目標(biāo)變量必須聲明為變量類型也就是 reg、integer 等。所以判斷一個(gè)信號(hào)該不該用 reg最快的方法是看它有沒有出現(xiàn)在 always 塊里。這里我多說一點(diǎn)“為什么”。因?yàn)?reg 變量類型的仿真語義是“存儲(chǔ)并保持”在某一個(gè)仿真時(shí)間點(diǎn)被賦值后直到下一次被賦值之前它的值都保持不變。而 always 塊天然就是事件觸發(fā)、執(zhí)行一次、然后等待下一個(gè)事件這種執(zhí)行模型兩者正好天然匹配。wire 則是持續(xù)驅(qū)動(dòng)的把它放進(jìn) always 里賦值語義上就矛盾了。3.2 時(shí)序邏輯的建模計(jì)數(shù)器、分頻器與狀態(tài)機(jī)時(shí)序邏輯是 reg 最重要的主戰(zhàn)場。凡是要在每個(gè)時(shí)鐘沿更新值的信號(hào)必須聲明為 reg。計(jì)數(shù)器是最直觀的例子reg [7:0] cnt; always (posedge clk or negedge rst_n) begin if (!rst_n) cnt 8d0; else if (cnt_en) cnt cnt 1b1; else cnt cnt; endcnt 是 reg。它在時(shí)鐘上升沿更新時(shí)鐘沒來的時(shí)候就保持舊值綜合后就是 8 個(gè) D 觸發(fā)器級(jí)聯(lián)成的計(jì)數(shù)器。類似地做 UART 多字節(jié)收發(fā)、SPI 時(shí)序控制、出租車計(jì)價(jià)器的金額累加這些從熱詞看都是大家經(jīng)常練手的工程案例核心都繞不開狀態(tài)機(jī)和計(jì)數(shù)器而這些狀態(tài)寄存器、計(jì)數(shù)值寄存器統(tǒng)統(tǒng)都是 reg??梢赃@么說只要設(shè)計(jì)里有時(shí)鐘就一定有 reg。再提一句三段式狀態(tài)機(jī)。三段式寫法里第一段是狀態(tài)轉(zhuǎn)移用 always 時(shí)序邏輯狀態(tài)寄存器 current_state 聲明成 reg次態(tài)判斷 next_state 可以在第二段組合邏輯里聲明成 reg第三段輸出邏輯用 assign 接 wire 或直接在 always 里輸出 reg 都可以。整體上只要邏輯在 always 塊內(nèi)就繞不開 reg。3.3 組合邏輯的 always 建模reg 處理組合邏輯的典型場景這是很多人的第二個(gè)知識(shí)盲區(qū)。我面試的時(shí)候特別喜歡問一個(gè)問題always (*) 塊里賦值的信號(hào)聲明成 reg綜合出來是什么答案經(jīng)常讓人意外純組合邏輯。當(dāng)一個(gè) always 塊是電平敏感(*) 或 (a or b)、而且所有分支都對(duì)目標(biāo)變量完成了賦值時(shí)綜合工具會(huì)把它優(yōu)化成組合邏輯。沒有任何存儲(chǔ)的必要的條件下reg 這個(gè)名字就只是個(gè)仿真變量名而已。舉個(gè)例子一個(gè)很常見的組合邏輯建模方式reg [7:0] alu_out; always (*) begin case (op_code) 2b00: alu_out a b; 2b01: alu_out a - b; 2b10: alu_out a b; default: alu_out a ^ b; endcase endalu_out 聲明成 reg但它綜合出來是一個(gè) 8 位多路選擇器加運(yùn)算組合邏輯沒有時(shí)鐘也沒有寄存器。這里用 always 而不用 assign 的原因是 if/else 和 case 分支邏輯寫起來更靠近 C 語言思維多人協(xié)作時(shí)更好讀。不過我要提醒一句組合邏輯用 always 寫最大的風(fēng)險(xiǎn)是分支覆蓋不完全導(dǎo)致推斷出鎖存器。這個(gè)坑后面專門講。3.4 又一個(gè)陷阱always 塊里別亂用 wire見過不少新手把模塊輸出端口明明聲明成 output reg然后在頂層連接時(shí)卻發(fā)現(xiàn)綜合報(bào)錯(cuò)。還有更常見的毛病// 錯(cuò)誤示范 reg [7:0] data_bus; wire foo; always (*) begin foo data_bus[0]; // 編譯報(bào)錯(cuò)foo 是 wire不能在過程賦值里賦值 end這個(gè)錯(cuò)誤信息大概是說 foo is not a reg or integer解決方式就是要么把 foo 改成 reg要么把賦值語句改成 assign。語法層面的原因在上面已經(jīng)說過回歸到思維層面就是第一反應(yīng)要先分清**我是要寫 always 還是 assign。**定了語句形式數(shù)據(jù)類型就跟著定了。4. 仿真與綜合wire 和 reg 在“兩個(gè)世界”的行為差異如果你只想寫作業(yè)到第 3 節(jié)就夠了。但如果你想做真實(shí)的 FPGA 開發(fā)、ASIC 設(shè)計(jì)或者準(zhǔn)備秋招面試這里才是真正拉開差距的部分仿真模型的規(guī)則和綜合工具的行為在很多細(xì)節(jié)上并不一致。4.1 仿真模型wire 是事件驅(qū)動(dòng)的信號(hào)reg 是程序變量在仿真器內(nèi)部wire 和 reg 的數(shù)據(jù)更新機(jī)制是不同的。wire 的更新遵循 net 類型的事件驅(qū)動(dòng)規(guī)則當(dāng)它的任何一個(gè)驅(qū)動(dòng)源assign 右側(cè)表達(dá)式、門原語輸出、模塊輸出端口發(fā)生變化時(shí)仿真器會(huì)重新計(jì)算 wire 的值事件傳遞到下一級(jí)。這種模型對(duì)應(yīng)的是硬件里電平信號(hào)的連續(xù)傳播。reg 的更新則像普通編程語言的變量賦值在 always 塊被觸發(fā)時(shí)執(zhí)行塊內(nèi)語句把計(jì)算結(jié)果賦給 reg。在非阻塞賦值時(shí)這種更新還要分成“計(jì)算 RHS”和“更新 LHS”兩個(gè)階段這也是仿真器能模擬出真實(shí)觸發(fā)器采樣行為的底層機(jī)制。理解這個(gè)差異對(duì)你寫 testbench 很有幫助。比如在 initial 塊里你是可以給 reg 賦值的reg clk_tb; initial begin clk_tb 0; forever #5 clk_tb ~clk_tb; end但你不能在 initial 里給 wire 賦值除非你把它聲明成 wire 并用 force / assign 之類的方式來驅(qū)動(dòng)。很多人在 testbench 里把輸入信號(hào)聲明成 wire 然后直接賦值一編譯就報(bào)錯(cuò)核心原因就是沒分清楚這種仿真層面的差異。4.2 綜合映射硬件上兩者到底變成了什么綜合工具做的是把 RTL 語言描述的行為變成結(jié)構(gòu)。它關(guān)注的是你的賦值邏輯、分支結(jié)構(gòu)、時(shí)序約束而不是信號(hào)名字里帶的是 wire 還是 reg。所以綜合之后的 netlist 里基本上全是 wire——因?yàn)榫W(wǎng)表本身就是用連線連接各個(gè)單元的描述。原來的 reg 信號(hào)如果最后映射成觸發(fā)器網(wǎng)表里是一個(gè) DFF 單元的 Q 輸出如果映射成組合邏輯那就是一堆邏輯門的輸出如果被優(yōu)化掉那網(wǎng)表里甚至找不到這個(gè)名字??偨Y(jié)一張表幫你把 仿真語言類型 和 綜合硬件結(jié)果 這兩套思維徹底分開聲明類型賦值方式綜合結(jié)果通常情況wireassign 連續(xù)賦值組合邏輯連線與門、或門、多路器等regalways 時(shí)序塊賦值D 觸發(fā)器、寄存器堆、計(jì)數(shù)器regalways 組合塊完整賦值純組合邏輯無存儲(chǔ)單元regalways 組合塊不完整賦值鎖存器latch需盡量避免reginitial 塊賦值不可綜合僅仿真使用這張表建議直接背下來。面試?yán)镆悄馨堰@個(gè)完整講清楚基本上就把一半的人甩在后面了。4.3 一道經(jīng)典面試題為什么同樣的 always有時(shí)是觸發(fā)器有時(shí)是鎖存器說到鎖存器這是組合邏輯 always 建模最經(jīng)典的坑也是面試官最愛用來篩選候選人的點(diǎn)。reg q; always (*) begin if (enable) q d; end這個(gè)代碼里q 聲明成 regalways 是電平敏感的。但問題是當(dāng) enable 為 0 的時(shí)候q 沒有被賦值。從仿真語義說reg 會(huì)保持原有值從硬件映射說要在 enable 為 0 時(shí)把值記住就必須引入一個(gè)電平敏感的存儲(chǔ)單元——這就是鎖存器。很多數(shù)字設(shè)計(jì)規(guī)范尤其是 ASIC 風(fēng)格是強(qiáng)烈不建議在組合邏輯中不必要地產(chǎn)生鎖存器的因?yàn)殒i存器對(duì)時(shí)序收斂和 DFT可測性設(shè)計(jì)都不友好。正確做法是給齊所有分支reg q; always (*) begin if (enable) q d; else q 0; // 或者 q q; 但要明白區(qū)別 end加上 else 分支后q 在每個(gè)輸入組合下都有確定的賦值路徑綜合工具就能放心地把它變成多路選擇器了。同理case 語句里的 default 分支也是絕對(duì)不能少的。5. 實(shí)戰(zhàn)案例在一個(gè) UART 發(fā)送模塊里wire 和 reg 怎么各司其職前面講完理論現(xiàn)在用一個(gè)完整的工程實(shí)例串一遍。就拿大家非常熟悉的 UART 發(fā)送模塊來當(dāng)例子這種模塊在握手、協(xié)議解析、多字節(jié)收發(fā)項(xiàng)目里幾乎都會(huì)用到。5.1 模塊端口劃分輸入輸出到底用 wire 還是 reg寫任何模塊第一步就是定義端口。這里有個(gè)實(shí)用經(jīng)驗(yàn)**input 端口一律是 wireoutput 端口默認(rèn)也是 wire只有當(dāng)你確定要在 always 塊里給它賦值時(shí)才把它額外聲明成 output reg。**在 Verilog-2001 時(shí)端口類型和數(shù)據(jù)類型是可以寫在一行的。module uart_tx ( input wire clk, // 系統(tǒng)時(shí)鐘 input wire rst_n, // 低電平復(fù)位 input wire tx_start, // 發(fā)送使能 input wire [7:0] tx_data, // 待發(fā)送數(shù)據(jù) output reg txd, // 串行輸出需要在 always 中賦值 output wire tx_busy // 忙標(biāo)志用 assign 給出 );txd 是串行輸出信號(hào)根據(jù)發(fā)送狀態(tài)機(jī)在每個(gè)時(shí)鐘沿移位更新所以必須是 output reg。tx_busy 是忙標(biāo)志它只是把內(nèi)部一個(gè)狀態(tài)寄存器的值或組合邏輯結(jié)果簡單輸出用 assign 就能搞定因此是 output wire。其實(shí)這里也可以讓 tx_busy 直接等于內(nèi)部狀態(tài)assign tx_busy (state ! IDLE);這句話的含義是只要當(dāng)前不在 IDLE 狀態(tài)就對(duì)外拉高忙信號(hào)。它是典型的數(shù)據(jù)流組合邏輯用 wire 非常合適。5.2 內(nèi)部信號(hào)規(guī)劃哪些該 wire、哪些該 reg進(jìn)入模塊內(nèi)部規(guī)劃起來就更有章法了。我的做法是先畫信號(hào)列表分成“狀態(tài)類信號(hào)”和“連接類信號(hào)”兩大陣營狀態(tài)類信號(hào)必須用 reg因?yàn)樗鼈冃枰跁r(shí)鐘沿被一次次更新state當(dāng)前發(fā)送狀態(tài)三段式狀態(tài)機(jī)的第一段必用非阻塞賦值。clk_div_cnt波特率分頻計(jì)數(shù)器。bit_cnt當(dāng)前發(fā)送的第幾個(gè) bit。txd_reg實(shí)際串行發(fā)送的移位寄存器。連接類信號(hào)用 wire它們是組合邏輯的中間產(chǎn)物tx_start_pulsetx_start 的上升沿脈沖。tick波特率時(shí)鐘脈沖。byte_done一字節(jié)發(fā)送完成的標(biāo)志。舉個(gè)例子波特率時(shí)鐘脈沖 tick 是這樣產(chǎn)生的wire tick (clk_div_cnt DIV_CNT_MAX);tick 是指定分頻計(jì)數(shù)達(dá)到最大值時(shí)的譯碼結(jié)果每一時(shí)刻都被連續(xù)驅(qū)動(dòng)決定當(dāng)然是 wire。接著狀態(tài)機(jī)可以用 tick 來驅(qū)動(dòng)數(shù)據(jù)移位這就在多個(gè) always 塊之間建立了清晰的信號(hào)通路。5.3 用 wire 把子模塊拼起來FIFO 與狀態(tài)機(jī)的連接如果這個(gè) UART 發(fā)送模塊再往上做成一個(gè)多字節(jié)收發(fā)系統(tǒng)往往前面還要接一個(gè)發(fā)送 FIFO。FIFO 的讀數(shù)據(jù)端口、空標(biāo)志、讀請求信號(hào)在頂層就是用 wire 互連的。wire [7:0] fifo_dout; wire fifo_empty; wire fifo_rd_en; uart_fifo u_fifo ( .clk (clk), .rst_n (rst_n), .wr_en (byte_recv_done), .din (rx_byte), .rd_en (fifo_rd_en), .dout (fifo_dout), .empty (fifo_empty) ); uart_tx u_uart_tx ( .clk (clk), .rst_n (rst_n), .tx_start (~fifo_empty), .tx_data (fifo_dout), .txd (txd) );這里幾乎全是 wire。原因很直接在頂層這個(gè)抽象層次你看到的不是“某段邏輯的賦值行為”而是“各個(gè)黑盒模塊之間的信號(hào)連線”。頂層的職責(zé)是連好線而不是描述內(nèi)部邏輯所以 wire 就是頂層的主旋律。5.4 綜合后的實(shí)際硬件結(jié)果把上述模塊做完綜合你大概率會(huì)看到txd 對(duì)應(yīng)的區(qū)域推斷出一組 D 觸發(fā)器移位寄存器和狀態(tài)寄存器。tx_busy、tick、byte_done 這些 wire 在網(wǎng)表里對(duì)應(yīng)的是組合邏輯門比較器、與門。FIFO 內(nèi)部的 RAM 和讀寫地址計(jì)數(shù)器分別映射成存儲(chǔ)陣列和寄存器堆。硬件不會(huì)管你代碼里寫的是 wire 還是 reg它只關(guān)心“你有沒有在時(shí)鐘沿保存狀態(tài)”和“你的組合邏輯是否完備”。所以我的建議很明確**寫代碼的時(shí)候把心思放在賦值場景上而不是數(shù)據(jù)類型上。**assign 就用 wirealways 就用 reg這樣寫出來的 RTL綜合工具最省心后端也不會(huì)半夜給你打電話。6. 常見問題與排查技巧實(shí)錄最后分享一些我在實(shí)際工程中反復(fù)遇到過的報(bào)錯(cuò)和排查經(jīng)驗(yàn)。這些問題基本是初學(xué)者的高頻雷區(qū)一個(gè)個(gè)過一遍。6.1 典型報(bào)錯(cuò)reg 被連續(xù)賦值了錯(cuò)誤信息類似Error (10170): Verilog HDL syntax error ... object xx is not a wire或者更常見的是reg cannot be driven by continuous assignment這個(gè)場景一般是你聲明的信號(hào)是 reg但又不小心寫了assign xx ...。修復(fù)方案很簡單把自己問一遍這個(gè)信號(hào)是組合邏輯的多路選擇結(jié)果還是時(shí)序狀態(tài)如果是前者看看能不能用 wire 表達(dá)如果實(shí)在要用 always 寫就把賦值語句刪掉、搬到 always 塊里。6.2 典型報(bào)錯(cuò)wire 被過程賦值了錯(cuò)誤信息類似Error (10028): Cant resolve xx to a reg or integer這個(gè)場景最常見的發(fā)生在寫 testbench 時(shí)wire clk_tb; initial clk_tb 0; // 報(bào)錯(cuò)因?yàn)?clk_tb 是 wire不能在 initial 里被賦值。改成 reg clk_tb; 就對(duì)了?;蛘吣阏娴南胗?wire就得用 assign 或 force 來驅(qū)動(dòng)。測試激勵(lì)這塊的解決思路是激勵(lì)信號(hào)用 reg因?yàn)樗窃谀硞€(gè)時(shí)間點(diǎn)改變的變量被測模塊輸出的檢測信號(hào)用 wire因?yàn)槟阒恍枰O(jiān)控它的變化。6.3 組合邏輯的鎖存器警告怎么處理綜合工具Quartus、Vivado、Design Compiler一般都會(huì)報(bào) latch 警告比如 Vivado 里是[Synth 8-327] inferring latch for variable xx處理思路按優(yōu)先級(jí)排序檢查是否每個(gè)分支都給目標(biāo)變量賦值了。if 要有 elsecase 要有 default。檢查變量是不是在多個(gè) always 塊里被賦值。同一個(gè) reg 不能被兩個(gè) always 驅(qū)動(dòng)這是語法錯(cuò)誤。檢查是不是把組合邏輯塊誤寫成了電平敏感且分支不全的結(jié)構(gòu)。如果確實(shí)需要鎖存器比如總線保持之類也要寫成顯式的 latch 風(fēng)格并在注釋里說明理由別讓工具“偷偷”推斷。再補(bǔ)充個(gè)我自己常用的檢查技巧寫組合邏輯 always 時(shí)上電仿真把所有使能信號(hào)分別跑一遍 0 和 1觀察輸出是否有異常保持。如果某個(gè)輸入組合下輸出一直不變化十有八九就是分支缺了。6.4 wire 和 reg 實(shí)戰(zhàn)避坑清單這幾條是我自己在多輪項(xiàng)目里總結(jié)出來的“肌肉記憶”每一條背后都有真實(shí)踩坑經(jīng)歷分享給大家頂層連接信號(hào)全部用 wire。頂層不是寫邏輯的地方它是畫圖紙的地方。讓子模塊自己處理 reg 的內(nèi)部邏輯頂層只負(fù)責(zé)把線連對(duì)。output 默認(rèn)為 wire要往 always 里塞才聲明成 output reg。反過來input 永遠(yuǎn)不可能聲明成 reg否則編譯直接罷工。testbench 里給 DUT 輸入的激勵(lì)信號(hào)用 reg檢測 DUT 輸出的信號(hào)用 wire。這個(gè)規(guī)則百試不爽。不要出現(xiàn) “assign always 同時(shí)驅(qū)動(dòng)一個(gè)信號(hào)” 的代碼。無論是仿真還是綜合多驅(qū)動(dòng)都是災(zāi)難。組合邏輯 always 里一定要寫 else 和 default。哪怕你覺得條件全覆蓋了也要寫。一方面防工具推斷 latch另一方面也是給別人讀代碼時(shí)留個(gè)明確的邏輯閉環(huán)。如果發(fā)現(xiàn)仿真波形里某個(gè) reg 輸出是 x優(yōu)先查復(fù)位邏輯和初始化賦值。reg 在仿真里默認(rèn)值是 x這跟 wire 的 z 不一樣很多新手第一次跑仿真看到滿屏 x 會(huì)慌其實(shí)這只是仿真模型的初始值。不要把 reg 和寄存器劃等號(hào)。我在帶人評(píng)審代碼的時(shí)候最怕聽到有人介紹說“這個(gè)信號(hào)是 reg所以它是寄存器”。正確說法應(yīng)該是“這個(gè)信號(hào)在 always 時(shí)序塊里賦值所以綜合后是寄存器”。再補(bǔ)一句關(guān)于綜合和仿真不一致的問題。有些新手會(huì)問為什么我仿真的時(shí)候 reg 輸出能保持下載到板子上就不對(duì)了這通常不是 reg 本身的問題而是代碼里復(fù)用組合邏輯 / 時(shí)序邏輯時(shí)不小心把應(yīng)該搭的時(shí)序關(guān)系寫錯(cuò)了或者復(fù)位方式、時(shí)鐘域跨域出了問題。建議排查的時(shí)候先用在線邏輯分析儀抓內(nèi)部寄存器的信號(hào)看狀態(tài)機(jī)是否按要求走再看對(duì)應(yīng) wire 的組合邏輯輸出是否符合預(yù)期。把兩者分開看問題就縮小一半了。聊到這里關(guān)于 wire 和 reg 的內(nèi)容基本就完整了。說句心里話這個(gè)知識(shí)點(diǎn)本身并不難難的是很多人一開始就陷入“wire 就是線、reg 就是寄存器”這種簡化模型里后面越學(xué)越別扭。我個(gè)人的建議是**每次寫代碼前先默念一遍assign 對(duì)應(yīng) wirealways 對(duì)應(yīng) reg然后放手去寫。**寫多了形成肌肉記憶你自然就理解為什么這種語法規(guī)則是合理的了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩大香蕉| 国产日韩在线播放| 粉嫩少妇自慰在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 亚洲不卡一| 色色色综合网| 岛国片在线观看视频亚洲| 韩国一级做a久久久久| 麻豆 亚洲 97| 啊啊啊啊啊在线观看网址 | 综合色99| 色官网色综合| 蜜乳中文字幕a在线| 欧美碰碰综合色| 欧美日韩一干二干| 婷婷成人久久久精品| 911粉嫩人妻| 人妻一区二区三区四区视频| 女人综合网| 日韩精品国模| 亚洲综合图色在线| 18一区二区三区| 超碰人人干| 超碰无码加勒比| 一区二区三| 96精品久久久| 加勒比人妻综合| 精品福利视频| 国产夫妻一区二区| 色噜噜人妻丝袜AV资源| 欧美日韩一干二干| 欧美永久激情一区二区| 久插不卡| 淫骚熟女一区二区三区| 蜜臀亚洲综合一二三四区| 亚洲色图久久成人| 欧美性特| 国产av青草| 国产少妇肉丝在线观看| 亚洲情色电影网| 五月丁香婷婷色| 国产无码一二三区| 91色久| 国产高清精品一区二区三区毛片| 亚洲日韩av专区无码| aV中文麻| 天天综合网91| 内射老妇BBWX0C0CK| 欧美天天弄| 亚洲a色| 九九这里只有精品| 日韩视频中文字幕| 日韩精品人妻一| 在线无码网站| 影音先锋中文字幕日本好一区二区| 综合欧美激情网| 一区二区三区四区免费视频| 久久五月丁香| 色诱avtt| 欧美特黄视频网站| 色波多| 日韩成人性日韩成人性爱视频在线免费观看| 久久老熟女| 69精品| 亚洲国产精品无码AV久久| 久久久久少妇| 91人人臊| 10000部十八禁看电影| 欧美国产视频| 91少妇高潮| 精品传媒在线一区| 99这里只有精品国产| 中文字幕奈奈美被公侵犯| 亚洲色图欧美视频| 91人妻人人妻| 欧州一区二区三区四区| 九九精品99| 婷婷亚洲天堂| 9 7超碰在线免费观看| 日韩人妻精品中文字幕| 玖玖综合网| 可以在线观看的黄色网址| 色婷亚洲五月在线观看| 9久久美女首页| 国产精品久久久久久夜夜夜夜| 亚洲女人毛茸茸91| 性爱综合一区二区| 亚洲天堂热| 欧美色图私拍91| 欧美色图自拍| 脫衣舞一区二区三区| 国产吞精a级片激情电影| 婷婷色色网| 91网18| 97这里有精品| 日韩探花精品在线视频| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 久久偷偷色综合蜜桃| 国产97亚洲| 国产区91柔拿会所技师| 国模不卡一本二本三电影| 97鸡把在线视频| 美女写真| 人妻少妇久久| 午夜精品视频777| 久久久一区二区| 激情五月综合开心五月| 久久大香蕉手机高清| 新视频sss国产| 高清国产精品福利网站| 超碰79人人乐| 成人久久久| 亚洲精品日韩国产欧美| 日本一级不卡一二区| 国产精品久久久久无码Av网曝门| 奸色色 男人天堂 天天射| 久久激情四射婷婷丁香五月天| 久久黄色性爱视频| 日日碰视频网| 国模精品娜娜一二三区| 亚洲欧美色图片| 免费观看欧美日韩操逼视频| 精品国产乱码久久久| av片在线观看免费播放| 夜夜嗨一区| 家庭乱伦网站国产| 亚洲天在线| 五月天玖玖资源站| 美女诱惑1区2区| 91撸色网 玖玖网 欧美| 一区二区无码视频| 久操热| 伊人少妇久久久| 人妻啪| 97干色天堂| 性无码专区2020| 欧美视频在线第3页| 好爽视频在线观看| 91 刺激在线| 天天视频网站黄| 五月天偷拍| 蜜臀久久久99久久久久| oumeisetupian| 麻豆久久精品亚洲精品88| 欧美日韩m| 色婷婷六月丁香七月婷婷| 亚洲欧洲精品成人| 色情五月丁香| 91色人妻| 伊人性在线视频| 日韩啪啪啪啪啪| 影音先锋日本乱伦| 久久偷偷色综合蜜桃| 中文字幕123| 亚洲色性| 欧美 亚洲 91| 精品久久久久9999| www.色操逼| 自拍六区| 中国小夫妻勾搭露脸淫荡对白| 国产在线激情视频| 俞拍久久国应视频| 免费99精品国产自在在线| 久久久免费一级黄片| 欧美性色欧美| 欧美色一二三| 久久国产99精品72福利| 欧美特大黄一级片片免费| 久久精品无码一区二区三区| 91真人天天在线| 影音先锋国产精品| 福利操逼| 超碰在线一区二区| 国产免费一区| 久久鲁夜| 日本有码久久| 欧美日韩国产色图在线| 欧美gv在线观看| 9997se| 日韩精彩免费| 丁香五月影院| 性做久久久久久久| 伊人久久综合影院| 日韩有码 一区二区三区| 操91| 婷婷精品国产一区二区三区日韩| 麻豆亚洲Av成人无码一区精品| 天天操天天射天天日| 97在线视频网站| 性爱网站一区二区| 校园春色 亚洲| 欧美精品双插| 五月婷婷综合网| 欧美日韩国产色图在线| 太久视频| 久久夜黄色无码A级大片| 精品亚洲| 亚洲97在线观看| 一本色道久久综合亚洲二区三区| 91国产丝袜美女| 1204av韩国| 天天看片天天爽| 色五月大香蕉| 大稥蕉免费视频这里只有精品| 色色色色电影网| 国产不卡免费在线视频| 夜夜影视四色| 在线v中文字幕一区二区三区| 永久免费av无码网站国产app| 久久精品超碰| 精精品人妻一区二区三区| 97久久国产精品| 久久国99999| 狠狠夜色午夜久久综合在线| 国产白丝在线| 久久久精品视频欧州站| 日本熟妇人妻一区二区三区| 九九九精品美女| 久久9精品网站| 国产情色第一第二页在线观看| 大香蕉伊人在线成人AV在线观看| 影音综合网| 欧美日韩国第一区| 亚洲一区二区 麻豆传媒| 久操在97| 奶水 人妻 哺乳 在线| 亚洲欧美91| 91老女人| 亚洲成人久久一区二区| **一级毛片国产| 成人婷婷丁香| 亚洲网自拍| 久干网| 亚州国产成人精品女人久久| 9I1性色影院| 91人人| 国内毛片欧美香蕉精品| 免费一级特黄特色大片在线观看看| 国产日韩精品人妻久久久久色欲网站 | 欧美色蜜桃97| 黑人美精品 A片| 爱我干综合| 欧插网站| 女人天堂网| 欧美综合亚洲综合| 欧美日韩日产免费网站看| HEYZO高无码国产精品227| 五月激情在线| 超碰在线第一页| 欧美黑人与女人91| 郑州宾馆老熟女露脸啪啪| 能看的AV| 久久精品| 狠狠狠狠狠干| 91老熟女91老女人| 男人女人18禁片免费看网站| 久久久久9| 人妻久热在线| 国产美女高潮视频| 免费人成在线观看网站品爱网| 91麻豆va国产精品| 嗯嗯啊好大| 深夜国产福利| a级理论午夜日本| 亚洲AV乱码专区国产噜噜亚洲| 色香91| 久久性爱视频99| 99热精品在线观看| 天天天做天天天爱天天天爽| 亚洲 欧美 制服 另类 自拍| 日本 成 人 小说 电影 一区二区| 97干天天| 翔田千里A片一区二区| 成视频在线观看免费看| 亚洲精品一卡二卡三卡福利视频网站| 亚洲天天操| 久久老子无码午夜伦不卡| 亚洲熟女乱熟乱熟妇综合网二区| A 天堂| 婷婷性爱| 99草精| 激情抓乳插进去啪啪啪日韩| 67194无码不卡| 91丝袜人妻| 在线性黄高清免费视频| 久久一本大香蕉| 18禁无码永久免费无限制| 久久久久久大| 午夜视频久久久久一区| 97一区二区蜜臀| 丁香婷婷五月| 欧美狠狠弄| 国产精品人妻免费精品| 宅男午夜在线视频| 国产美女销魂在线观看不卡| 60秒试看最爽10分钟网站| 69一区二区三区| 涩五月婷婷| 九热久| 九九九九久久久| 久久成人东京热人妻| 色情乱伦AV| 操逼无毒无码免费视频| www色日本| 97视频免费在线| 久久综合九九| 精品少妇999| 国产成人AV麻豆| 国产 亚洲 丝袜 制服| 97久久国产亚洲精品超碰热| 亚洲欧美中文日韩视频中国语| 久久久78| 国产精品。| 少妇3P性爱自拍| 98超碰日本| 去干网最新版| AAAA级日本片免费视频| 亚洲情色图片区| 天天躁日日躁xxxxx| 大香蕉伊然在亚洲91| 乱伦3P视频| 亚洲视频精选| 东北老女人的激情视频| 开心激情婷婷| 亚洲精品性爱片| 国产精品在线一区二区| 欧美性猛交美女自慰91| 成人无码在线超碰网| 久久r精品| 97国产色综合| 国产69精品久久久久99尤物| 综合第一页| 久久av网| 欧美疯狂做爰xxxx| 国产黄色影片在线观看| 欧美情色亚洲| 欧美国产有色电影| 中文字幕五区| 色久桃花影院在线观看| 屁股久久久久久久久久| 看看日B真人视频| 久久一区,青青青青草视频在线播放| 亚洲伊人a线观看视频| 日日骚一区二区三区| 欧亚第一综合网| 婷婷视频网| 亚洲天天做日日做天天谢日日 | 99久国产精品午夜性色福利| 天天夜夜rb| 色九九九九| 国语人妻精彩刺激| 大香蕉乱伦视频网| 成人三一级一片aaa| 国产91精品在线免费| 国产精品禁久久久精品| 青青欧洲黑| 青青草自拍视频在线播放| 十八禁啪啦拍视频无遮挡| 亚洲密乳AV| 亚洲97在线| 婷婷探花久久精品一区| 九九热精彩视频| 中文字幕视频一区视频二区| 六月丁香五月婷婷| 九热视频| 99热这里只有精品地址 | 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 日本大香蕉综合网| 欧美黑人与女人91| 欧亚三区动漫| 狠狠97| 大干人妻| 999九九九九国产动| 绑缚麻绳人妻寝取完整版| 伊人97超碰| 激情六月天| 欧美视频在线视频免费va| 人人操人人干网页| 岛国AB视频| 超97在线精品视频| 国产精品呦一区二区三区| 99久久久无码精品国产人| 狠狠色伊人亚洲综合网站色 | 激情图片伦理国产一区二区日韩| 吻戏激情性巴克| 丁香五月婷婷基地| 日本美女性生活久久久久久久| 97色碰| 激情第四色| 婷婷五月丁香五月| 中文字幕一区二区三区蜜臀| 日韩超碰精品综合| SUV一区二区在线看| 中文字幕人乱码中文字的预防方法 | 九九九九国产| 日韩中文字幕视频| 久久久久国产精品喷潮免费观看臀| 老外又粗又长一晚做五次| 91东京热男人的天堂| 91东京热男人的天堂| 亚洲精品三区在线观看| 色综合久| 天美传媒国产原创中文字幕亚洲欧美另类 | 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 一区,二区,三区网站| 天天日日本| 好爽免费视频,| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 人人贴人人摸| 日本精品不卡一二三区| 色综合美国| 伊人一区二区三区| 色原狠狠天天天| 啪啪综合网| 搞中出久久| 无码国产精品午夜不卡(| 狠狠操夜夜操蜜桃视频三区| 超碰色中文| 久久精品高清无码一区| 欧美精品一二三| 色婷婷五月天| 国产视频大全| 欧美亚洲高清| 亚洲精品乱码久久久久久蜜桃麻豆| 99re视频在线观看这里只有精品| 操B久久| 人妻喷水| 久久精品 六十路 熟女 欧美| av无码精品久久久久| 狠狠欧美| 国产精品白丝AV| 日韩性爱小视频| 91黑人无码激情在线| 久久久久久夜夜夜夜夜| 精品欧美乱码久| 一线黄色免费性爱片| 99视频只有精品| 久久久久网站-538在线视频-欧美永久乱码| 玖玖大干人妻| 九九干| 按摩中文字幕| 亚洲综合在线第一页| 国产成人手机视频激情| 一本正道久久熟女| 三四中文字幕| 柠檬AV导航| 偷拍在线观看视频| 欧美精品久久久久久久丰满| 按摩中文字幕| 老熟女综合网 | 亚洲一二三精品久久网| 9I1性色影院| www.91理论| 欧美日韩亚洲天堂网| 亚洲成人贴图| 亚洲欧美精品一区天堂久久 | 精品国产乱码久久久久久蜜臀| 插日本熟女视频| 99操| 少妇啪啪自拍| 97超碰资源网| 国产亚洲精品农村妇女| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 超碰99热中文字幕| 久艾草在线精品视频在线观看| 熟妇熟女视频一区二区三区| 中国91AV| 中文字幕精品一区二区精品| 美女诱惑久久| 青青草自拍视频在线播放| 国产美女高潮视频| 色情综合网| 国产91 丝袜在线播放| av九九| 色香天天| 日韩99神马视频播放片在线播放| 97色97干| 亚洲丝袜色图| 尤物黄色在线观看网站| 色综合20p| 家庭乱伦网站国产| 超碰97国产欧美| 亚洲五月丁香花狠狠干一区二区三区| 九九热av| 精爱久久| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 九久久精品| 久久男女激情视频网站| 本道综合精品| 狠插 制服 自拍| 久久riav中文精品| 日韩AV噜噜噜一区二区三区四区| 青草视频在线看看看看看看看看看| 日本综合色图| 国产精品高潮久久AV| 99国产精品视频尤物| 成人在线午夜视频一区| 五月丁香六月婷综合成人综合 | 九九无码久久精品视频| 国产视频一区二区三区在线免费观看| 99精品久久久久久| 99精品在线观看| 老熟妇乱轮| 亚洲日韩少妇一道本视频| 黄色高清无码无码破解免费暗网| 亚洲在线a| 啊啊啊好舒服好爽啊啊啊视频| 在线综合色| 亚洲丝袜诱惑| 亚洲男人天堂2016| 发朗少妇买婬全视频中文| 色视频蜜乳| 热热色国产一二区AV| 人人爽天天爽| 户外裸露刺激视频第一区| 九九亚洲| 欧美综合色| 亚洲天堂区| 国产A v无码专区| 99热在线播放| 超碰97人人乐| 亚州 综合 色图| 七久久久| 精品亚洲国产成人AV制服丝袜| 国产操逼网站亚洲一级黄色| 少妇熟女视频一区二区三区| 东北女人| 福利色色| 亚洲天堂自拍| 亚州九九九精品视频| 免费观看欧美日韩操逼视频| 强奸乱伦亚洲第一页| 国产精品久久久久久久久久久久久久吹| n1038 一二三区| 五月天激情婷婷| 无码av永久免费专区网站| 久久只有精品| 国产熟女一区二区| 麻豆一区二区三区在线看| 东京热av男人的天堂| 日韩性色b| 久久99亚洲精品久久99果| 精品久久久久av影院| 亚洲欧美国产中文视频| 外站AV在线| 天天操妹子| 成人开心网在线视频| 亚州综合AⅤ| 中文有码第五页| 天天综合,91综合永久| 天天天天天干夜夜夜夜夜操| 久久久麻豆精品| 国产精品自拍xxxx| 色色色色日本| 夜夜影视四色| 精品一区二区人妖| 人人看人人摸人人色| 乱伦图av| 女同性恋一区二区三区精品视频| 天美传媒一二三区永久网站| 亚洲成人碰碰| 97WW精品| 天色综合网| 国产盗摄美女如厕大神作品在线观看 | 屌逼传媒| 亚洲情色五月天 | 最新一二三区视频| 91久久午夜无码鲁丝片久久人妻| 超碰 另类 欧美| 大香蕉在线免| 91精品久久久久久久久久| 岛国不卡超碰护士AV在线播放| 精品中文一区二区| 97操B| 中欧人妻丝袜中文字幕| 天天影视色香欲综合网小说| 亚洲97成人在线观看| 天天视频网站黄| 久草免费福利在线播放| 久久露脸国产老熟女| 色婷婷五月天| 97超碰天天爱天天爱| 影音先锋一区二区在线资源| 男人天堂久久精品不卡| 人人妻人人爽一区二区三区| A 天堂| 国产成人手机视频激情| 五月天综合在线| 东京太热久久久| 日夜干射色啊| 色悠悠伊人网五月天| 亚洲无码电影久久久| 少妇人妻好深太紧了vr91| 91黑人无码激情在线| 狼人综合婷婷激情四射 | 日日干日日摸| 精品日韩人妻视频| 免费看久久久性性| 一二三啪啪专区| 亚洲人久久久网| 精品欧美乱码久| 久操网无码在线| 天天插天天干| 亚州日韩97| 加勒比综合网| av片在线观看免费播放| 午夜精品久久久99| 欧美日韩亚洲天堂| 乱伦日本色图AⅤ| 精品国产自在在线99| 91处女在线视频| AVE乱伦| 99色在线视频| 啊啊啊啊啊啊啊网址在线观看| 亚洲天堂男人网| 入口操逼网站| 高潮综合网| 国产精品女aA片爽爽视频| 国产激情在线| 成人久久久精品| 国产精品麻豆成人av| 丁香五月电影| 国产亚热在线久久| 欧亚性爱在线视频| 久久25| 激情欧美97| 亚洲国产成人高清在线| 天堂亚洲精品久久老牛| heyZO天然素人无码AⅤ专区| 99热亚洲天堂| 91 丝袜在线播放| 九九黄色网| 在线色导航| 青青草吊丝| 男女性无套 免费九一| 婷婷导航| 日韩99999| 成人网址在线观看| 亚洲精品97久久中文字幕| 性开放中文AV高清无码免费看| 草伊人高潮喷水超碰| 操逼网站网站| 欧美少妇第一页| 亚洲影院成人| 二区熟妇韩日| 九九九精品成人免费视频小说| 91精品国产综合久久久蜜臀| 五月亭亭六月丁香| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 美女上床网站| 亚洲成人久久美女| 欧美 色 亚洲| 激情四射婷婷四五月天| 日韩兔费看黄片| 99r九九| 亚洲国产精品成人综合| 在线视频一区二区传媒| 91精品微拍福利| 亚洲黄色网址| 黄色高清无码无码破解免费暗网| 亚洲中文字幕久久无码精品| 亚洲中文字幕网| 操熟女91| 国产夫妻一区二区| 日本免费一级AAA大片器 | 性爱网站一区二区| 欧美亚洲涩涩| 性色av婷婷久久一区二区点复制| 91情色在线| 91在线美女| 天天插夜夜操| 91中出在线| 久久欧美按摩999| 日韩极品无码B| 91国产丝袜美女| 天天干,天天日| 人人操 欧美| 精品9999| 热天堂一区二区| 国产人伦a片信息免费片| 黄色交缠性感爆操91国产精品免费一区二区三区| 久久曰曰| 爱妃国产亚洲视频中文字幕| 91视频综合在线| 丝袜美腿诱惑亚洲欧美视频在线观看| 日韩免费在线观看不卡| 亚州九九九精品视频| 九九综合| 久草免费福利在线播放| 搡老女人老91二区| 麻豆精品三区视频| 亚洲图片 91| AV网站高清无码在线观看| 中国少妇啪啪视频| 日本东京热大香蕉a片| 久久人人看| 先锋激情∨在线视频播放| 97久久超碰亚洲| 熟女天天干| 九九九九九九九精品视频| 不卡av在线中文字幕| 成人国产二区三区在线,男女精品。| 国产污视频麻豆传媒一区二区| 妺妺跟我一起洗澡没忍住| 视频一区二区免费在线| 桑老女人九区| 最新av在线| 国产精品老熟女一区二区| 人妻在线视频| 1769国内精品视频| 国产一区在线播放| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 久久无码电影| 成人26uuu| 蜜臀久久99精品久久久久| 日韩色图 一区二区| 亚洲男人的天堂AV| 天天色悠悠激情| 六月激情婷婷| 91精品人妻电影| 欧美 日韩 亚洲 春色| 午夜小电影在线插入淫高潮 | 女优免费一区二区永久| 操逼网免费无码视频| 18禁免费视频| 国产探花日韩援交| 亚洲日韩精品久久久久一区壹牛| 欧美色图 色综合图| 啊啊在线| 成人草草视频| 高清孕妇孕交 交孕妇| 国产精品丝袜久久亚洲不卡| 久插综合| a人欧美综合天堂麻豆| 久久久啊啊| 超碰超碰95| 98色网| 日韩AV一区二区三区四四| 大香蕉久| 99久热| 男人天堂一区二区| 99免费视频| 97色伦欧美| 亚洲,欧美,春色,另类| 五月丁香啪啪啪| 亚洲 日韩 欧美 国产综合体| 伊人AAA| 蜜臀久久99精品久久久久久久久| 精品一区二区三区蜜桃臀赵总 | 91网18| 欧美大战久久久伊人| 九区国产| 97综合久第一页| 99热线麻豆| 麻豆91熟妇人妻中文字幕茄子| 91岛国动作片| 亚洲色婷婷久久91| 2017人人操,人人摸| 亚一综合久久久久久久久久| 日韩av一级黄片| 激情五月天色色网| 91麻豆天美国产欧美| 搡老女人老妇女老妇老熟女怎么读| 麻豆久久久久久久久丝袜| 精品176精品2| 欧美人妻熟女在线| 伊人91| 欧美成人A√在线一区二区| 99在线免费公开视频| 首页中文字幕中文字幕免费| 婷婷六月色开| 欧美18禁91| 免看60秒涩涩视频| 91性片| 中国一级操逼视频| 久久婷综合| 丝袜综合色图| 老司机福利社视频在线观看| 91性色| 一区二区三区探花在线观看| 另类视频在线| 粉嫩小泬久久久一区二区| 欧美偷拍区| 色丁香久久| 欧美激情超碰777| 妇女乱色二区| 人妻精品免费一二三区| 中文字幕av乱伦| 日韩紧密久久| 亚洲国产97在线精品一区| A级在线视频| 伊人色综合网电影| 精久久久91| 97超级久久| 欧美日韩国产黄色片| 99热精品在线观看| 蜜臀av网址| 日韩三级在线观看网站| 九九黄色视频在线观看| 久草婷婷| 97欧美综合| 天天日天天干天天整| 亚洲蜜臀懂色| 欧美色图亚洲色| 欧美网站免费| 欧美亚洲高清不卡| 国产精品不卡av免费在线观看| 亚洲制服欧美另类内射| 亚洲精品欧美专业| 久久 精品| 五月婷婷久久综合| 亚拍在线| 自怕偷自怕亚洲精品| 2020中文字幕| 国产91丝袜 在线播放| 人人操肉肉| 麻豆天美制片厂网站视频| 无码78| 欧美激情五月天| 精品无人区麻豆乱码1区2区图片| 91午夜无码| 在线黄色污污网站| 波多野结衣AV无码一区| caopeng97| 国产综合久久久麻桃个| 日韩精品一区二区三区色欲| 亚洲天堂久| 91在线精品| 91欧美巨乳| 久久一级无码精品毛片6| 极品久久久久久久久久久久久久| 国产偷人伦激情在线观看| 91亚·色| 欧美激情综合| 18精品一区| 亚洲国产美女久久久久 | 欧美人与动性人交a| 久久久久精| 精品九九九九| 肥臀熟女福利视频一区二区| 97久久网| 人妻在线中出视频| 久久午夜鲁丝片| 2000亚洲男人天堂| 欧美一级久久久久久久大片动画| 久久久久久久久久久999| 97人人夜夜精品视频| 五十路二区在线| 无码av永久免费专区网站| 欧美日韩人妻少妇 一区二区三区| 黄色AAAAA欧美| 亚洲清纯唯美| AAA久久| 热99这里有精品综合久久| 偷窥自拍亚洲色图| 国模私拍一区二区三区神乳| 青草影院内射高潮| 极品极品色影院| 国产久久久久久| 亚洲三级网址久久最新| 综合久久久久久久综合网| 97伦乱| 五月丁香六月婷| 国产日韩精品suv| 欧美 熟女 日韩| 91精品国产高清久久久久久,亚洲成人 | 激情婷婷综合久久| 使劲用力艹少妇视频一区二区| 熟女人妇一区二区三区| 亚洲性高潮| 99抽插| 蜜臀AV网站| 男人的天堂 在线一区| 蜜桃久久久久久久久久久久 | 91美女小视频| 四虎视频在线观看| www.av在线观看| 久久夜夜| 97伦乱| 中文字幕艹艹| 欧洲一级性爱视频在线观看| 男人久久天堂| 日韩 欧美 国产 麻豆| 亚洲人人操| 亚洲免费成人在线高清无码视频| 97久久超碰亚洲| 91色图片| 色五月亚洲| 美国一区二区三区视频| 97在线免费看视频| 色妇91| 黑丝少妇麻豆| 久久五月天婷婷| 亚洲第一狼人丝袜美女另类| 97超碰站| 日1区2区3区2020| 日夜干射色啊| Av色五月| 国产精品色色| 久操视频资源站公开| 1769一区| 九九久久玖玖| 97在线观看免费| 最新精品久久蜜桃| 日韩亚洲美州欧洲综三区一品在线| 日韩成人性爱AV| 人人操人人干xxx| 色吊丝 日日骚 清纯唯美| 另类视频在线| 欲色影视综合吧| 96AV精品| 亚洲五月丁香花狠狠干一区二区三区| 欧美日韩精品一区二区三区高清| 黑人免费福利视频| 欧洲综合色| 99这里只有精品| 欧美 亚洲 综合 制服 另类| 97人人爱人人做人人乐| 欧美大香蕉在线观看| 日本天天操| 欧美一级黄片免费播放| 久久亚洲AV无码专区国产精品| 久久精品国内Av熟女高清| 嗯嗯啊啊操我| 蜜臀久久99精品久久久久久-DVD| 亚洲欧美激情小说| 亚洲欧美变态| 91欧洲入口| 国产一区二区a毛片| 亚洲成人精品在线一区| 久操精品| 插入逼91| 在线观看亚洲成人精品| 中文操逼字幕| 操逼视频国产无套| 久久丁香久草综合网| 中日韩一区二区三区欧美| 色99999| a片在线播放| 日韩免费在线观看不卡| 韩美日操逼| 91东京热男人的天堂| 午夜视频久久久久一区| 人人贴人人摸| 可以在线观看AV的网站| 首页中文字幕中文字幕免费| 国产AV无码AV| 中日高清无码操逼视频| 99在线精品观看99| 天天欧美色| 久久超碰亚洲人| 天天影视射综合网| 天天日熟妇| 欧美高清91| 久久精品熟妇丰满人妻99| 亚洲美女AV无码| 欧美激情性久久久久久| 黑人操一区二区| 去干网最新版| 中文伊人大香蕉视频| 亚洲成人精品久久久| 四虎在线免费视频| 91日韩网站| 亲子敌伦对白在线播放| 成人无码在线超碰网| 精品性爱一二三区| 免费视频无码| 亚洲欧美另类少妇精品| 精品欧美日韩在线观看| 日韩欧美传媒一区国产| 性饥渴少妇av无码毛片| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 人妻丰满熟妇一区二区三| 极品尤物女神在线观看| 操逼日韩无码| 日韩少妇丰满亚洲| 青草伊人久久| WWW.操逼.COM| 国人欧美精品一区二区| 艹我哪美一区无码| 伊人 俄罗斯 a v| 啊啊啊啊免费视频| 亚洲国产精品99久久久| 亚洲日本韩国在线| 超碰97色色| 国产精品伦理| 伊人久久在线视频观看| www.99热| 狠色婷婷久久一区二区三区_| 91熟女视频网| 久久精品久久久久久久久| 丁香五月自拍| 久噜噜| 色欧洲| 色青青久久影视| 制服少妇欧美| 九九碰九九爱97超| 草莓精品视频| 久草精品国产蜜臀| 97国产精品一区| 国产精品美女在线一区| 天天看天天综合成人网| 久久中久文96| 中国一级操逼视频| 青娱乐av在线| 97色香蕉| 人人摸人人干人人拍97| 欧美激情欧美精品| 久久久久九九九| 色婷婷电影| 四虎影视永久在线观看精品免费网站| 91福利网在线观看| 欧美激情综合色综合啪啪五月| 狠操91,com| 日本高清视频xxxx| 国产青一二三| 色香欲影| 激情深爱五月天| 四虎884| 岛国黄色大片网站| 大乔未久88一区| 日韩无码操逼片| 天天干天天日天天射黄色大片 | 长长久久曰曰夜夜成人网| 色69大色97香蕉| 婷婷五月天激情网| 欧美熟女丝袜| 秋霞久久亚洲精品成人| 99啪啪| 国产探花日韩援交| 欧美 亚洲 大香| 成人毛片免费| 黑丝91视频| TS人妖另类精品视频系列 | 国产日本顶级一区二区三区| 岛园激情| 婷婷五月天色网| 黄aaaaaaaaaaaaaaaaaa色网站 | 99爱爱| 精品一区二区三区蜜桃| 久99| 青青草好吊色| 亚洲日韩肥臀视频在线观看| 999久久久九九九九| 大香蕉伊人色偷偷在线| 久久久亚洲| 人妻插插人妻人| 777琪琪午夜免费A片| 狠综合网| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 欧洲人妻视频| 中文字幕在线日亚州9| 东北老熟女| 久久久A∨| 欧美乱伦专区| 97色视频在线| 精品久久久久av影院| 少妇特黄一区二区三区| 色婷婷九月| 久操电影| 色 亚洲 91| 白嫩国模丰满一二三区| 久久久久久加勒比| 老鸭窝亚洲毛片| 国产又色又粗又黄又爽| 日本久久999| 国产激情久久久| 日韩成人高清一区二区| 天操老女人| 99久久综合网| a'v在线资源| 色婷婷久久综合超碰| 亚洲中文一区二区三区视频| 91亚洲情色| 美女91在线观看| 国产福利第一视频| 试看日韩黄片| 亚洲色图自拍| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产精品直播在线观看直播| 欧美美女后入| 夜色五月天| 看大黄色大片原件| 丝袜美腿丝袜| 国产精品欧美激在线| 噜噜吧,噜噜色,噜噜| 天天看夜夜看日日干| 狠狠爱AV| 久久大香蕉手机高清视频| 顶级丝袜熟女一区二区三区| 高清孕妇孕交 交| 精品国产国产AV| 激情五月天色播| 久久黄色视频一区二区三区| 亚洲一区二区av| 欧美78| 加勒比在线视频| 爆操无码| 自拍偷拍草一草| 久久超碰com| 中文字幕伊人| 亚洲人在线| 色激情五月天| 亚洲色图日韩精品| 欧美日韩国产一区二区小黄片大全| 亚洲欧美91√| 色婷婷婷五月天激情四射| 99热成人| 日本一级性爱| 在线观看成人性爱免费小视频| 女人综合网| 校园春色 亚洲| 欧美色日| 美女91在线观看| 婷婷五月天补不补| 最新国产精品久久精品| 亚洲精品xxx| 午夜亚洲WWW湿好大| 亚洲国产97| 国产伊人精品在线| 99久久9| 99re99视频在线免费观看| 无码91| 色噜噜综合在线| 99色视频| 婷婷五月av| 日韩欧美经典在线观看| 久操com| 最新岛国大片| 久热在线精品免费观看| J?P?NESEHD熟女熟妇伦| 免费观看一区| 欧美色性情| 麻豆av一区二区| 高精欧美色| 亚洲高清欧美总合| 日韩99999| 夫妻日逼| 99热这里只有精品18| 深夜国产福利| 狠狠爱夜夜| 成人性生活高清视频在线播放| 国产网红精品| 久久一二三四五六七八九区区| 亚洲人在线| 秋霞男人网| 黄网站黄视频网站进入口| 亚州人妻| 美女黑人91神马| 久久久久久少妇| 国产不卡的视频| 91久热| 91精品人妻一品二品三品| 久久久91| 91青青草| 日本黄色精品专区网站| 中文字幕精品免费一区二区| 先锋影音av先锋一区| 日本日逼高清| 国产浮力影院第1页|