groupUrl: https://ez.analog.com/dsp/sharc-processors/
Analog.com Analog Dialogue Wiki English
Analog.com Analog Dialogue Wiki 简体中文
EngineerZone
EngineerZone
  • Site
  • User
  • Site
  • Search
  • User
EngineerZone
EngineerZone
  • Log in
  • Site
  • Search
  • Log in
  • Home
  • Blogs ⌵
  • Browse ⌵
    • All Groups
    • All Members
  • Support ⌵
    • 3D ToF Depth Sensing
    • A2B
    • Aerospace and Defense (ADEF)
    • Amplifiers
    • Analog Microcontrollers
    • Analysis Control Evaluation (ACE) Software
    • Audio
    • Clock and Timing
    • Condition-Based Monitoring
    • Data Converters
    • Design Tools and Calculators
    • Direct Digital Synthesis (DDS)
    • Embedded Vision Sensing
    • Energy Monitoring and Metering
    • FPGA Reference Designs
    • Industrial Ethernet
    • Interface and Isolation
    • Low Power RF Transceivers
    • MEMS Inertial Sensors
    • Motor Control Hardware Platforms
    • Optical Sensing
    • Power Management
    • Precision Technology Signal Chains
    • Processors and DSP
    • Reference Circuits
    • RF and Microwave
    • Signal Chain Power (SCP)
    • Switches/Multiplexers
    • Temperature Sensors
    • Video
    • Wide Band RF Transceivers
    • Wireless Sensor Networks Reference Library
  • About EZ
  • More
  • Cancel
  • 主页
  • 浏览 ⌵
    • 收件箱
    • 个人设置
    • 会员
    • 专区列表
  • 论坛专区 ⌵
    • 放大器专区
    • 精密转换器专区
    • 音频专区
    • ADE电能计量专区
    • MEMS和传感器专区
    • 接口和隔离专区
    • Power 中文专区
    • ADUC微处理器专区
    • 锁相环专区
    • 开关和多路复用器专区
    • 温度传感器
    • 基准电压源专区
    • 资源库
    • 论坛使用指南
    • 技术支持参考库
    • 在线研讨会
    • 论坛社群活动
    • 论坛激励活动
  • More
  • Cancel
SHARC Processors
  • Processors and DSP
SHARC Processors
Documents 214xx IIR Accelerator -  how to use the save state operation ?
  • Q&A
  • Discussions
  • Documents
  • Sub-Groups
  • Tags
  • Reports
  • Managers
  • More
  • Cancel
  • New
SHARC Processors requires membership for participation - click to join
  • Documents
  • 214xx IIR Accelerator -  how to use the save state operation ?
  • 214xx processors: pull down resistor at SPI_CLK(DPI3) pin may result in SPI master boot failure
  • ADSP-21469 DDR2 controller-  How to configure bit 0 of the DDR2CTL3 register
  • ADSP-214xx - Memory Test
  • ADSP-SC58x FFTA Benchmarks
  • Example of using I2S PCG and SPORT interrupts
  • FAQ : ASRC TDM8 example code for ADSP-2148x
  • FAQ: ADSP-21364 Core Timer
  • FAQ: ADSP-21489 PCG example code
  • FAQ: ADSP-21489 SPI Example code
  • FAQ: Does ADI provide USB VID/PID?
  • FAQ: Flash read/prgm via JTAG
  • FAQ: I'm interested in the SHARC processor family but don’t know where to start?
  • FAQ: Implement SSL using boot kernel
  • FAQ: Is it possible to program the internal ROM on the SHARC family 2126x, 2136x, 2137x and 2146x Processors?
  • FAQ: Selective Booting of One Application from Multiple Applications using CCES for ADSP-21479
  • FAQ: Standard Math Library for SHARC
  • FAQ: Using the Expert Code Generator (EE-322) and Expert DAI (EE-243) plugins for VisualDSP++ in Windows Vista, Windows 7 and Windows 8
  • FAQ: Why do the January, 2018 ADSP-214xx anomaly lists look so different?
  • FAQ:  ADSP-21369 EZKit expansion port dimensions
  • FAQ:  How do I debug an application which is not booting properly?
  • How to configure SRU for using TWI on SHARC processors?
  • If the breakpoint is anywhere in the area of code that the CRC is being checked on, then there could be a problem.
  • New SHARC Hardware Reference released
  • Programming PLL on ADSP-214xx processors
  • SHARC PROCESSORS
  • SPI serial flash driver & SAFP python script
  • The ADSP-21469 datasheet rev 0 shows tMCFDZ (DAT/SIG Output Time to Three-state)  parameter to be 15ns. However, MediaLB specs require this value for 1024*fs to be less than 6.1ns. Is this a concern?
  • What is the difference between ADSP-21371KSWZ-2A and ADSP-21371KSWZ-2B
  • What is the maximum allowed serial port  (SPORT) clock (SCLK) frequency for SHARC processors ?

214xx IIR Accelerator -  how to use the save state operation ?

The IIR_SS bit (IIRCTL1 register) completely stores the current biquad states in local memory (writes all the DK1 and DK2 states back into the

internal memory states). This is useful in applications that require fast switching to another high priority accelerator task—a required IIR to FIR

processing transition for example. After resuming these states can be reloaded and IIR processing can be continued.

Having said that, there are following few important points which need to be taken care of when using this feature:

1. Once the save state operation has started, it can’t be stopped even by clearing the IIR_EN or IIR_DMAEN bits.  Setting IIR_EN and IIR_DMAEN bits would be complete from the core’s side, but will take effect only after the save state operation is complete. Thus, before trying to disable the IIR accelerator, one must poll the corresponding status bits in the IIRDMASTAT register(refer to the table A-53 at page A-91) to make sure that the save state operation is completed successfully. The latency involved (with no other higher priority DMA ON) due to save state operation is given by the following expression: 

For 32 bit mode:

14*N + ((8*M)+2)*N)

For 40 bit mode:

14*N + ((15*M)+2)*N)

where N = number of channels, M = number of biquads per channel

2. A write access to any of the IIR accelerator registers which are loaded by chaining method (such as CPIIR, IIRCTL2 etc. as listed in table 3-20 in the I/O Processor chapter) is not allowed when save state operation is going on.   A write access to these registers when the save state operation is ON, might result in blocking of IOP core reads until the save state operation completes.  Assume a case where the accelerator is configured to generate the interrupt when all channels are done. Inside the ISR, one wants to disable the accelerator and re-enable it again as shown in the code below:

IIR_DMA_ISR:

*pIIRCTL=0;  // Disables the accelerator (clears IIR_EN and IIR_DMAEN bits) without waiting for save state operation to complete

*pCPIIR = <New TCB Address>; //Write access to the CPIIR DMA parameter register

<IOP core read access e.g. r0 = dm(IISPI); > //This IOP access will be blocked till the save state operation is complete.

3.  It has to be noted that in case of more than one channel (IIR_NCH>0), the IIR_DMASVDk toggles between ‘0’ and ‘1’ as it starts and completes the save state operation of each channel one by one. Thus, one should not rely only on this bit to become zero to ensure that the save state operation is complete for all the channels. To ensure a graceful completion of the save state operation, one must poll both IIR_DMACPL and IIR_DMASVDk bits and make sure that (IIR_DMACPL OR IIR_DMASVDk) = 0 after the IIR_DMAACDONE bit is set. To minimize the core intervention, the recommended method would be to configure the accelerator to generate an interrupt when the processing of all the channels is complete (IIR_CCINTR bit of IIRCTL1 register is set) and wait till (IIR_DMACPL OR IIR_DMASVDk) = 0 inside the interrupt service routine. To minimize the interrupt service time, the core can perform some unrelated tasks before it starts polling for the save state operation completion.  For example, the above code can be modified as follows to ensure graceful completion of the save state operation:

#define SAVE_STATE_COMPLETE (IIR_DMACPL|IIR_DMASVDk)

IIR_DMA_ISR:

<do some unrelated core tasks>

while((SAVE_STATE_COMPLETE&*pIIRDMASTAT)!=0)

{

    asm("nop;");

}

*pIIRCTL=0;  // Disables the accelerator (clears IIR_EN and IIR_DMAEN bits) without waiting for save state operation to complete

*pCPIIR = <New TCB Address>; //Write access to the CPIIR DMA parameter register

<IOP core read access e.g. r0 = dm(IISPI); > //This IOP access will NOT be blocked till the save state operation is complete.

4. General guidelines to avoid performance loss:

When IIR accelerator is used in a system, disabling the accelerator and re-enabling it by setting and clearing the IIR_EN bit is not recommended unless really required as it reloads the coefficients as well.   Clearing and setting the IIR_DMAEN bit should be sufficient most of the times if the coefficients are not going to change. The accelerator has local memory sufficient to store the coefficients for up to 24 channels and 12 biquads each channel. Also, the save state feature is designed for some rare cases where it is really required. To avoid performance loss, one should carefully analyze the system requirements and use the save state feature only if really required.

  • Share
  • History
  • More
  • Cancel
Comments
Anonymous
Related
 
社交网络
快速链接
  • 关于ADI
  • Partners
  • 模拟对话
  • 职业
  • 联系我们
  • 投资信息
  • 新闻中心
  • 质量和可靠性
  • 办事处与代理商
  • Analog Garage
语言
  • English
  • 简体中文
  • 日本語
  • Руccкий
电子快讯

欲获得最新ADI产品、设计工具、培训与活动的相关新闻与文章,请从我们的在线快讯中选出您感兴趣的产品类别,每月或每季度都会发送至您的收件箱。

订阅
Switch to mobile view
Analog Logo
© 1995 - 2022 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号-1
  • ©
  • 1995 - 2022 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号-1
  • 网站地图
  • 隐私和保密政策
  • 隐私设置
  • 使用条款
 
Social
Quick Links
  • About ADI
  • Partners
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Analog Garage
Languages
  • English
  • 简体中文
  • 日本語
  • Руccкий
Newsletters

Interested in the latest news and articles about ADI products, design tools, training and events? Choose from one of our 12 newsletters that match your product area of interest, delivered monthly or quarterly to your inbox.

Sign Up
Switch to mobile view
Analog Logo
© 1995 - 2022 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号-1
  • ©
  • 1995 - 2022 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号-1
  • Sitemap
  • Privacy & Security
  • Privacy Settings
  • Terms of use
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.