aie_iir_1b.jl
is a Julia script which can design and generate the required SIMD coefficients for an arbitrary IIR filter.
In its pristine state, the user parameters are as shown below:
first_set = true; # true: 1st set; false: 2nd set
if first_set
fp = 10.0e6 # passband frequency
coeff_file_suffix = "a" # file suffix to distinguish different coefficient sets
# with the same architecture
else
fp = 20.0e6 # passband frequency
coeff_file_suffix = "b" # 2nd set of coefficients
end # if first_set
fs = 100.0e6 # sampling frequency
p = 6 # no. of poles
rp = 0.1 # passband ripple (dB)
rs = 80.0 # stopband attenuation (dB)
N = 256 # no. of samples for impulse response
show_plots = true # display plots?
write_cmatrix = true # write C matrix to files?
write_impulse = true # write impulse response?
Start Julia and run the script using the following commands:
julia> cd("{specify_path_to_aie_iir_1b.jl}")
julia> include("aie_iir_1b.jl")
This will plot the filter characteristics and generate three coefficient files (C[1~3]a.h) as there are 6 poles in the filter.
The kernel code will remain the same, but the ADF graph and testbench must be slightly modified to accommodate the additional sections.
Move the generated *.dat
files into the data
directory and the generated *.h
files (coefficient files) into the src
directory.