{"id":25178,"date":"2023-10-30T12:47:04","date_gmt":"2023-10-30T11:47:04","guid":{"rendered":"https:\/\/demdlx704as001.ad.harman.com\/?post_type=documentor-sections&#038;p=25178"},"modified":"2024-06-25T15:31:03","modified_gmt":"2024-06-25T13:31:03","slug":"fira-mimo-3","status":"publish","type":"post","link":"https:\/\/audioworx.transfunnel.co\/old\/?p=25178","title":{"rendered":"FIRA MIMO"},"content":{"rendered":"<p><span style=\"font-family: 'times new roman', times, serif;\">FIRA MIMO audio object is a group of FIR filter banks associated with each input and output. FIRA stands for \u201cfir accelerator\u201d and it indicates that the underlying implementation uses a hardware accelerator. MIMO stands for \u201cmulti-input multi output\u201d indicating that each output is the summation of one or more FIR filtered inputs.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">FIRA MIMO can be used for various applications like individual sound zones etc.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\"><em><strong>Use Case:<\/strong> This audio object can be deployed whenever the audio requires the dual rate MIMO FIR filters taking into consideration the data pipeline delay and other limitations.<br \/>\nMore than one instance of FIRAMIMO also can be run in the same core .<\/em><\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">This AO supports in-place computation based on the core type.<\/span><\/p>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">FIRA MIMO Properties<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">Below table describes about the <span class=\"bluet_tooltip tooltipy-kw tooltipy-kw-6210\" data-tooltip=\"6210\">FIRA<\/span>MIMO audio object properties and functionality.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\"><img fetchpriority=\"high\" decoding=\"async\" width=\"439\" height=\"438\" class=\"wp-image-25144\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-63.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/p>\n<table style=\"width: 80.0658%;\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 17.6077%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Properties<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 76.2259%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.6077%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong># of Audio In<\/strong><\/span><\/td>\n<td style=\"width: 76.2259%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Enter the input value.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 1 to 20<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">The default value is set to 4.<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.6077%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong># of Audio Out<\/strong><\/span><\/td>\n<td style=\"width: 76.2259%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Enter the output value.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 1 to 64<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">The default value is set to 4.<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.6077%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Number of taps for Hi filters<\/strong><\/span><\/td>\n<td style=\"width: 76.2259%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">The number of filter coefficients (taps) for the high-rate path is configured using the <em>m_NumElements<\/em>. All channels in the high-rate path use the same number of taps.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 384 to 4096<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">The default value is set to 384.<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.6077%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Display Name<\/strong><\/span><\/td>\n<td style=\"width: 76.2259%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Display name of the FIRAMIMO\u00a0 audio object in signal flow design. It can be changed based on the intended usage of the object.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Mode<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">There are no modes available for FIRA MIMO.<\/span><\/p>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Additional Parameters<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">Below table describes the FIRA MIMO additional parameters.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\"><img decoding=\"async\" class=\"wp-image-25145\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-program-description-au-4.png\" alt=\"A screenshot of a computer program Description automatically generated\" width=\"374\" height=\"366\" \/><\/span><\/p>\n<table style=\"width: 96.9672%;\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Parameter<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 78.6996%;\" colspan=\"2\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Max delay for high-rate filters<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Length of delay line for high-rate path.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 2048<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 0<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint32_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img decoding=\"async\" width=\"286\" height=\"418\" class=\"wp-image-25146\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-64.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Taps for low-rate filters<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Number of taps for low-rate filters. All channels in the low-rate path use the same number of taps which can be different from high rate.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 512 to 2048<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 512<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint32_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"286\" height=\"395\" class=\"wp-image-25147\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-65.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Coefficient format<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Filter coefficient data format.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 2<\/span>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">0: 32-bit floating point coefficients<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">1: IEEE 16-bit floating point coefficients<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">2: 16-bit fixed point coefficients<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 0<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"282\" height=\"397\" class=\"wp-image-25148\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-66.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Down sampling Factor<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Down sampling factor.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 1<\/span>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">0: Down sampling factor of 4<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">1: Down sampling factor of 16<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 1<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"286\" height=\"420\" class=\"wp-image-25149\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-67.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Conf matrix high<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Configuration matrix for high-rate filters.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Dimension 1: Input of size 20 or number of input channels in SFD whichever is less.<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Dimension 2: Output of size 64 or number of output channels in SFD whichever is less.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Value:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 1<\/span>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">0: FIR not present<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">1: FIR present<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 0<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"292\" class=\"wp-image-25150\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-calculator-description-automati-1.png\" alt=\"A screenshot of a calculator Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Conf matrix low<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Configuration matrix for low-rate filters.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Dimension 1: Input of size 20 or number of input channels in SFD whichever is less.<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Dimension 2: Output of size 64 or number of output channels in SFD whichever is less.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Value:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 1<\/span>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">0: FIR not present<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">1: FIR present<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 0<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"388\" class=\"wp-image-25151\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-68.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Max Processing Size<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\">\n<p><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">When 2 or more filters are enabled on an input channel, FIRAMIMO combines them and submits as one job to the accelerator. Max Processing Size is used as the max limit when combining.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">For example, when there are 6 filters enabled on an input channel and Max Processing Size is set to 4, FIRAMIMO submits the first job for 4 filters and second job with 2 filters.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 2 to 8<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 4<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"410\" class=\"wp-image-25152\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-69.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Enable Cycles Measurement<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Enable\/Disable realtime accelerator mcps (million cycles per second). When enabled, Average and Max mcps are available to be read as tuning parameters in sate variable explorer.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Range: 0 to 1<\/span>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">0: Disable<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">1: Enable<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Default: 0<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">Data Type: uint8_t<\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 43.0796%;\"><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" width=\"281\" height=\"420\" class=\"wp-image-25153\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-graph-description-automatically-1.png\" alt=\"A screenshot of a graph Description automatically generated\" \/><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 20.7575%;\"><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\"><strong>Accelerator Configuration<\/strong><\/span><\/td>\n<td style=\"width: 35.62%;\"><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">Select which among the available FIR hardware accelerator to use for the FIR processing.<\/span><\/p>\n<ul>\n<li><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">0: Accelerator 1 (Default)<\/span><\/li>\n<li><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">1: Accelerator 2<\/span><\/li>\n<li><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">2: Both Accelerators<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">Range: 0 to 2<\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">Default: 0<\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">Data Type: uint8_t<\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">On ADSP-21593, when this configuration is set to Accelerator 1, only the first accelerator will be used, when set to Accelerator 2, only the second accelerator will be used, and when set to Both Accelerators, both available FIR accelerators will be used with almost equal number of filters processed by both accelerators.<\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">When both hardware accelerators are used:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">The average and maxixmum mcps of both the accelerators shall be individually readable from the SV explorer by enabling the &#8220;enable cycles measurement&#8221; additional configuration,\u00a0<\/span><\/li>\n<li><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">Additional memory records corresponding to the second accelerators input, output and filter coefficient buffers will be created with their labels containing the prefix &#8220;(Acc 2)&#8221;. This is detailed in the section &#8220;Memory Allocation Considerations for SHARC ADSP-21593 Platform in Dual Accelerator Mode&#8221;.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 12pt; font-family: 'times new roman', times, serif;\">On DSPs with only a single accelerator such as the ADSP-21569 (GUL), selection of accelerator configuration will be available, however, all filtering jobs will be processed by the only available FIR accelerator.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif; font-size: 12pt;\">\u00a0<\/span><\/td>\n<td style=\"width: 43.0796%;\">\n<p><span style=\"font-family: 'times new roman', times, serif;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-25942\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2022\/12\/Firamimo_AcceleratorConfiguration.png\" alt=\"\" width=\"286\" height=\"723\" \/><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-26023\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2022\/12\/AccMCPS_21593_SVExplorer.png\" alt=\"\" width=\"521\" height=\"389\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Tuning Parameters<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">For each filter combination in FIRA MIMO, this object exposes these two tuning parameters to the GT.<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 91.4079%;\" border=\"1\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 11.4315%;\"><strong>Mode<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 82.5506%;\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.4315%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Mode<\/strong><\/span><\/td>\n<td style=\"width: 82.5506%;\"><span style=\"font-family: 'times new roman', times, serif;\">The mode of each filter can be set to:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Normal<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Bypass<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Off<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: 'times new roman', times, serif;\">This parameter is of the category \u201cState\u201d and therefore, the configurations done for Filter modes will be transferred to the device only after the device is connected.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 11.4315%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Coefficients<\/strong><\/span><\/td>\n<td style=\"width: 82.5506%;\"><span style=\"font-family: 'times new roman', times, serif;\">Filter coefficients can be imported from .csv files. The filter taps set in the GTT must match the taps of the filter being imported from the .csv file.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Control Parameters<\/span><\/strong><\/p>\n<p>There are no control parameters available for FIRA MIMO.<\/p>\n<p class=\"heading\"><strong><span style=\"font-size: 18pt; font-family: 'times new roman', times, serif;\">Memory Allocation Considerations for SHARC ADSP-21593 Platform in Dual Accelerator Mode<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">When using the FIRAMIMO object on a SHARC ADSP-21593 in dual accelerator mode, careful memory record placement consideration is required to maximize the number of FIR filters that can be processed. The hardware FIR accelerators in the DSP perform operations in parallel with the cores, causing memory access bottleneck due to the increase in the number of parallel memory accesses to the external memory (DDR3). This can be attributed to the page management overheads incurred by the Dynamic Memory Controller (DMC) as described in the <span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/www.analog.com\/media\/en\/technical-documentation\/application-notes\/ee412v02.pdf\">EE-412 document<\/a><\/span>, which adversely impacts the FIR accelerator performance, limiting the total number of FIR filters that can be processed by the AO. In order to mitigate the issue and improve the processing capacity of the accelerators, it is recommended that the input, output and filter coefficient buffers accessed by each accelerator are placed in dedicated DDR3 memory banks.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">To enable placement of the buffers in separate banks, when the &#8220;Accelerator Configuration&#8221; additional configuration parameter is set to 2 (Both Accelerators), a new set of additional memory records with the prefix &#8220;(Acc 2)&#8221; are created to accommodate the second FIR accelerator&#8217;s input, output and coefficient buffers. The following figure shows the Memory Latency window in GTT highlighting the newly created memory records:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-28822\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2022\/12\/W_DualAcc_MemRecs.png\" alt=\"\" width=\"1144\" height=\"991\" \/><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">In this configuration, following are the memory records accessed by the accelerators:<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 94.8608%; height: 192px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 10px;\">\n<td class=\"table-head\" style=\"width: 5.13053%; text-align: center; height: 10px;\"><\/td>\n<td class=\"table-head\" style=\"width: 25.145%; text-align: center; height: 10px;\"><strong>Hardware FIR Accelerator 1<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 29.8601%; text-align: center; height: 10px;\"><strong>Hardware FIR Accelerator 2<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 53.0202%; text-align: center; height: 10px;\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>1<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Input Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Input Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">High rate input buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>2<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Lowrate Input Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Lowrate Input Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Low rate input buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>3<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Parameter Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Parameter Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Filter coefficient buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>4<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Downsampling Intermediate Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Downsampling Intermediate Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Downsampling filter output buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>5<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Upsampling 1 Input Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Upsampling 1 Input Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Stage 1 upsampling filter input buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>6<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Upsampling 2 Input Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Upsampling 2 Input Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Stage 2 upsampling filter input buffers<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 5.13053%; text-align: center; height: 26px;\"><strong>7<\/strong><\/td>\n<td style=\"width: 25.145%; height: 26px;\">Intermediate Temp Memory<\/td>\n<td style=\"width: 29.8601%; height: 26px;\">(Acc 2) Intermediate Temp Memory<\/td>\n<td style=\"width: 53.0202%; height: 26px;\">Temporary memory for coefficient format conversion<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: 'times new roman', times, serif;\">As per the recommendation, notice in the above figure that the memory records accessed by accelerator 1 are all placed in Level 7 memory latency, and the memory records accessed by accelerator 2 are all placed in Level 8 memory latency. It is expected that the platform maps these memory latency levels to un-cached memory regions that are in separate DDR3 memory banks in order to fully realize the separation of buffers.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">At 512 sample block length, with 2k-tap high rate filters, following are the improvements observed in the total number of filters that can be processed by the FIRAMIMO AO in single vs dual accelerator modes:<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">All accelerator buffers placed in Level 5 latency: 20% (32 filters to 40 filters).<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Accelerator 1 buffers in Level 7 and accelerator 2 buffers in Level 8, mapped to separate DD3 banks: ~90% (32 filters to 60 filters).<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: 'times new roman', times, serif;\">It is important to note that the separation of the memory records for the hardware FIR accelerators, however, increases the core MIPS consumption by about 30-60% in both single and dual accelerator modes due to additional buffer movement and summation operations done by the core to reduce the memory access overheads.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Note:<\/p>\n<p>FIRAMIMO gives clear output in GUL, IVP but is distorted on HDP+ platform when &#8216;Input memory&#8217; and &#8216;Upsampling1 input memory&#8217; records are kept in Level4 or Level5, due to cache flush issue on HDP+ platform. The workaround is to keep these two memory records in Level1 to Level3.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29737\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/10\/firamimo_mem_records-1.png\" alt=\"\" width=\"1351\" height=\"557\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FIRA MIMO audio object is a group of FIR filter banks associated with each input and output. FIRA stands for \u201cfir accelerator\u201d and it indicates that the underlying implementation uses a hardware accelerator. MIMO stands for \u201cmulti-input multi output\u201d indicating that each output is the summation of one or more FIR filtered inputs. FIRA MIMO [&hellip;]<\/p>\n","protected":false},"author":107,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[]},"categories":[315],"tags":[],"coauthors":[292],"_links":{"self":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25178"}],"collection":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/users\/107"}],"replies":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25178"}],"version-history":[{"count":18,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25178\/revisions"}],"predecessor-version":[{"id":29755,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25178\/revisions\/29755"}],"wp:attachment":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25178"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcoauthors&post=25178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}