Upload
malik-tauqir-hasan
View
77
Download
1
Embed Size (px)
Citation preview
ENGR. RASHID FARID CHISHTILECTURER,DEE, FET, IIUI
WEEK 11
SEQUENCE DETECTORFIR, IIR FILTER
FPGA Based System Design
Saturday, April 15, 2023
1
www.iiu.edu.pk
MooreModel
Mealy Model
www.iiu.edu.pk Saturday, April 15, 2023
Sequence (111) Detector
2
Moore Model Mealy Model
www.iiu.edu.pk Saturday, April 15, 2023
Sequence (111) Detector
3
S00S00
S10S10
S20S20
S31S31
0
0
00
1
1
11
S0S01/0
S1S1
0/0
1/0
S2S2
0/0
0/0
1/1
A digital filter is a system that performs mathematical algorithm that operates on a digital input signal to improve output signal for the purpose of achieving a filter objective such as: separation of signals that have been combined restoration of signals that have been distorted
Digital filter mostly operates on digitized analog signals or just numbers, representing some variable, stored in a computer memory
A simplified block diagram of a real-time digital filter, with analog input and output signals, is given below.
www.iiu.edu.pk Saturday, April 15, 2023
Digital Filter
4
A low-pass filter is a filter that passes low-frequency signals but attenuates
(reduces the amplitude of) signals with frequencies that are higher than the cut off frequency.
A high-pass filter, is a filter that passes signals containing high frequencies, but
attenuates frequencies lower than the filter's cut off frequency. A band-pass filter is a device that passes frequencies within a certain range and
rejects (attenuates) frequencies outside that range. A band-stop filter or band-rejection filter is a filter that passes most frequencies
unaltered, but attenuates those in a specific range to very low levels.www.iiu.edu.pk Saturday, April 15, 2023
Digital Filter Types
5
A Finite Impulse Response (FIR) filter is a type of a signal processing filter whose impulse response ( or response to any finite length input ) is of finite duration , because it settles to zero in finite time.
The impulse response of an Nth-order discrete - time FIR filter lasts for N+1 samples, and then dies to zero. For a discrete-time FIR filter, the output is a weighted sum of the current and a finite number of previous input values.
The operation is described by the following equation, which defines the output sequence y[n] in terms of its input sequence x[n] :
y[n] = b0 x[n] + b x[n-1] + ................ +b x[n-N]
y[n] = (Summation i=0 to N ) bi x[n-i]
x[n] = input signal, y[n] = output signal, bi = filter co-efficients, N = filter order
BLOCK DIAGRAM
OF DIGITAL
FIR FILTER
www.iiu.edu.pk Saturday, April 15, 2023
Digital FIR (Finite Impulse Response) Filter
6
5-Tap FIR Filter Example:
y[n] = h0*x[n] + h1*x[n-1] + h2*x[n-2] + h3*x[n-3]+ h4*x[n-4]
The critical path (or the minimum time required for processing a new sample) is limited by 1 multiply and 4 add times. Thus the “sample period” (or the “sample frequency”) is given by:
Tsample ≥ TM + 4TA Here TM is multiplication time
fsample ≤ 1/ (TM + 4TA) TA is addition time
www.iiu.edu.pk Saturday, April 15, 2023
Digital FIR (Finite Impulse Response) Filter
7
++ ++++ ++ ++y[n]
x[n] x[n-1] x[n-2] x[n-3] x[n-4]
h0 h1 h2 h3 h4
Z-1Z-1Z-1Z-1Z-1Z-1Z-1Z-1
// Module uses multipliers to implement an FIR filter module FIR_filter( input signed [15:0] x, input clk, output reg signed [31:0] yn ); reg signed [15:0] xn [4:0]; wire signed [31:0] v; // Coeefficients of the filter wire signed [15:0] h0 = 16'h0325; wire signed [15:0] h1 = 16'h1e00; wire signed [15:0] h2 = 16'h3DB6; wire signed [15:0] h3 = 16'h1e00; wire signed [15:0] h4 = 16'h0325; // Implementing filters using multiplication and addition operators assign v = (h0*xn[0] + h1*xn[1] + h2*xn[2] + h3*xn[3] + h4*xn[4]); always @(posedge clk) begin xn[0] <= x; xn[1] <= xn[0]; xn[2] <= xn[1]; xn[3] <= xn[2]; xn[4] <= xn[3]; yn <= v; // Registering the output endendmodule
www.iiu.edu.pk Saturday, April 15, 2023
FIR Filter: Verilog Programming
8
module Test_FIR_filter;reg signed [15:0] x; reg clk; wire signed [31:0] yn; initial $monitor ( $time, "," , x , "," , yn);FIR_filter FIR1(x, clk, yn); initial begin clk = 0; repeat (250) #5 clk = ~clk; endinitial begin x = 0; repeat (5) #100 x = x+100;
repeat (5) #100 x = x-100; endendmodule
input output response
www.iiu.edu.pk Saturday, April 15, 2023
FIR Filter: Test Bench
9
This example implements a simple single tap infinite impulse response (IIR) filter in RTL Verilog and writes its stimulus to demonstrate coding of a design with feedback registers. The design implements the following equation:
y [n] = 0.5y[n-1] + x[n] The multiplication by 0.5 is implemented by an arithmetic shift right by 1 operation. A register y _reg realizes y [n -1] in the feedback path of the design, thus needing
reset logic. The reset logic is implemented as an active-low asynchronous reset. The module has 16-bit data x, clock clk, reset rst_n as inputs and the value of y as
output. The module IIR has two procedural blocks. One block models combinational logic
and the other sequential. The block that models combinational logic consists of an adder and hard-wired shifter.The adder adds the input data x in shifted value of y_reg.
The output of the combinational cloud is assigned to y. The sequential block latches the value of y in y_reg. The RTL Verilog code for the module IIR is given next:
www.iiu.edu.pk Saturday, April 15, 2023
IIR Filter
10
// Implimenting FIR Filter y[n] = 0.5y[n-1] + x[n]module iir( input signed [15:0] Xn, input clk, rst_n, output reg signed [31:0] Yn); reg signed [31:0] Yn_1; always @(Yn_1 or Xn) Yn = (Yn_1 >>> 1) + Xn; // combinitional logic block always @(posedge clk or negedge rst_n) begin // sequential logic block if (!rst_n) Yn_1 <= 0; else Yn_1 <= Yn; endEndmodulemodule stimulus_irr;
reg [15:0] X; reg CLK, RST_N;wire [31:0] Y;iir IRR0(X, CLK, RST_N, Y); // instantiation of the moduleinitial begin #5 RST_N = 0; #2 RST_N = 1; endinitial begin X = 0; repeat (5) #20 X = X+1;
repeat (5) #20 X = X-1; endinitial begin CLK = 0; repeat (30) #10 CLK = ~CLK; endinitial $monitor($time, " , %d, %d", X, Y);
endmodule
www.iiu.edu.pk Saturday, April 15, 2023
IIR Filter: Verilog Programming
11
x[n]
0.5 Z-1Z-1
y[n]
y[n-1]
++
www.iiu.edu.pk Saturday, April 15, 2023
IIR Filter: Verilog Programming
12