MICROCHIP Median Filter App User Guide

June 13, 2024
MICROCHIP

MICROCHIP Median Filter App User Guide
Microchip Logo

Introduction

The Median Filter is a nonlinear digital filtering technique, often used to remove glitches from an analog signal.

The Median Filter is used to remove the noise from a signal. It forms a window of N (this IP supports N = 5, 7, and 9) adjacent samples and finds the median of these samples.

Examples:

  • If N = 9 and {15, 13, 25, 18, 35, 46, 61, 26, 9} is a set of input samples, then median is 25
  • If N = 7 and {12, 11, 27, 19, 9, 6, 3} is a set of input samples, then median is 11
  • If N = 5 and {15, 15, 12, 11, 10} is a set of input samples, then median is 12

Summary The following table provides a summary of the Median filter characteristics.

Table 1. Median Filter Characteristics

Core Version This document applies to Median Filter v4.2.
Supported Device Families
  • PolarFire® SoC
  • PolarFire
  • RTG4™
  • IGLOO® 2
  • SmartFusion® 2

Supported Tool Flow| Requires Libero® SoC v11.8 or later releases.
Licensing| Complete encrypted RTL code is provided for the core, enabling the core to be instantiated with SmartDesign. Simulation, Synthesis, and Layout are performed with Libero software. Median Filter is licensed with encrypted RTL that must be purchased separately. For more information, see Median Filter.

Features

Median Filter has the following key features:

  • Finds the median of a set of input samples
  • Window sizes are adjustable (5, 7, and 9)

Implementation of IP Core in Libero Design Suite

IP core must be installed to the IP Catalog of the Libero SoC software. This is done automatically through the IP Catalog update function in the Libero SoC software, or the IP core is manually downloaded from the catalog. Once the IP core is installed in the Libero SoC software IP Catalog, the core is configured, generated, and instantiated within the SmartDesign tool for inclusion in the Libero project list.

Device Utilization and Performance

The following table lists the device utilization used for Median Filter.

Device Details| Resources| **Performance (MHz)| RAMs| Math Blocks| Chip Globals
---|---|---|---|---|---
Family| Device| Window Size| LUTs| DFF| LSRAM| μSRAM**
| | Window-5| 630| 240| 200| 0| 0| 0| 0
PolarFire® SoC| MPFS250T| Window-7| 999| 294| 200| 0| 0| 0| 0
Window-9| 1161| 384| 200| 0| 0| 0| 0
| | Window-5| 630| 240| 200| 0| 0| 0| 0
PolarFire| MPF300T| Window-7| 1067| 294| 200| 0| 0| 0| 0
Window-9| 1190| 384| 200| 0| 0| 0| 0
| | Window-5| 630| 240| 200| 0| 0| 0| 0
SmartFusion® 2| M2S150| Window-7| 1084| 294| 200| 0| 0| 0| 0
Window-9| 1222| 384| 200| 0| 0| 0| 0

Important IconImportant:

  1. The data in this table is captured using typical synthesis and layout settings. CDR reference clock source was set to Dedicated with other configurator values unchanged.
  2. Clock is constrained to 200 MHz while running the timing analysis to achieve the performance  numbers

Functional Description

This section describes the implementation details of the Median Filter block. The following figure shows the system level block diagram of the Median Filter

Figure 1-1. System-Level Block Diagram of Median Filter
Functional Description

Moving Window

The input data is sampled at every rising edge of dec_clk_i. This submodule takes the input samples and creates windows of fixed length (5 or 7 or 9 samples each). The window size depends on the configuration parameter g_WINDOW_SIZE. If we consider g_WINDOW_SIZE as 7, then {1st, 2nd, 3rd, 4th, 5th, 6th, 7th} samples will form a window, {2nd, 3rd, 4th, 5th, 6th, 7th, 8th} samples will form the next window and so on. These windows are connected as the input to median submodule.

After the reset signal is de-asserted, the window will have all zeros. The input data_i is sampled at rising edge of dec_clk_i.

Median

The median submodule finds the median value of each window and gives it as the output. At every rising edge of dec_clk_i the median output is updated.

Median Filter Parameters and Interface Signals

This section discusses the parameters in the Median Filter GUI configurator and I/O signals.

Configuration Settings

The following table lists the description of the configuration parameters used in the hardware implementation of Median Filter. These are generic parameters and can be varied as per the requirement of the application.

Table 2-1. Configuration Parameters

Signal Name Range Description
g_WINDOW_SIZE 5, 7, 9 Describes the size of the window
g_DATA_WIDTH Describes the input and output data width

Inputs and Outputs Signals (Ask a Question)

The following table lists the input and output ports of Median Filter.

Table 2-2. Inputs and Outputs of Median Filter

Signal Name Direction Width Description
reset_i Input 1bit Active low asynchronous reset signal to design
sys_clk_i Input 1bit System clock
dec_clk_i Input 1bit Decimated clock input – data is sampled at the rising

edge of this signal
en_i| Input| 1bit| Enables signal
data_i| Input| g_DATA_WIDTH bits| Data input
data_o| Output| g_DATA_WIDTH bits| Median data output

Timing Diagrams

This section discusses Median Filter timing diagrams.

The following figure shows the timing diagram of Median Filter.

Figure 3-1. Median Filter Timing Diagram
Timing Diagrams

After the reset signal is de-asserted, the window will have all zeros. The first input sample will enter the window at the first rising edge of dec_clk_i, the second sample will enter the window at the second rising edge of dec_clk_i and so on.

For the timing diagram shown in the above-mentioned figure, after the reset signal is de-asserted, the window will be {0,0,0,0,0,0,0,0,0}

At first rising edge of dec_clk_i , data_i is 0, the window will be{0,0,0,0,0,0,0,0,0}

At second rising edge of dec_clk_i,data_i is 1,the window will be{0,0,0,0,0,0,0,0,1}

At third rising edge of dec_clk_i,data_i is 2,the window will be{0,0,0,0,0,0,0,0,1,2} and so on.

Testbench

A unified test-bench is used to verify and test Median Filter called as user test-bench. Testbench is provided to check the functionality of the Median Filter IP

Simulation

The following steps describe how to simulate the core using the testbench:

  1. Open the Libero SoC application, click Libero SoC Catalog tab, expand Solutions-MotorControl

  2. Double-click Median Filter, and then click OK. The documentation associated with the IP are listed under Documentation
    Important IconImportant: If you do not see the Catalog tab, navigate to View Windows menu and click Catalog to make it visible.
    Figure 4-2. Simulating Pre-Synthesis Design
    Testbench

  3. On the Stimulus Hierarchy tab, right-click testbench (median_filter_tb.v), point to Simulate Pre-Synth Design , and then click Open Interactively.

Important IconImportant: If you do not see the Stimulus Hierarchy tab, navigate to View > Windows menu and click Stimulus Hierarchy to make it visible.

Figure 4-2. Simulating Pre-Synthesis Design
Testbench

Important IconImportant: If the simulation is interrupted due to the runtime limit specified in the .do file, use the run -all command to complete the simulation.

Revision History

The revision history describes the changes that were implemented in the document. The changes are listed by revision, starting with the most current publication.

Table 5-1. Revision History

Revision Date Description
A 03/2023 The following is the list of changes in revision A of the

document:

  • Migrated the document to the Microchip template.
  • Updated the document number to DS50003502A from 50200845.
  • Added 3. Timing Diagrams.
  • Added 4. Testbench.

1.0| 11/2018| Revision 1.0 was the first publication of this document.

Microchip FPGA Support

Microchip FPGA products group backs its products with various support services, including Customer Service, Customer Technical Support Center, a website, and worldwide sales offices. Customers are suggested to visit Microchip online resources prior to contacting support as it is very likely that their queries have been already answered.

Contact Technical Support Center through the website at www.microchip.com/support. Mention the FPGA Device Part number, select appropriate case category, and upload design files while creating a technical support case. Contact Customer Service for non-technical product support, such as product pricing, product upgrades, update information, order status, and authorization.

  • From North America, call 800.262.1060
  • From the rest of the world, call 650.318.4460
  • Fax, from anywhere in the world, 650.318.8044

Microchip Information

The Microchip Website

Microchip provides online support via our website at www.microchip.com/. This website is used to make files and information easily available to customers. Some of the content available includes:

  • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software
  • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip design partner program member listing
  • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives

Product Change Notification Service

Microchip’s product change notification service helps keep customers current on Microchip products. Subscribers will receive email notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest.

To register, go to www.microchip.com/pcn and follow the registration instructions.

Customer Support

  • Users of Microchip products can receive assistance through several channels:
  • Distributor or Representative
  • Local Sales Office
  • Embedded Solutions Engineer (ESE)
  • Technical Support

Customers should contact their distributor, representative or ESE for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in this document.

Technical support is available through the website at: www.microchip.com/support

Microchip Devices Code Protection Feature

Note the following details of the code protection feature on Microchip products:

  • Microchip products meet the specifications contained in their particular Microchip Data Sheet.
  • Microchip believes that its family of products is secure when used in the intended manner, within operating specifications, and under normal conditions.
  • Microchip values and aggressively protects its intellectual property rights. Attempts to breach the code protection features of Microchip product is strictly prohibited and may violate the Digital Millennium Copyright Act.
  • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not mean that we are guaranteeing the product is “unbreakable”. Code protection is constantly evolving. Microchip is committed to continuously improving the code protection features of our products.

Legal Notice

This publication and the information herein may be used only with Microchip products, including to design, test, and integrate Microchip products with your application. Use of this information in any other manner violates these terms. Information regarding device applications is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. Contact your local Microchip sales office for additional support or, obtain additional support at www.microchip.com/en-us/support/ design-help/client-support-services.

THIS INFORMATION IS PROVIDED BY MICROCHIP “AS IS”. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.

IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP’S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION.

Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unless otherwise stated.

Trademarks

The Microchip name and logo, the Microchip logo, Adaptec, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, and ZL are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, IntelliMOS, Inter-Chip Connectivity, JitterBlocker, Knob-on-Display, KoD, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-CE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-I.S., storClad, SQI, SuperSwitcher,

SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, Trusted Time, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.

The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks of

Microchip Technology Inc. in other countries.

GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries.

All other trademarks mentioned herein are property of their respective companies.

© 2023, Microchip Technology Incorporated and its subsidiaries. All Rights Reserved.

ISBN: 978-1-6683-2141-6

Quality Management System

For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.

Worldwide Sales and Service

AMERICAS

Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
www.microchip.com/support
Web Address:
www.microchip.com
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Austin, TX
Tel: 512-257-3370
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Novi, MI
Tel: 248-848-4000
Houston, TX
Tel: 281-894-5983
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Tel: 317-536-2380
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Tel: 951-273-7800
Raleigh, NC
Tel: 919-844-7510
New York, NY
Tel: 631-435-6000
San Jose, CA
Tel: 408-735-9110
Tel: 408-436-4270
Canada – Toronto
Tel: 905-695-1980
Fax: 905-695-2078

ASIA/PACIFIC

Australia – Sydney
Tel: 61-2-9868-6733
China – Beijing
Tel: 86-10-8569-7000
China – Chengdu
Tel: 86-28-8665-5511
China – Chongqing
Tel: 86-23-8980-9588
China – Dongguan
Tel: 86-769-8702-9880
China – Guangzhou
Tel: 86-20-8755-8029
China – Hangzhou
Tel: 86-571-8792-8115
China – Hong Kong SAR
Tel: 852-2943-5100
China – Nanjing
Tel: 86-25-8473-2460
China – Qingdao
Tel: 86-532-8502-7355
China – Shanghai
Tel: 86-21-3326-8000
China – Shenyang
Tel: 86-24-2334-2829
China – Shenzhen
Tel: 86-755-8864-2200
China – Suzhou
Tel: 86-186-6233-1526
China – Wuhan
Tel: 86-27-5980-5300
China – Xian
Tel: 86-29-8833-7252
China – Xiamen
Tel: 86-592-2388138
China – Zhuhai
Tel: 86-756-3210040

ASIA/PACIFIC

India – Bangalore
Tel: 91-80-3090-4444
India – New Delhi
Tel: 91-11-4160-8631
India – Pune
Tel: 91-20-4121-0141
Japan – Osaka
Tel: 81-6-6152-7160
Japan – Tokyo
Tel: 81-3-6880- 3770
Korea – Daegu
Tel: 82-53-744-4301
Korea – Seoul
Tel: 82-2-554-7200
Malaysia – Kuala Lumpur
Tel: 60-3-7651-7906
Malaysia – Penang
Tel: 60-4-227-8870
Philippines – Manila
Tel: 63-2-634-9065
Singapore
Tel: 65-6334-8870
Taiwan – Hsin Chu
Tel: 886-3-577-8366
Taiwan – Kaohsiung
Tel: 886-7-213-7830
Taiwan – Taipei
Tel: 886-2-2508-8600
Thailand – Bangkok
Tel: 66-2-694-1351
Vietnam – Ho Chi Minh
Tel: 84-28-5448-2100

EUROPE

Austria – Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark – Copenhagen
Tel: 45-4485-5910
Fax: 45-4485-2829
Finland – Espoo
Tel: 358-9-4520-820
France – Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Germany – Garching
Tel: 49-8931-9700
Germany – Haan
Tel: 49-2129-3766400
Germany – Heilbronn
Tel: 49-7131-72400
Germany – Karlsruhe
Tel: 49-721-625370
Germany – Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Germany – Rosenheim
Tel: 49-8031-354-560
Israel – Ra’anana
Tel: 972-9-744-7705
Italy – Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Italy – Padova
Tel: 39-049-7625286
Netherlands – Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Norway – Trondheim
Tel: 47-72884388
Poland – Warsaw
Tel: 48-22-3325737
Romania – Bucharest
Tel: 40-21-407-87-50
Spain – Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Sweden – Gothenberg
Tel: 46-31-704-60-40
Sweden – Stockholm
Tel: 46-8-5090-4654
UK – Wokingham
Tel: 44-118-921-5800
Fax: 44-118-921-5820

Microchip Logo

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals