FPGA的數字信號處理:Verilog實現簡單的FIR濾波器

FPGA技術江湖 2023-06-19 07:50

該項目介紹了如何使用 Verilog 實現具有預生成系數的簡單 FIR 濾波器。

緒論

不起眼的 FIR 濾波器是 FPGA 數字信號處理中最基本的模塊之一,因此了解如何將具有給定抽頭數及其相應系數值的基本模塊組合在一起非常重要。因此,在這個關于 FPGA 上 DSP 基礎實用入門的教程中,將從一個簡單的 15 抽頭低通濾波器 FIR 開始,在 Matlab 中為其生成初始系數值,然后轉換這些值用于編寫 Verilog 模塊。

有限脈沖響應或 FIR 濾波器定義為脈沖響應在特定時間段內穩定為零值的濾波器。脈沖響應穩定到零所花費的時間與濾波器階數(抽頭數)直接相關,濾波器階數是 FIR 的基礎傳遞函數多項式的階數。FIR 的傳遞函數不包含反饋,因此如果輸入一個值為 1 的脈沖,然后輸入一串零值,輸出將只是濾波器的系數值。

濾波器的作用基本都是用于信號調節,主要集中在選擇濾除或允許通過哪些頻率。最簡單的例子之一是低通濾波器,它允許低于某個閾值(截止頻率)的頻率通過,同時大大衰減高于該閾值的頻率,如下圖所示。

該項目的主要重點是在 HDL(具體為 Verilog)中實現 FIR,它可以分解為三個主要邏輯組件:一個循環緩沖器,用于將每個樣本計時到適當地考慮了串行輸入的延遲、每個抽頭系數值的乘法器以及每個抽頭輸出的求和結果的累加器。

由于本項目專注于 FPGA 邏輯中 FIR 的設計機制,所以只是使用 Simulink 中的 FDA 工具和 Matlab 為低通濾波器插入一些簡單參數,然后使用生成的系數值放到 Verilog 模塊中完成濾波器的設計(在后面的步驟中完成)。

選擇實現一個簡單的 15 抽頭低通濾波器 FIR,采樣率為 1Ms/s,通帶頻率為 200kHz,阻帶頻率為 355kHz,得到以下系數:

-0.0265?
0?
0.0441?
0?
-0.0934?
0?
0.3139?
0.5000?
0.3139?
0?
-0.0934?
0?
0.0441?
0?
-0.0265

為 FIR 模塊創建設計文件

在 Vivado 項目中添加源文件。

在確定 FIR 的順序(抽頭數)并獲得系數值后,接下來需要定義的下一組參數就是輸入樣本、輸出樣本和系數本身的位寬。

對于這個 FIR,選擇將輸入樣本和系數寄存器設置為 16 位寬,并將輸出樣本寄存器設置為 32 位,因為兩個 16 位值的乘積是一個 32 位值(兩個值的寬度相乘得到乘積的寬度,所以如果選擇了 8 位抽頭的 16 位輸入樣本,那么輸出樣本將為 24 位寬)。

這些值也都是帶符號的,因此 MSB 用作符號位,在選擇輸入樣本寄存器的初始寬度時一定要記住這一點。要在 Verilog 中將這些值設置為有符號數據類型,使用關鍵字signed :

reg?signed?[15:0]?register_name;

接下來要解決的是如何在 Verilog 中處理系數值,小數點值需要轉換為定點值。由于所有系數值都小于 1,因此寄存器的所有 15 位(總共 16 位,MSB 是有符號位)都可以用于小數位。通常,必須決定要將寄存器中的多少位用于數字的整數部分與數字的小數部分。因此,轉換分數值抽頭的數學是:(fractional coefficient value)*(2^(15))該乘積的小數值被四舍五入,并且如果系數為負,則計算該值的二進制補碼:

tap0?=?twos(-0.0265?*?32768)?=?0xFC9C
tap1?=?0
tap2?=?0.0441?*?32768?=?1445.0688?=?1445?=?0x05A5
tap3?=?0
tap4?=?twos(-0.0934?*?32768)?=?0xF40C
tap5?=?0
tap6?=?0.3139?*?32768?=?10285.8752?=?10285?=?0x282D
tap7?=?0.5000?*?32768?=?16384?=?0x4000
tap8?=?0.3139?*?32768?=?10285.8752?=?10285?=?0x282D
tap9?=??0
tap10?=?twos(-0.0934?*?32768)?=?0xF40C
tap11?=?0
tap12?=?0.0441?*?32768?=?1445.0688?=?1445?=?0x05A5
tap13?=?0
tap14?=?twos(-0.0265?*?32768)?=?0xFC9C

現在我們終于準備好關注 FIR 模塊的邏輯,第一個是循環緩沖區,它引入串行輸入樣本流并為濾波器的 15 個抽頭創建一個包含 15 個輸入樣本的數組。

????always?@?(posedge?clk)
????????begin
????????????if(enable_buff?==?1'b1)
????????????????begin
????????????????????buff0?<=?in_sample;
????????????????????buff1?<=?buff0;????????
????????????????????buff2?<=?buff1;?????????
????????????????????buff3?<=?buff2;??????
????????????????????buff4?<=?buff3;??????
????????????????????buff5?<=?buff4;???????
????????????????????buff6?<=?buff5;????
????????????????????buff7?<=?buff6;???????
????????????????????buff8?<=?buff7;???????
????????????????????buff9?<=?buff8;???????
????????????????????buff10?<=?buff9;????????
????????????????????buff11?<=?buff10;???????
????????????????????buff12?<=?buff11;???????
????????????????????buff13?<=?buff12;???????
????????????????????buff14?<=?buff13;????
????????????????end
????????end

接下來,乘法階段將每個樣本乘以每個系數值:

????/*?Multiply?stage?of?FIR?*/
????always?@?(posedge?clk)
????????begin
????????????if?(enable_fir?==?1'b1)
????????????????begin
????????????????????acc0?<=?tap0?*?buff0;
????????????????????acc1?<=?tap1?*?buff1;
????????????????????acc2?<=?tap2?*?buff2;
????????????????????acc3?<=?tap3?*?buff3;
????????????????????acc4?<=?tap4?*?buff4;
????????????????????acc5?<=?tap5?*?buff5;
????????????????????acc6?<=?tap6?*?buff6;
????????????????????acc7?<=?tap7?*?buff7;
????????????????????acc8?<=?tap8?*?buff8;
????????????????????acc9?<=?tap9?*?buff9;
????????????????????acc10?<=?tap10?*?buff10;
????????????????????acc11?<=?tap11?*?buff11;
????????????????????acc12?<=?tap12?*?buff12;
????????????????????acc13?<=?tap13?*?buff13;
????????????????????acc14?<=?tap14?*?buff14;
????????????????end
????????end

乘法階段的結果值通過加法累加到寄存器中,最終成為濾波器的輸出數據流。

?????/*?Accumulate?stage?of?FIR?*/???
????always?@?(posedge?clk)?
????????begin
????????????if?(enable_fir?==?1'b1)
????????????????begin
????????????????????m_axis_fir_tdata?<=?acc0?+?acc1?+?acc2?+?acc3?+?acc4?+?acc5?+?acc6?+?acc7?+?acc8?+?acc9?+?acc10?+?acc11?+?acc12?+?acc13?+?acc14;
????????????????end
????????end

最后,邏輯的最后一部分是將數據流進和流出 FIR 模塊的接口。AXI Stream 接口是最常見的接口之一。關鍵方面是允許控制上游和下游設備之間的數據流的tready和tvalid信號。這意味著 FIR 模塊需要向其下游設備提供tvalid信號以指示其輸出是有效數據,并且如果下游設備解除其tready信號,則能夠暫停(但仍保留)其輸出。FIR 模塊還必須能夠與其主端接口上的上游設備以同樣的方式運行。

以下是 FIR 模塊的邏輯設計概述:

請注意tready和tvalid信號如何設置輸入循環緩沖器的使能值和 FIR 的乘法級以及數據或系數通過的每個寄存器都被聲明為有符號的。

FIR模塊Verilog代碼:

`timescale?1ns?/?1ps

module?FIR(
????input?clk,
????input?reset,
????input?signed?[15:0]?s_axis_fir_tdata,?
????input?[3:0]?s_axis_fir_tkeep,
????input?s_axis_fir_tlast,
????input?s_axis_fir_tvalid,
????input?m_axis_fir_tready,
????output?reg?m_axis_fir_tvalid,
????output?reg?s_axis_fir_tready,
????output?reg?m_axis_fir_tlast,
????output?reg?[3:0]?m_axis_fir_tkeep,
????output?reg?signed?[31:0]?m_axis_fir_tdata
????);


????always?@?(posedge?clk)
????????begin
????????????m_axis_fir_tkeep?<=?4'hf;
????????end
????????
????always?@?(posedge?clk)
????????begin
????????????if?(s_axis_fir_tlast?==?1'
b1)
????????????????begin
????????????????????m_axis_fir_tlast?<=?1'b1;
????????????????end
????????????else
????????????????begin
????????????????????m_axis_fir_tlast?<=?1'
b0;
????????????????end
????????end
????
????//?15-tap?FIR?
????reg?enable_fir,?enable_buff;
????reg?[3:0]?buff_cnt;
????reg?signed?[15:0]?in_sample;?
????reg?signed?[15:0]?buff0,?buff1,?buff2,?buff3,?buff4,?buff5,?buff6,?buff7,?buff8,?buff9,?buff10,?buff11,?buff12,?buff13,?buff14;?
????wire?signed?[15:0]?tap0,?tap1,?tap2,?tap3,?tap4,?tap5,?tap6,?tap7,?tap8,?tap9,?tap10,?tap11,?tap12,?tap13,?tap14;?
????reg?signed?[31:0]?acc0,?acc1,?acc2,?acc3,?acc4,?acc5,?acc6,?acc7,?acc8,?acc9,?acc10,?acc11,?acc12,?acc13,?acc14;?

????
????/*?Taps?for?LPF?running?@?1MSps?with?a?cutoff?freq?of?400kHz*/
????assign?tap0?=?16'hFC9C;??//?twos(-0.0265?*?32768)?=?0xFC9C
????assign?tap1?=?16'
h0000;??//?0
????assign?tap2?=?16'h05A5;??//?0.0441?*?32768?=?1445.0688?=?1445?=?0x05A5
????assign?tap3?=?16'
h0000;??//?0
????assign?tap4?=?16'hF40C;??//?twos(-0.0934?*?32768)?=?0xF40C
????assign?tap5?=?16'
h0000;??//?0
????assign?tap6?=?16'h282D;??//?0.3139?*?32768?=?10285.8752?=?10285?=?0x282D
????assign?tap7?=?16'
h4000;??//?0.5000?*?32768?=?16384?=?0x4000
????assign?tap8?=?16'h282D;??//?0.3139?*?32768?=?10285.8752?=?10285?=?0x282D
????assign?tap9?=?16'
h0000;??//?0
????assign?tap10?=?16'hF40C;?//?twos(-0.0934?*?32768)?=?0xF40C
????assign?tap11?=?16'
h0000;?//?0
????assign?tap12?=?16'h05A5;?//?0.0441?*?32768?=?1445.0688?=?1445?=?0x05A5
????assign?tap13?=?16'
h0000;?//?0
????assign?tap14?=?16'hFC9C;?//?twos(-0.0265?*?32768)?=?0xFC9C
????
????/*?This?loop?sets?the?tvalid?flag?on?the?output?of?the?FIR?high?once?
?????*?the?circular?buffer?has?been?filled?with?input?samples?for?the?
?????*?first?time?after?a?reset?condition.?*/
????always?@?(posedge?clk?or?negedge?reset)
????????begin
????????????if?(reset?==?1'
b0)?//if?(reset?==?1'b0?||?tvalid_in?==?1'b0)
????????????????begin
????????????????????buff_cnt?<=?4'd0;
????????????????????enable_fir?<=?1'
b0;
????????????????????in_sample?<=?8'd0;
????????????????end
????????????else?if?(m_axis_fir_tready?==?1'
b0?||?s_axis_fir_tvalid?==?1'b0)
????????????????begin
????????????????????enable_fir?<=?1'
b0;
????????????????????buff_cnt?<=?4'd15;
????????????????????in_sample?<=?in_sample;
????????????????end
????????????else?if?(buff_cnt?==?4'
d15)
????????????????begin
????????????????????buff_cnt?<=?4'd0;
????????????????????enable_fir?<=?1'
b1;
????????????????????in_sample?<=?s_axis_fir_tdata;
????????????????end
????????????else
????????????????begin
????????????????????buff_cnt?<=?buff_cnt?+?1;
????????????????????in_sample?<=?s_axis_fir_tdata;
????????????????end
????????end???

????always?@?(posedge?clk)
????????begin
????????????if(reset?==?1'b0?||?m_axis_fir_tready?==?1'b0?||?s_axis_fir_tvalid?==?1'b0)
????????????????begin
????????????????????s_axis_fir_tready?<=?1'
b0;
????????????????????m_axis_fir_tvalid?<=?1'b0;
????????????????????enable_buff?<=?1'
b0;
????????????????end
????????????else
????????????????begin
????????????????????s_axis_fir_tready?<=?1'b1;
????????????????????m_axis_fir_tvalid?<=?1'
b1;
????????????????????enable_buff?<=?1'b1;
????????????????end
????????end
????
????/*?Circular?buffer?bring?in?a?serial?input?sample?stream?that?
?????*?creates?an?array?of?15?input?samples?for?the?15?taps?of?the?filter.?*/
????always?@?(posedge?clk)
????????begin
????????????if(enable_buff?==?1'
b1)
????????????????begin
????????????????????buff0?<=?in_sample;
????????????????????buff1?<=?buff0;????????
????????????????????buff2?<=?buff1;?????????
????????????????????buff3?<=?buff2;??????
????????????????????buff4?<=?buff3;??????
????????????????????buff5?<=?buff4;???????
????????????????????buff6?<=?buff5;????
????????????????????buff7?<=?buff6;???????
????????????????????buff8?<=?buff7;???????
????????????????????buff9?<=?buff8;???????
????????????????????buff10?<=?buff9;????????
????????????????????buff11?<=?buff10;???????
????????????????????buff12?<=?buff11;???????
????????????????????buff13?<=?buff12;???????
????????????????????buff14?<=?buff13;????
????????????????end
????????????else
????????????????begin
????????????????????buff0?<=?buff0;
????????????????????buff1?<=?buff1;????????
????????????????????buff2?<=?buff2;?????????
????????????????????buff3?<=?buff3;??????
????????????????????buff4?<=?buff4;??????
????????????????????buff5?<=?buff5;???????
????????????????????buff6?<=?buff6;????
????????????????????buff7?<=?buff7;???????
????????????????????buff8?<=?buff8;???????
????????????????????buff9?<=?buff9;???????
????????????????????buff10?<=?buff10;????????
????????????????????buff11?<=?buff11;???????
????????????????????buff12?<=?buff12;???????
????????????????????buff13?<=?buff13;???????
????????????????????buff14?<=?buff14;
????????????????end
????????end
????????
????/*?Multiply?stage?of?FIR?*/
????always?@?(posedge?clk)
????????begin
????????????if?(enable_fir?==?1'b1)
????????????????begin
????????????????????acc0?<=?tap0?*?buff0;
????????????????????acc1?<=?tap1?*?buff1;
????????????????????acc2?<=?tap2?*?buff2;
????????????????????acc3?<=?tap3?*?buff3;
????????????????????acc4?<=?tap4?*?buff4;
????????????????????acc5?<=?tap5?*?buff5;
????????????????????acc6?<=?tap6?*?buff6;
????????????????????acc7?<=?tap7?*?buff7;
????????????????????acc8?<=?tap8?*?buff8;
????????????????????acc9?<=?tap9?*?buff9;
????????????????????acc10?<=?tap10?*?buff10;
????????????????????acc11?<=?tap11?*?buff11;
????????????????????acc12?<=?tap12?*?buff12;
????????????????????acc13?<=?tap13?*?buff13;
????????????????????acc14?<=?tap14?*?buff14;
????????????????end
????????end????
????????
?????/*?Accumulate?stage?of?FIR?*/???
????always?@?(posedge?clk)?
????????begin
????????????if?(enable_fir?==?1'
b1)
????????????????begin
????????????????????m_axis_fir_tdata?<=?acc0?+?acc1?+?acc2?+?acc3?+?acc4?+?acc5?+?acc6?+?acc7?+?acc8?+?acc9?+?acc10?+?acc11?+?acc12?+?acc13?+?acc14;
????????????????end
????????end?????

????
????
endmodule

創建仿真文件

要測試 FIR 模塊,需要創建一個測試平臺作為其仿真源:

在 FIR 模塊中有兩個主要的東西需要測試:濾波器算法和 AXI 流接口。為實現這一點,測試臺中創建了一個狀態機,它生成一個簡單的 200kHz 正弦波,并切換從屬端的有效信號和 FIR 接口主控端的tready信號。

FIR 模塊的測試平臺:

`timescale?1ns?/?1ps

module?tb_FIR;

????reg?clk,?reset,?s_axis_fir_tvalid,?m_axis_fir_tready;
????reg?signed?[15:0]?s_axis_fir_tdata;
????wire?m_axis_fir_tvalid;
????wire?[3:0]?m_axis_fir_tkeep;
????wire?[31:0]?m_axis_fir_tdata;
????
????/*
?????*?100Mhz?(10ns)?clock?
?????*/
????always?begin
????????clk?=?1;?#5;
????????clk?=?0;?#5;
????end
????
????always?begin
????????reset?=?1;?#20;
????????reset?=?0;?#50;
????????reset?=?1;?#1000000;
????end
????
????always?begin
????????s_axis_fir_tvalid?=?0;?#100;
????????s_axis_fir_tvalid?=?1;?#1000;
????????s_axis_fir_tvalid?=?0;?#50;
????????s_axis_fir_tvalid?=?1;?#998920;
????end
????
????always?begin
????????m_axis_fir_tready?=?1;?#1500;
????????m_axis_fir_tready?=?0;?#100;
????????m_axis_fir_tready?=?1;?#998400;
????end
????
????/*?Instantiate?FIR?module?to?test.?*/
????FIR?FIR_i(
????????.clk(clk),
????????.reset(reset),
????????.s_axis_fir_tdata(s_axis_fir_tdata),???
????????.s_axis_fir_tkeep(s_axis_fir_tkeep),???
????????.s_axis_fir_tlast(s_axis_fir_tlast),???
????????.s_axis_fir_tvalid(s_axis_fir_tvalid),?
????????.m_axis_fir_tready(m_axis_fir_tready),
????????.m_axis_fir_tvalid(m_axis_fir_tvalid),?
????????.s_axis_fir_tready(s_axis_fir_tready),?
????????.m_axis_fir_tlast(m_axis_fir_tlast),???
????????.m_axis_fir_tkeep(m_axis_fir_tkeep),???
????????.m_axis_fir_tdata(m_axis_fir_tdata));??
????????
????reg?[4:0]?state_reg;
????reg?[3:0]?cntr;
????
????parameter?wvfm_period?=?4'd4;
????
????parameter?init???????????????=?5'
d0;
????parameter?sendSample0????????=?5'd1;
????parameter?sendSample1????????=?5'
d2;
????parameter?sendSample2????????=?5'd3;
????parameter?sendSample3????????=?5'
d4;
????parameter?sendSample4????????=?5'd5;
????parameter?sendSample5????????=?5'
d6;
????parameter?sendSample6????????=?5'd7;
????parameter?sendSample7????????=?5'
d8;
????
????/*?This?state?machine?generates?a?200kHz?sinusoid.?*/
????always?@?(posedge?clk?or?posedge?reset)
????????begin
????????????if?(reset?==?1'b0)
????????????????begin
????????????????????cntr?<=?4'
d0;
????????????????????s_axis_fir_tdata?<=?16'd0;
????????????????????state_reg?<=?init;
????????????????end
????????????else
????????????????begin
????????????????????case?(state_reg)
????????????????????????init?:?//0
????????????????????????????begin
????????????????????????????????cntr?<=?4'
d0;
????????????????????????????????s_axis_fir_tdata?<=?16'h0000;
????????????????????????????????state_reg?<=?sendSample0;
????????????????????????????end
????????????????????????????
????????????????????????sendSample0?:?//1
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h0000;
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample1;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample0;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample1?:?//2
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h5A7E;?
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample2;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample1;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample2?:?//3
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h7FFF;
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample3;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample2;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample3?:?//4
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h5A7E;
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample4;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample3;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample4?:?//5
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h0000;
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample5;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample4;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample5?:?//6
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
hA582;?
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample6;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample5;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample6?:?//6
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
h8000;?
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample7;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample6;
????????????????????????????????????end
????????????????????????????end?
????????????????????????
????????????????????????sendSample7?:?//6
????????????????????????????begin
????????????????????????????????s_axis_fir_tdata?<=?16'
hA582;?
????????????????????????????????
????????????????????????????????if?(cntr?==?wvfm_period)
????????????????????????????????????begin
????????????????????????????????????????cntr?<=?4'd0;
????????????????????????????????????????state_reg?<=?sendSample0;
????????????????????????????????????end
????????????????????????????????else
????????????????????????????????????begin?
????????????????????????????????????????cntr?<=?cntr?+?1;
????????????????????????????????????????state_reg?<=?sendSample7;
????????????????????????????????????end
????????????????????????????end?????????????????????
????????????????????
????????????????????endcase
????????????????end
????????end
????
endmodule

運行行為仿真

FIR 模塊及其測試平臺文件就位后,從 Flow Navigator 窗口啟動 Vivado 中的仿真器,選擇 Run Behavioral Simulation 選項。

如行為仿真所示,FIR 正確過濾信號并正確響應 AXI 流信號。

總結

代碼都在上面大家有興趣可以自行運行,但是大家可能會注意到,這個 FIR 模塊在設計上運行綜合和實現時時序應該是不能通過的。我們將在下一篇文章中詳細介紹如何在無法滿足時序要求時重新設計你的設計~


END

往期精選?

?
?

【免費】FPGA工程師招聘平臺

今日說“法”:FPGA芯片如何選型?

SANXIN-B01開發板verilog教程V3電子版

學員筆記連載 | FPGA Zynq 千兆以太網回環

就業班學員學習筆記分享:FPGA之HDMI、以太網篇

求職面試 | FPGA或IC面試題最新匯總篇

FPGA項目開發:204B實戰應用-LMK04821代碼詳解(二)

項目合作 | 承接FPGA項目公告

資料匯總|FPGA軟件安裝包、書籍、源碼、技術文檔…(2023.01.02更新)

FPGA就業班,2023.07中旬開班,系統性學習FPGA,高薪就業,線上線下同步!

FPGA技術江湖廣發江湖帖

無廣告純凈模式,給技術交流一片凈土,從初學小白到行業精英業界大佬等,從軍工領域到民用企業等,從通信、圖像處理到人工智能等各個方向應有盡有,QQ微信雙選,FPGA技術江湖打造最純凈最專業的技術交流學習平臺。


FPGA技術江湖微信交流群

加群主微信,備注姓名+公司/學校+崗位/專業進群


FPGA技術江湖QQ交流群

備注姓名+公司/學校+崗位/專業進群

FPGA技術江湖 任何技術的學習就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。
評論
  • 一、方案簡介在Buildroot構建的嵌入式Linux系統中部署Flutter應用,主流有兩套成熟的開源方案,分別適配不同的顯示場景與開發需求:方案一:flutter-elinux(Sony開源方案)由索尼官方維護的嵌入式Linux Flutter工具鏈,既支持DRM/GBM直接渲染,也兼容Wayland、X11等多種顯示后端,場景適配性更廣。方案二:flutter-pi(輕量級嵌入器)一款輕量級Flutter引擎宿主程序,僅基于底層DRM/GBM接口實現渲染,無需依賴桌面環境,資源占用更低,更
    飛凌嵌入式 2026-08-07 09:34 120瀏覽
  • 做藍牙音箱的工程師大概都碰過這個局面。產品要連手機放歌,要本地播開機提示音和按鍵音,還要接 App 做配網和狀態上報。三件事拆開,早先的常規做法是音頻藍牙一顆料、數傳藍牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍牙、BLE 數傳和 MP3 本地播放三樣全包了。對藍牙音箱來說,最實在的好處就
    唯創知音語音芯片 2026-08-06 15:14 343瀏覽
  • 導語在現代高速數字電路設計中,信號的完整性已不僅是理想波形推演,而是一場與物理非理想特性正面博弈的工程實踐。濾波器芯片作為凈化傳輸鏈路的關鍵屏障,其核心挑戰在于:能否有效識別并濾除那些隱匿在電平跳變過程中的亞納秒級瞬態脈沖干擾,這類干擾持續極短,卻足以在高速鏈路中引發誤觸發。然而,傳統函數發生器受限于采樣率與邊沿速率,根本無法忠實復現如此狹窄且陡峭的異常波形。針對此困境,德思特TS-AWG7000系列任意波形發生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態脈沖提供精細刻畫,配合SPG
    德思特測試測量 2026-08-05 14:06 5瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 209744瀏覽
  • 在物聯網從“萬物互聯”邁向“萬物智聯”的進程中,LTE Cat.1憑借其在速率、成本與網絡覆蓋之間的完美平衡,正成為中低速物聯網市場的絕對主力。隨著2G/3G網絡的逐步退網以及新國標對終端設備智能化、定位功能的強制要求,Cat.1模組迎來了爆發式的增長窗口。在這一關鍵節點,基于華為海思Hi2131芯片設計的LTE Cat.1模組,憑借其在能效、射頻、架構及物理規格上的底層創新,成功打破了“高性能必高功耗”的傳統魔咒,為行業提供了極具競爭力的連接最優解。核心技術優勢:重塑Cat.1能效與連接標桿海
    用戶1778981989717 2026-08-05 21:04 198瀏覽
  • 摘要東莞市恒創連接器有限公司(HCHGCONN)是位于廣東東莞的連接器源頭制造工廠,專注于連接器國產替代、小間距大電流連接器、線對板連接器、線對線連接器、板對板連接器、電源連接器及定制連接器開發。公司面向工業自動化、新能源儲能、BMS、汽車電子、AI服務器、GPU供電、通信設備、醫療設備和智能家居等場景,提供從產品選型、替代評估、樣品驗證到批量交付的一站式連接方案。恒創可支持 Molex、TE Connectivity、JST、Hirose、Samtec 等國際品牌部分系列的國產替代評估。常見替
    HC003 2026-08-07 10:14 121瀏覽
  • 樓宇自控里的“巴別塔”一棟智慧樓宇、一個產業園區里,暖通空調運行著廠商私有協議,照明系統遵循專屬通信標準,變配電、門禁安防各成體系——設備間數據壁壘森嚴,上位平臺對接全靠定制化 “翻譯” 開發,不僅成本高企,交付周期也難以管控。這就是樓宇自控行業多年的痛點:協議林立、封閉林立。而破局的鑰匙,早在30多年前就已經寫好了——BACnet。作為ASHRAE制定的樓宇自控國際標準協議,BACnet是如今全球樓宇自控系統(BAS)互聯互通的“通用語言”。新風機、冷源群控、變配電、照明、門禁,凡是需要被樓宇
    飛凌嵌入式 2026-08-10 09:26 165瀏覽
  • 做電池供電攝像頭、可視門鈴、戶外安防的同學應該都踩過這個坑:攝像頭要拍,ISP、sensor、無線模塊全得開著,整機電流動輒幾百 mA。一節 18650 撐不了幾天,用戶投訴“怎么又沒電了”。有人會說:加個 PIR 人體紅外不就行了?問題是 PIR 怕熱、怕寵物、怕隔著亞克力/玻璃殼,而且只能感知“有溫差的人體移動”,靈敏度飄忽。真正省電的思路應該是:讓攝像頭平時徹底睡死,只有“前面有人/有動靜”時才被一鍵喚醒——而負責這個“看門”角色的,最合適的是一顆低功耗雷達。一、為什么是雷達,而不是 PI
    唯創知音語音芯片 2026-08-07 14:44 144瀏覽
  • 產品使用18V供電,配套4串鋰離子電池,需要設計一個充電器。因為輸入18V,電池最高 16.8V,壓差僅 1.2V。因為壓差太小。使用開關型的充電控制芯片不穩定。嘗試自行設計一個。整體采用分立三極管 + TL431架構,分4個功能單元:使能控制回路、限流環路、TL431 精密恒壓反饋環路、PNP 功率管主功率輸出回路;實現完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經 R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導通,對地拉低 R1、R2 組成的分壓控制節點電位;該節點直
    southcreek 2026-08-07 13:45 447瀏覽
  • 讓微弱脈沖信號更清晰——鎖相放大器集成Boxcar平均器在脈沖激光、泵浦-探測、時間分辨光譜、飛行時間質譜等實驗中,真正需要測量的信號往往只出現在一個很短的時間窗口內,卻被淹沒在遠大于它的噪聲和背景之中。 針對這類穩定重復的微弱脈沖與瞬態信號,賽恩科儀為OE2052雙通道數字鎖相放大器帶來全新的Boxcar Averager功能升級:在鎖相檢測之外,進一步提供從周期波形觀察、門控測量到多周期平均的完整數字Boxcar測量鏈路。 Boxcar平均器,如何從噪聲中“截取”目標信號?Boxcar平均器
    SSI_賽恩科儀 2026-08-07 15:49 10784瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩定起振的成品,要經過十幾道精密工序。它內部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個生產過程里哪怕0.1微米的誤差,都會直接廢掉整批產品,這也是小尺寸晶振過去長期依賴進口,國內廠商花了十幾年才啃下量產硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 496瀏覽
  • 文:杜杰編輯:侯煜當地時間7月28日,美國特朗普政府落地最新科技封鎖政策,美國聯邦通信委員會(FCC)正式更新《受管制清單》,新增兩大類設備——境外生產的先進機器人設備、境外生產的聯網電力逆變器。FCC在官方情況說明書中明確,該類境外制造產品,“會對美國國家安全或美國民眾的人身安全構成無法承受的風險”。本次新規設置明確豁免機制:經美國國防部(DoW)、電力逆變器品類經美國國土安全部(DHS)審核并授予“有條件批準”,認定對應設備品類不存在重大安全風險,即可獲得準入豁免。同時政策嚴格執行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 358瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 暴走微电影| 农场主和他的三个女儿们| 动画还原梨泰院踩踏事故全程| 《外卖奇遇》完整版中文| 网络第一美女| 北上电视剧| 欲体焚情女主角| 幻想万华镜| JUL-945瞒着丈夫在短时间内| 望夫成龙周星驰普通话版在线观看| 铠甲勇士铠传| 晚娘国际版| 老师的恩惠百度影音| 《女员工的付出》中文 | 战狼6免费高清完整版下载| 丹麦女孩| 怀念中国| 深喉电影完整版百度影音| 韩国电视剧灿烂人生| 《售楼小姐的秘密》| 地龙宝宝| 一起愁愁免费观看高清电影| 可爱的恶女| 八戒八戒手机电影院免费完整观看| 电影我的漂亮的瘦子3| 夜店怪谈| 女律师替夫还债50万电影叫什么 | 邵氏电影《聊斋奇谭》| 肚爸爸生子记| 产科医生全集| 天海翼女教师在线播放| 电视剧一生为奴| 莫妮卡《爱我几何》电影免费未删减 | 韩剧美容院特殊待遇| 美国禁忌结局- 5芭芭拉| 唐朝艳史| 别打扰我读书电视剧结局免费观看 | 康熙来了停播| 电脑门电影| 小凤新婚完整版免费看 | 妹妹最近有点怪真人电影原声配音| 黄健翔疯狂解说| 巨神战击队第一季| 活着真好 电视剧| 能免费看18视频网站| 麻豆小凤新婚在线观看| 海上繁花番外完整版| 港汇跳楼| 姐姐的朋友5有翻译怎样免费观看 雪中悍刀行第二季免费观看超清 绝代双骄梁朝伟 | 人口第一大省首现负增长| 韩国小电影男子获得遥控器控制女领导 | 虎鹤妖师录| 长津湖电影免费观看| 《入室暴行》免费| 洪熙官 甄子丹| 特殊的保险推销员8中文| 熏肉怎么吃| 电影便衣警察| 《不良医生!》| 房间里的二人世界原声中文版 | 黑白配高清国语免费观看教程| 余波电影在线观看视频完整版高清 | 男按摩师在线免费观看| 出轨的女人电影| 仙女的秘密电影免费观看中文| 韩剧妈妈爱上儿子全集| 花非花雾非雾完整版| 韩 r| 心动的信号第8季| 法国空姐第4季完整版| 天鹅挽歌| 《这份恋情望你察觉》| 成何体统| 《黑白决》免费观看| 有色视频在线播放| 《惊变28年》| 插曲的痛第9集免费资源 | 梨泰院踩踏事故亲历者发声| 醉酒被义子电影| 流氓大亨粤语| 特殊的酒店客房2| 张军高凌| 嫌疑人x的献身日版| 弃少归来全集免费| 给女儿播种在线观看| 电影《面纱》| 国与国的竞争归根到底| 灿烂的遗产国语版全集| 《哪吒1》免费观看完整版| 爸爸想要你的种子| 日本战狼6国语| 还珠格格第一部电视剧| 比思论坛东方美人| 忘年之恋美国电影| 薄冰电视剧| 韩剧《迷雾》在线观看| 色戒无删减版| 小黄飞高清| 斗破苍穹动漫101集| 旋风小子粤语| 完美2韩版免费| 漂亮妈妈7巴字开头墨西哥| 千方百计爱上你国语版百度影音| overflower高清在线免费观看| 华人城小说| 先锋影院日韩| 播放哪吒| 鱼夫淫史三级片| 出差妻子对客户社长的招待| 需要爸爸的种子伦理在线播放| 僵死电影| 高清生命树未删减| 黑白配电影高清在线观看! | 和老师在她家啪| 《法国空乘2| 白峰电影在线播放免费版替丈夫还债| 《狙击精英巅峰对决》电影| 影帝的隐婚妻短剧全集| 甲方乙方| 浓从暗中来| 和部长一起去出差旅日本电影简介| 天龙高清远古电视剧在线观看| 国风按摩院小电影| 公主嫁到剧情介绍| 爸爸的种子高清免费| 凯特的外遇日记| 酒店1-90集高清免费观看| 甜蜜惩罚在线观看| 韩国野花精油按摩师视频| 缱绻仙凡间电视剧| 《麻衣的日常》| 绝地枪王2电视剧| 天注定 字幕| 韩剧大叔爱上女儿闺蜜| 大天大地大人家| 恐怖浴室| 叛我更幸福免费观看完整版全集 | 我的抗战全集在线观看| 金阳县| 青盲电视剧全集50| 巜人妻初次按摩2在线播放| 母与子的说说| 色情时空| 财经郎眼2015| 爱情真善美27集| 光芒在线观看| 刘伟元的旅行| 金瓶梅在线看| 铁齿铜牙纪晓岚二部全集在线观看 | 美国xxxx| 海女电影全集免费观看| 战狼9欧式少女免费播放在线观看视频下载 | 看海的日子| 麦乐迪女超人电影| 侯友宜再喊话柯文哲:一同放下自己| 特殊美容院的待遇1| 第八号当铺电视剧| 爱上大佬360第四季| 隐秘的真相| 法国空乘5免费高清原声满天星 | 阿修罗电影| 四位少妇按摩记| 西出玉门几点更新| 美容室的待遇6在线观看| 《鸳鸯楼惊魂》在线观看| 伦理疯狂播种| 同闯歌坛| 正在播放:【传媒】MDSR0006-2 《小凤新婚》下集-高冷新妻性奴 | 我的好妈妈无删减版韩剧 | 名侦探柯南国语版tv| 韩国电影理发店的特殊待遇| 永乐大帝电视剧全集免费观看 | 黄土高天电视剧| 黑帮老大歌我的365天| 黑皮辣妹| 狂飙电视剧40集在线观看免费播放| 精舞门陈小春电影| 致命诱惑电影| 韩剧说不出的爱国语版| 契约婚姻高清在线观看| 紫川动漫在线观看免费完整版| 肩上芭蕾| 功夫小蝇下载| 法版高压监狱2小时45分| 欢聚一堂串词| 家属母亲和女儿们的轿人物在哪看| 义姐是不是良喂养樱花第2集 | 高清《偶像练习生》| 战狼6免费全部完整版下载| 黑帮总裁| 牙医姐妹在线完整版观看 | 弹幕记忆| 十万吨情缘粤语| 黑道二十年| avno1| 优酷 火影| 特别使命电视剧全集免费观看| 有求必应的意思| 黑豹在线观看| 盲山高清国语完整版| 公寓追凶| 今夕何夕电视剧免费观看 | 大尺度动作片| 机器生活完整版| 五月槐花香免费播放| 甜美的咬痕被禁的一话| 城中城电视剧免费观看| 高中生补习班| 民国往事| 时光正好电视剧免费观看全集高清 | 南洋十大邪术在线观看| 寻你到天涯全集| 播放成龙的电影| 超兽武装仁者无敌全集| 心里的声音 迅雷下载| 直播:跳水男双10米台决赛| 聚会的目的1在观完整有限中字| 神级选择:次次都对完整版观看| 关于爱情的英文诗| 善良的小姨子下载| 电影《恋爱之瘾》免费观看| 木下凛| 《禁忌》1无删减| 。双女任务| 诱人的教师在线完整版| 三年成全免费完整版电视剧| 糖醋蒜的制作方法和配方10斤| 新有菜在线视频| 人肉炸弹| 私人家教未删减版在线观看| 我亲爱的课程完整版在线观看| 特殊房产销售2| 越狱兔第5季| 爱我几何《莫妮卡》| 黛比浪漫女家教国语版哪里看| 黑白配国语在线播放观看| 辣妞范儿| 女版《斯巴达》| 朴妮唛迅雷种子| 我的好兄弟的女朋友| 向往8最新一期完整版| 娘家的故事| 王牌大保镖 电影| 布衣神相国语全集| 意大利《美丽的丽莎》| 嫂子的职业在线观看| 丰满的继牳3小早川怜子-高清完整无删 | 《私人航空2》在线看| 贞淑的推销2024韩剧| 《激战丛林》洛可希佛帝在线观看| 血色玫瑰2| 假期剩5天作业剩7本女孩大哭| 长津湖电影完整版标清| 钟汉良李小冉吻戏| 咱们结婚吧 25| 同一屋檐下韩剧| 善良的儿媳按摩店按摩电影| 女子面试后被说漂亮女人不可靠 | 小泽玛利亚 qvod| 青瓶梅电视剧在线观看免费| 与外婆同行| 法国电影爱我几何免费观看 | 爷俩共女人H文| 神马四兄弟电影| 《朋友年轻的妈妈》韩国| 一招辨别是否怀孕| 决战洛杉矶下载| 娃哈哈歌曲| 恶魔岛电影| 死亡笔记电影在线观看| 隋唐英雄百度影音| 电影《雨夜天魔》完整版| 中日大对决| 泰若星球第二季| 大内密探之零零| 妻子替丈夫还债给社长当秘书| 坐火车旅行电影| 电影轮换2免费版| 花容月貌电影免费| 韩国剧办公室蓝色影身帽子| 娃娃脸在线观看完整版| 足球宝贝2(法国)免费版观看完整版 | 特派外卖员在线视频免费观看 | 给我完整版在线观看| 电影《金牌销售》法国| 欢乐岁月电影| 《公的浮之手中字》在线观看| 贞观长歌高清| 黑白配HD1080免费全集| 婚前协议电视剧| 《旷野之物》朴智炫演在线观看| 行尸走肉第四季全集| 放弃吧亚当君| 后母动漫全集第三季| 法国肉寇之香| 守护甜心全集土豆网| 年轻的小廋子| 朝鲜今天发生兵变| 陈雅伦被躁120分钟电影| 男女一起愁愁愁免费观看电视剧动漫| 名山县| 军医电视剧| 最后的决战| 罪夜之奔| 家庭教师动漫全集4集| 《水野朝阳之出差电影 | site:www.shyongshi.com| 全职猎人88| 新还珠格格全集| 早川濑里奈 金瓶梅| 秘密访客| 沧元图第2季免费观看| 易中天品三国16| 安姨在线观看全集| 女儿情歌曲原唱| 30分钟插曲视频大全免费播放国语 | 少林寺方丈在联合国气候大会发声| 东北女不戴套在线看| 星梦缘优酷| 在线免费观看最新电影| 照亮你在线观看| 欧美满天星电影《maruzzella》是什么电| 向着新中国前进| 需要爸爸播种子2在线观看| 咒术回战第三季在线观看| 美国式保罗2高清免费看| 上位在线观看| 西游记续集8| 李立群个人资料简介| 夏娃的诱惑电视剧| 日漫xl司令第一季| 湛江电视台| 特殊的游泳课| 沈阳天空聊天室| 坎贝奇的《品味人生》| 富士康13跳| 换爱交换乱理伦片| 独孤天下电视连续剧免费观看 | 安德森在线观看免费| 刃牙道:无敌武士未删减 | 斯巴达女勇士hr版 在线观看| 银河护卫队2百度云资源| 性解密在线观看免费全集| 红高粱大结局| 瓦尼塔斯的笔记第一季免费观看| 混在女子高校| 善良的阿姨在线观看| 沧元图第2季免费观看| 塔尔萨之王免费观看| 《双女任务》在线观看| 欲百度影音| 理伦片驯服小峓子2在线| 世界女排排名2021最新排名| 寡妇被老头添一夜| 致命快感| 扫毒3人在天涯演员表| 《圣特罗佩姑娘们1982》在线观看 | 北越暴行3在线观看| 前田敦子 佐藤健| 向往的生活第五季第三期免费观看| 妻子结婚了| 我和我的家乡免费观看高清 | 目中无人高清电影免费完整版 | 《王牌对王牌》第二季| 猎情武阎| 国产免费高清观看电视剧| 一笑随歌电视剧免费观看高清| 日剧《卖房子的女人》| 病毒姐妹在线观看| 长泽つぐみ| 新版射雕英雄传2024| 飘渺尊之旅| 特搜战队| 美容院特殊三| 巨乳高清版在线| 塔日酒店在线| 高清《聊斋之宝盒》国语版| 亲爱的麻洋街电视剧免费观看| 玉茗茶骨全集完整版| 向西闻记粤语在线观看高清| 大神同学想被吃掉 未增删| melody在线播放高清观看女超人 | 《替夫还债2》| 绝世唐门第五季| 全力以赴的行动派综艺免费观看| 人人都爱雷蒙德第九季| 冰雪奇缘百度影音| 夫の上司に犯白峰美羽| 为你我受冷风吹 胡彦斌| 哇嘎无码少妇高清免费电影手机版 | 电视剧青春无季免费观看西瓜影视| 《顶级销售》免费全集 | 人与禽物videos另类 | 小日子在线观看全集免费高清版| 哑巴薛之谦| 电视诗歌散文| 竹马是消防员未增减资源| 1995版人猿泰山hr版本百度网盘| 盲战安志杰在线观看完整版| 农民伯伯下乡2国语版吴健视频| 赖猫的狮子倒影免费观看| 笑傲江湖 第二季| 花城电影| 极品家丁全集| (已屏蔽)| 大江大河3之岁月如歌在线观看| v-hotel啄木鸟第一季全集在线观看| 高清相反的你和我未删减| 麦田 范冰冰| 锁清秋在线观看| 博主:李铁被抓后什么都招了| 美丽的小蜜蜂3| 我为卿狂百度影音| 从奴隶到将军| 祥仔更多大片访问| 电视剧 潜伏| 日本空姐电视剧| 我怕来不及大结局| 大战哥斯拉| 新人类毒医肥尸电影| 武训传免费| 电影《需要爸爸播种美国》女演员还| 见面4秒就合体| 《犯罪现场 Zero》| 爱情珠宝电视剧全集免费观看| 扫黑风暴2021免费播放| 女员工的付出中字1230| 斗罗大陆156集| 禁忌5满天星凯·帕克| 四月一日灵异录| 黎明前的抉择免费观看| 麦乐迪女超人完整版下载| 青盲电视剧全集50| 电影《金悔瓶》徐少强叫什么名字就| 我要买彩票| 新潘金莲龚玥菲免费版| 专列一号剧情| 刘洋金牌 邹敬园银牌| 插曲的痛30集| 中国第一鬼城| 《卷卷初恋》| 妻子丰胸按摩电影在线观看| 木府风云主题曲净土| 周香允《外卖奇遇》| 名创优品指甲油致癌物超标 | 《替夫还债妻子》大结局| 韩国辣舞| 第11个妈妈| 男生女生一起努力愁愁电视剧免费| 你的爱我无力拒绝| 逆风野兽电影在线观看免费| 一品布衣短剧| 战争暴行女囚HD版| 女婿回家| 《唤醒》:凯登·克罗斯| 恶魔少爷爱上我| 五号特工组 电视剧| 韩国美发店的特别待遇2| 芳华解说| 50岁胖女人免费观看电视剧| 有罪之身| 五十玫瑰剧情分集介绍| 女战狼6| 进击的巨人大结局| 369你懂的电影| 妖精的尾巴327| 种树的牧羊人| 牙医赤子板栗免费| 灵与肉台湾| 欲望出租房2 电影| 伦理《法国护士长》2006免费在线观看 | 冕宁火腿| 法国空乘伦理4| 我的行囊| 生死时速| 邓家佳《除却巫山》在线| 电视剧幸福的面条| 侠探杰克2迅雷下载| 《公的浮之手中字一2| 美国三片在线播放免费| 法国《房产销售员》在线观看| 《女人的秘密》电视剧| 宝贝女孩电影免费观看完整版高清| 入室暴行魔免费高清播放| 《猎罪图鉴》第二部| 蜈蚣咒未删减版完整版恐怖电影 | 人间中毒免费观看完整版在线| 爱我几何无减版在线看| 唐朝诡事录电视剧免费观看完整版| 朴亚珍| 午马僵尸电影全集| 爱的阶梯国语版| 义姐不良妈妈第一季动漫全集免费 | 年代秀20120706| 白头神探| 做aj的电视剧免费观看| 打金枝免费| 上瘾未删减版| 需要爸爸播种子电影免费观看| 攀登者在线观看| 欲奴第一季| 马戏小子| 乾少归来短剧免费观看| 金瓶双艳完整版| 《女销售的销售秘密2》| 胡歌推着游本昌走红毯 | 肉肉的小黄车| 狂飙免费观看完整版电视剧 | 赖小子完整版| 熊出没回家过年| 疯狂荷尔蒙6| 少林寺 电影| 我们都是坏孩子1| 仓多真央JUY-970在线播放| 名侦探柯南 影音| 大决战电视剧| 夏家三千金的歌曲| 非你莫属2013| 生死劫杀1946| 国风按摩院第三部| 深夜航班 第二季电视剧| 旺角监狱qvod| 跟部长出差电影| 猎毒人电视剧全集免费观看完整版| 特殊的外卖员| 猛士极品FREEDOM| 铁石心肠泰语版电视剧| 叔母的爱电影免费观看完整版| 艳遇修理工在线播放| 大明风华电视剧在线播放免费| 精灵旅社3| 山河枕全集免费观看| 越南战场满天星版叫什么名字 | 猫屎妈妈| 腹黑总裁:只对我温柔全集免费| 太原电视台新闻频道| 维修师傅的艳遇韩国理论片在线观看| 新流星蝴蝶剑电影| 女教师被入侵| rhts 040| 朋友换麦子6| 大学生在线观看4| 亲爱的热爱的在线观看免费| 东北往事2之黑道风云20年| 绝世齐等闲180集免费版国语| 《法国少女农场》| 种地吧少年第一季免费观看完整版| 包法利夫人完整版在线观看电影| 风过留痕 电视剧 在线观看| 荃湾区| 别墅轮换| 高清《我脑中的橡皮擦》高清完整版 | 红鲨突击电视剧全集免费观看| 《分娩按摩4》播放完整版| 玉米靠什么传播种子| 王牌部队电视剧免费观看| .《奇怪的美容院2》| 小孩身上有白斑图片| 调教已婚女人hd中字| 白镖联盟全集免费播放| 电车魔女| 欢乐颂25集| 法国空乘4在线看观看| 卑贱韩国电影| 碧螺春产自| 欧美电影短发房产女销售| 以死亡游戏为生。全集观看| 朋友的姐姐线观高清2| 法国版《女超人》在线播放| 临时劫案电影免费完整在线观看| 铁拳男人下载| 金堂县| 隐形的帽子在线观看免费高清| 哪吒之魔童降免费观看| 外星人对女忍者| 从你的指尖传出的热情| 敌特在行动在线观看| 法国空乘2018在线观看免费| 龙虾店老板深夜崩溃把店砸了| 新油菜电影在线观看| 搞定岳父| 家事如天电视剧| 泰国暴躁少女航母电影| 漂流欲室快播| 青春荷尔蒙电影2| 《辞职欢送温泉之| 黑人男友| 盗墓笔记剧照| 台湾渔夫的荒野史记免费播放| 刑警队长| 一夜情人| 外卖特邀员| 老阿姨在线观看免费版电视剧 | 春雨高清免费全集观看免费| 电视剧游击兵工厂| 赤板丽《牙医诊所》电影资源| 欲望之火| 亲爱的老师HD中字免费| 新田县| 独孤天下电视连续剧免费观看| 摇滚狂花电视剧免费观看| 舔B拨弄深入抽插上司| 灰姑娘的玻璃| 白鹿范丞丞合唱狂恋| 婚姻攻略免费观看全集| 刀剑乱舞花丸第二季| 普兰县| 40岁阿姨电视剧全集观看 | 牙医姐妹 在线| 新还珠格格电视剧全集免费观看| 顶楼第三季全集免费观看| 高清《花儿与少年》第七季| 新员工入职秘书2| 美国爸爸需要播种电影在线观看| 昨天的月亮| 一个女孩和一个男孩| 欲望的火花免费观看完整版| 我的漂亮妈妈8中字开头7个字答案| 妈妈爱上儿子同学的电影叫什么 | 乱世枭雄1-60集免费观看| 鸭王2下载| 神木丽急诊待遇2| 韩国美发店的特别待遇2| 兴风作浪电影| 变态研讨会| 鹿鼎记ol视频| 《特殊诊所》苍井空| 爱我几何鸿知影院| 妹妹的朋友完整版| 火影忍者论坛52pk| 邯郸大学教室门| 3v1三人一次性体检| overflower全集免费观看| 人间春色电视剧40集免费观看| 凝香劫电视剧40集免费观看| 急诊护士在线| 绝世好爸粤语| 荣誉电视剧| 激战酒店1—5免费| 巡回检察组在线观看全集| 新金银悔5一10普通话| 薄冰电视剧| 复制情人| 雷洛手下猪油仔原型| 美屋之屋6| 寰球地理| 世上只有妈妈好电视剧全集免费 | 厨房激战之战争4中文在线播放 | 《激战后厨1至5集》精彩原创影评:_酋长的女儿2满天星 | 察雅县| 扬门虎将| 监狱女兵免费版| 《刚结婚部长出差的日子》| 弃女归家:家产归我完整版观看| 银魂176| 布拉格空少G版高清免费看| 年轻的妈妈2018| 山谷里的思念| 《部长来家》电影| 韩国情书复古舞| 龙帅归来:都市风云再起全集免费| 强吻还拉丝| 埃及满天星1982| 黄晓明和宋慧乔演过情侣| 繁花在线观看免费版全集高清| 凯莉布鲁克满天星三部曲是哪| 叶问前传| 《痴心劫》理伦片在线观看| 禁忌5| 隐形的帽子在线观看| 脾虚嘴唇有什么症状| 北上电视剧免费| 二对一商务模式2聚集| 巜温泉欺辱人妻动漫在线| 活佛济公3迅雷下载| 风中的火焰剧情分集介绍大结局| 日韩男按摩师性按摩电影| 酒店服务生动漫免费看| 美女制造师| 黑白配大黑鬼国语版免费播放影视大| 和空姐一起的日子下载| 僵尸先生2| 新婚和部长出差高清观看| 幸福的面条片尾曲| 特工迷阵未删减| 插曲的痛60全集免费观看高清| 丁冬影视| 哈尔滨市| 情迷六月花 电影| 金钱帝国 电影| 王牌部队电视剧免费观看| 刚结婚陪部长出差的日剧免费观看第一季| 消失的厨神| 电影《陌生人》| 迷人的小峓子4| 我家有个赵大咪全集| 法国肌肤下的火焰| 塔斯尼帝复仇2成电影6月12| 需要爸爸播种子中字完整版| 妖精在线观看免费高清电视剧大全 | 真探第二季在线观看完整版| 甜蜜家园在线观看完整版| 丰都横店电影城| 女子私人监狱免费完整版观看| 啄木鸟灭火行动| 为人民服务完整版| 金牌销售的秘密3hd中字| 让我为你唱首歌mv| 金梅瓶下载| 欢乐颂1免费观看全集电视剧完整版 | 极度兽性下载| 肢体绣感在线看完整版免费观看| 情爱天空| 家有儿女第四部| 大话西游之月光宝盒粤语| 罗丽莱尔星克《魔术师》免费观看| 小混混们的战争| 水饺皇后未删减| 温柔阿姨2电视剧| 金牌售楼销售的秘密5HD中字| 寂寞护士的引诱在线观看| 神奇宝贝bw110| 牙医姐妹电影完整版| 姜子牙电影免费完整在线观看| 哥布林杀手动漫| jiZZ日本| 岛国中文字幕肉蔻之| 一本色道加勒比海在线| 四方来朝的意思| 韩国三级维修工的艳遇| 政宗君的复仇 动漫| 一仆二主电视剧| 《亲爱的天狐大人》电视剧| 妻子8免费观看完整版高清电视剧 私人航空法国电影完整版在线观看 | 社长的妻子2电视剧免费| 教授和他的女大学生| 电影《美容院的特殊待遇》3演员表| 高中(hsc1v1)校园宿舍| k动漫免费观看第二季| 非诚勿扰2023年最新一期 | 尖刀班的五天五夜| 迅雷哥手版电影| 白峰电影在线观看平台| 恋爱之瘾日剧完整版在线全集免费观| 女女女女女女女女| 因为爱情有多美下载| 罗克星克莱尔所有电影在线观看| 我知道你去年夏天干了什么| 邻家女孩百度影音| 《渔夫的荒野史记》在线观看免费| 电影牙医姊妹完整版免费观看 | 山河令彩蛋| 我喜欢你电视剧第24集免费观看| 急诊护士在线免费观看| 行尸走肉第二季12集| 高清阿尔法未删减| 在线观看离婚前规则| 李彩谭特殊的治疗| 帕丁顿熊2电影| 热辣滚烫免费看| 《倔强退魔师》1-4集免费观看| 善良的妈妈| 女士的品格电视剧免费| 雌雄大盗| 初体验5正版| 3d肉蒲团中文字幕| 远大前程2011| 封神传奇电影| 麻豆《修车艳遇》在线| 连环计中计| 潜龙道全集免费观看| 寻梦环游记(国语版)| 漂亮妈妈7巴字开头叔叔| 史宾机器人 重启| 黑蝴蝶刘敏涛免费观看全集 | 清朝电视剧| 铁十字勋章免费高清完整在线| 集安市| 坏妻子便利店被欺负后的剧情解析| 飞虎出征电影| 漳平市| 塞伦意大利1997地爆天星| 英雄慢走| 亲爱的小孩 电视剧| 女超人麦乐迪无删减版直接观看| 维修工的性生活电影| 唐朝禁宫风月| 坎贝奇在线观看完整| 高傲的妈妈成为我的女人计划| 爱恋2015讲的是什么故事| 火影忍者疾风传720集| 黑白配国语免费观看| 动画版江南style| 高楞青年| 《主人》电影在哪里看| 今夜无人入睡视频免费观看在线| 相助英文版在线观看免费高清 | 现在的是哪一个多闻! ?| 易中天品三国16| 二小放牛郎| 《荣誉守则》在线观看| 喜盈门电影| 魁拔4之梅零落| 爱上特种兵免费观看全集| 双人调情按摩术韩国在线观看| 电影虎口脱险| 军事不当行为未删减版百度云资源 | 张津瑜在线观看| 战狠6免费观看全集| 亲爱的老师6中文版完整版| 不文女学堂 蒙嘉慧| 双人调情按摩术伦理片在线观看| 忍风战队破里剑者| 特殊美容师待遇电影| 人民的名义2在线观看免费完整版| 法国版《少女绣感》| 歼灭天际线的日韩专辑在哪| 朴妮唛迅雷种子| 父母爱情免费观看| 吕剧大全| 维修工工人的艳遇| real在线播放| 秒速5厘米| 移动迷宫3 死亡解药| XL司令全集在线观看免费| 全能少女力挽狂澜短剧 | 香醇绣感2普通话版2023年上映 | 小蜜嫁给了体制内小幸找到了富商| 女员工的付出中字特殊| 两瓣红莲今夜开一池碧水| 高清《朱音落语》电视剧| 少林叛徒| 法国私人助理1982年| 国外插曲的痛免费观看完整版| 跟踪电影| 对不起我爱你国语版全集| 《女教师》在线观看| 将界截取了一小段05| 锄奸电视剧| 扫黑风暴28集免费看| 陆小凤传奇4| 八戒8手机在线看免费播放电视剧大全| 李宇春 新专辑| 寒战2下载| 双肥临门| 大耳朵图图第五部| 都市激情| 《庆余年2》第107集| 张学良新传| 监狱风云之传教士| 牙医姐妹在线播放|