芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场可编程门阵列)原型验证, 通过将RTL移植到FPGA来验证)才能去流片。因为流片费用昂贵,如果不经过充分的验证去流片,芯片回来后发现有问题,经济损失巨大。一般ASIC内部会有专门的验证工程师做一轮验证,也会让软件工程时做一轮验证(做芯片验证是芯片公司里软件工程师的主要工作之一,出一款新芯片就要做一次芯片验证),均OK后才会去流片。本文以智能手机(或智能手表)上的SoC芯片为例讲讲ADSP(audio DSP, ADSP是SoC的一部分)上音频相关的硬件验证有哪些以及怎么验。

一,验哪些

1,  IPC

现在的智能手机(或智能手表)都是多核系统(主要有AP、CP、ADSP、BT、WIFI、GNSS等)。核间需要通信,因此就有了IPC(inter-processor communication,核间通信)。示意如下图:

 

IPC的本质是中断和ring buffer。一个核给另一个核发一个IPC,就是先向共享ring buffer里写数据,然后给对方发一个中断。对方收到中断后就到共享ring buffer里读数据,这样就完成了一次核间通信。 验证时主要看中断有没有来以及中断服务程序有没有进。没达到预期就排查,包括IPC基地址和中断号等是否正确等。

2,  audio DMA & bus

audio DMA & bus(I2S 、PCM等)是连接ADSP和外设(codec芯片等)的纽带,即ADSP和外设通过它们来采集和播放音频数据。示意如下图中的蓝圈处:

对于audio DMA,主要是配置descriptor(buffer长度(它决定audio DMA中断间隔)、源地址、目的地址)等。对于audio bus,主要是配置bus的属性,包括左对齐还是右对齐以及一次采样多少比特等。验证时主要看audio DMA中断有没有等间隔(比如10ms)来以及中断服务程序有没有进。一些场景下(比如用扬声器播放音乐)整个音频系统就是靠这个中断来驱动的。

3,  memory & cache

音频中会用到各种memory,包括片内的(ITCM, DTCM)以及片外的(DDR, SRAM, ROM等)。验证memory主要是看在地址范围内是否可读写等,ROM是可读,其他是可读可写。片外的memory可以分成不同的功能块。 有的是用于存放code和data,因此要配成cacheable,在程序执行时能加快运行。有的是作为share memory用于交互音频数据(比如播放音乐时AP给ADSP发音频数据就放在share memory里),则要配成uncacheable,让收方能立刻拿到正确的数据。需要注意的是片内的memory不需要配置cache属性。

4,  低功耗模式

低功耗模式(low power mode, LPM)就是让ADSP睡下去来节省功耗。有三种低功耗模式,按睡的程度从浅到深分别是CLOCK _GATING,PLL_OFF,POWER_OFF。CLOCK _GATING就是关掉clock,睡的程度最浅,功耗相对大些。PLL_OFF就是关掉PLL(锁相环),睡的程度次之,功耗也居中。POWER_OFF就是给ADSP下电,基本没功耗了。在POWER_OFF模式下,如果把memory配成retention(保持,即ADSP下电了,memory里的内容没丢)模式,其他核把ADSP唤醒还可以继续工作。如果把memory配成shutdown模式,即ADSP下电了,memory里的内容也丢了,其他核把ADSP唤醒就相当于重新boot ADSP了。 ADSP进LPM后,其他核通过IPC或者内部TIMER等可以唤醒ADSP。要验的是ADSP能够被唤醒且进入相应的中断服务程序。

还有一些跟平台相关的,比如TIMER,这里就不细述了。

二,怎么验

芯片验证有专门的平台(基于FPGA )。我们主要在两种平台上做验证,分别是Synopsys的HAPS以及Cadence的PZ1。这两个平台上的运行都很慢,在HAPS上跑一次要十几分钟,在PZ1上跑一次则需要半个多小时。所以在平台上跑之前要做好各种充分的准备,跑一次像一次,得到想要的结果,不然会很浪费时间的。PZ1相对HAPS优势是可以抓波形。一般的(比如IPC等)为了节省时间可以在HAPS上验,有特殊要求的(比如LPM)则要在PZ1上验。需要在PZ1上验的ASIC会指出来。 在HAPS上验遇到疑难问题时,就需要在PZ1上复现,并抓波形给ASIC分析,帮助找到root cause。

通常验时需要不同核之间配合的。下面就以验AP和ADSP之间的IPC为例来看看是怎么验的。

1,  AP把ADSP boot起来。ADSP起来后给ADSP发一个IPC,告诉AP ADSP已经起来了。

2,  在AP上去看有没有收到IPC中断(读相关的寄存器)。如果没有收到,相应的bit为0, 这种情况下大概率是发送端有问题。如果收到,相应的bit为1,这时再去检查有没有进中断服务程序,如果进了,说明ADSP给AP的IPC是好的。如果没进中断服务程序, 很大可能是中断号不对,需要进一步调查。

3,  ADSP给AP的IPC验好后,再来验AP给ADSP的IPC。类似的AP给ADSP发个IPC,在ADSP上看有没有收到中断以及有没有进中断服务程序等。

两个方向上的IPC都验好后,AP和ADSP的中断就算验好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文分享】通过太阳轨迹和街景图像测量不同街道网络方向的太阳辐射及其时空分布

本次我们给大家带来一篇SCI论文的全文翻译。该论文利用街景数据和太阳轨迹模拟技术,揭示了不同方向街道上的太阳辐射在时空上的差异,为城市的可持续发展提供了更有针对性的策略。 【论文题目】 Measuring solar radiation and spatio-temporal distrib…

基于springboot+vue实现的公考知识学习平台 (源码+L文+ppt)4-103

4.1 系统功能结构设计 根据对公考知识学习平台的具体需求分析,把系统可以划分为几个不同的功能模块:管理员可以对系统首页、个人中心、用户管理、讲师管理、在线咨询管理、学习资料管理、讲座信息管理、讲座预约管理、学习论坛、练习自测管理、试题管理…

LabVIEW程序员的真实工作状态是怎样的?

LabVIEW程序员的工作状态通常涉及以下几个方面: 1. 项目开发与设计 需求分析:与客户或团队成员沟通,明确项目需求,制定开发计划。 系统设计:根据需求进行系统架构设计,包括硬件选型和软件模块划分。 2.…

搜索引擎算法更新对网站优化的影响与应对策略

内容概要 随着互联网的不断发展,搜索引擎算法也在不断地进行更新和优化。了解这些算法更新的背景与意义,对于网站管理者和优化人员而言,具有重要的指导意义。不仅因为算法更新可能影响到网站的排名,还因为这些变化也可能为网站带…

安装中文版 Matlab R2022a

下载安装包 压缩包有点大,大概20G 百度网盘:下载链接 提取码:rmja 安装 解压后打开目录,右键以管理员身份运行 setup.exe 选择输入安装秘钥 输入秘钥: 50874-33247-14209-37962-45495-25133-28159-33348-18070-6088…

互联网大厂最全Java面试题及答案整理(2024最新版)

很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司。 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。 应届生:你该如何准备简历&#…

[Nginx]快速入门

Nginx概述 介绍 Nginx是一款轻量级的web 服务器/ 反向代理服务器/ 电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好 中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、…

坚持使用kimi搭建小程序2小时(04天/05天)

运用好kimi智能助手里面的存储小程序,{缺乏一个相对稳定的反馈体系,自己所挑选的稳定反馈体系就是编程!} 开源竞争: 当你无法彻底掌握一门技术的时候,就开源这门技术,培养出更多的技术依赖,让更多人完善你…

免费流程图制作工具 draw.io v24.5.3 中文绿色版

draw.io是一款免费的在线图表绘制工具,它提供了强大的功能和易于使用的界面,适用于各种绘图需求。 详细功能 多种类型的图表:draw.io支持创建各种类型的图表,包括流程图、组织结构图、UML图、网络拓扑图、平面图等。自定义图表元…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象,打破“数据烟囱”,实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成,旨在满足跨部门、跨层级及跨省数据共享的需求,推动数据流通…

Axure PR 9 多级下拉清除选择器 设计交互

大家好,我是大明同学。 Axure选择器是一种在交互设计中常用的组件,这期内容,我们来探讨Axure中选择器设计与交互技巧。 OK,这期内容正式开始 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。…

2024年10月实测安装支持 winxp的最后一个python版本 2.7.18 和python 3.4.4版本,你觉得还能正常安装吗?

各位粉丝朋友们,大家好!在编程的世界里,有时候特定的业务需求会让我们不得不使用老版本的软件。Python 目前支持 Windows XP 的最后一个版本为 Python 2.7.18。由于官网下载可能会比较耗时,为了方便大家,我将这个版本上…

省级- 可持续性再生能源消纳量(2015-2022年)

非水电可再生能源电力消纳量,作为衡量一个地区可再生能源利用程度的关键指标,正受到越来越多的关注。 非水电可再生能源电力消纳量指的是在一定时间内,除了水力发电之外的其他可再生能源(如太阳能、风能、生物质能等)…

基于uniapp微信小程序的旅游系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Golang的跨平台开发

Golang的跨平台开发 一、Golang跨平台开发概述 语言是一种开源的编程语言,由Google开发,广泛应用于云计算和网络编程领域。Golang具有并发性好、性能优异、内存管理自动化等特点,因此备受开发者青睐。其中,Golang的跨平台特性使得…

macOS Sonoma 14.7.1 (23H222) Boot ISO 原版可引导镜像下载

macOS Sonoma 14.7.1 (23H222) Boot ISO 原版可引导镜像下载 2024 年 10 月 28 日,Apple 智能今日登陆 iPhone、iPad 和 Mac。用户现可借助 Apple 智能优化写作,为通知、邮件和消息生成摘要,体验交互更自然、功能更丰富的 Siri,使…

【排序】常见的八大排序算法

目录 一、冒泡排序 二、堆排序 三、直接插入排序 四、希尔排序 五、直接选择排序 六、快速排序 七、归并排序 八、非比较排序 --- 计数排序 九、排序的分类及稳定性分析 总结 前言 本文排序算法有:冒泡排序、堆排序、直接插入排序、希尔排序、直接选择排序、快速排序…

Node.js:内置模块

Node.js:内置模块 Node.jsfs模块读取文件写入文件__dirname path模块路径拼接文件名解析 http模块创建服务 Node.js 传统的JavaScript是运行在浏览器的,浏览器就是其运行环境。 浏览器提供了JavaScript的API,以及解析JavaScript的解析引擎&a…

ElasticSearch - Bucket Script 使用指南

文章目录 官方文档Bucket Script 官文1. 什么是 ElasticSearch 中的 Bucket Script?2. 适用场景3. Bucket Script 的基本结构4. 关键参数详解5. 示例官方示例:计算每月 T 恤销售额占总销售额的比率百分比示例计算:点击率 (CTR) 6. 注意事项与…

【MyBatis源码】SqlSource对象创建流程

文章目录 介绍XMLScriptBuilder初始化parseDynamicTags解析动态节点RawSqlSource分析代码分析实例化 介绍 代码入口: SqlSource sqlSource langDriver.createSqlSource(configuration, context, parameterTypeClass);languageRegistry:用于注册Langua…