上一篇博客讲的是SoC设计,感觉并不过瘾。这次我要好好看看SoC设计,我要讲清楚几个核心问题。
想要把SoC解释清楚,需要找一个好的“教材”或者参考。但是,很遗憾,没有一本教科书能真正把SoC解释清楚。我看了很多年的论文,大概有上百篇和SoC相关的论文。但是一般的论文不是太复杂就是太抽象。看了这么多论文,我觉得一篇论文是谈论SoC最好的方式。这是复旦大学曾晓阳教授(项目直接负责人应为陈云副教授)2012年在ASP-DAC上发表的论文《CMMB接收机用60 MW基带SOC》。本文有一个图表,对SoC的基本结构和设计方法非常直观清晰。而且本文还是面向CMMB(中国曾经推出的移动数字电视的协议)接收机,也体现了如何实现一些计算机网络协议的思路。
曾教授是我妻子的博士生导师,也是我研究SoC设计的带头人之一。这些年曾教授给了我很多帮助和指导。所以,在讲这篇论文之前,还是要做好准备,以免讲错或者讲不好。
所以,你可以自己搜索这篇论文,提前做好准备。
分割线———————————————。
首先,本文使用的图片来自论文《CMMB接收机用60 MW基带SOC》。作者是传武、曹家林、鲍丹、陈云(陈云副教授)、肖扬(曾晓阳教授),作者是复旦大学专用集成电路国家重点实验室。图片版权归原作者所有。如需技术合作,请直接联系原作者。
开始上图!
从这张图可以清楚的看到,这张图分为三个部分。模拟部分是一个混合模拟/数字模拟电路,包括两个10位模数转换器和用于生成时钟信号的锁相环。两个ADC的作用是实现IQ调制的IQ信号从数字到模拟的转换。关于智商调制的介绍,请看我的博客:
http://blog.chinaaet.com/molf/p/29748
第二部分是基带处理器。其实严格来说,它不是处理器,而是基带信号处理的硬件IP。从左到右,具有混频、符号同步、信道估计、均衡、解映射、信道解码等功能。学过通信原理的朋友应该知道,这是一个数字接收机需要做的基本处理。
第三部分是用于媒体访问控制层的32位精简指令集处理器。这显然是一个以32位RISC CPU为核心的嵌入式微处理器,也可以说是一个简单的SoC。
就是这样,仿佛“平平淡淡”。所以,当然不会就这样结束。接下来我们再从SoC和计算机网络的角度来看这个图。
从SoC的角度,首先关注这个地方:
这叫做共享静态随机存储器,也就是共享静态随机存储器。谁和谁来分享这个分享?由基带IP和RISC处理器共享。所以这个SRAM可以看作是双口RAM(不一定用双口RAM实现)。一方面,基带在各种信号处理和信道解码后写入恢复的数据。在另一端,CPU可以通过片上总线读出数据,然后再进行下一步处理。
我们来看看RISC处理器。
从CPU的角度来说,这个Share SRAM和其他常见的片上SRAM是一样的。它们都占用某个地址空,并且总是可以读写。但是这个共享静态随机存储器中的数据有特定的含义和结构。由于该接收机面向CMMB标准,经过一系列的通信信号处理,最终应该得到符合CMMB标准的数据帧。这些数据帧必须由页眉和页脚控制字和加载数据组成。CPU的作用是在指令驱动下分析这些接收到的数据帧,并根据分析结果控制下一步动作。
最终解析的数据将通过SDIO和串行接口传输到外部视频解码器。视频解码器将数据解码并恢复为图像信号,然后在显示设备上播放分析后的图像信号。按照CMMB协议完成接收信号的全过程。
以上是从SoC的角度看SoC行动的全过程。
但是,仅仅从SoC的角度,我们只能大致说出SoC的整个运行过程。仅仅了解如何设计一个SoC芯片是远远不够的。我们将从计算机网络协议的角度来看这个问题。
从计算机网络的角度应该怎么想?让我们回顾一下SoC是什么。该SoC的功能可通过下图进行简要描述:
简单来说,SoC芯片将射频接收芯片接收到的CMMB协议格式的模拟信号转换成SDIO协议格式,经过一系列处理后发送给图像解码芯片。这个过程本质上意味着协议转换的功能。
如何实现协议转换?这就涉及到计算机网络,OSI七层模型等等。
或者上图。
OSI七层模型,相信学过计算机网络的同学应该懂。当年作为通信工程专业的毕业生,七层模型倒着背(当然忙的时候也能背)。
但是如果倒背如流呢?还是不明白里面的真正含义。XX层是什么,为什么要分层,这一层是硬件还是软件?不清楚。
其实在计算机网络中,两个核心概念都与分层有关。一个叫等价,一个叫服务。对等意味着通信过程可以抽象为对等实体之间的交互操作。交互操作依赖于下层的支持,称为服务。
底层为上层提供的服务需要以某种方式使用,这就是所谓的“服务接入点”
示意图应该如下所示:
比如传输层的设计,就考虑了如何与通信另一方的传输层进行交互。传输层中的典型实现是流量控制、服务质量等等。它是两个传输层之间的协调操作。
然而,为了实现这些操作,传输层必须由下层支持。最起码要完成包裹的正常投递和验收,所以这需要服务。并以合理的方式使用这些服务,这就是所谓的服务接入点。
那么,在这个SoC案例中,层、服务和服务访问点在哪里?
我们再回到这张图:
从SoC的角度来说,它是总线和IP核之间的接口,是CPU通过总线读取IP核处理的数据的通道。
从计算机网络的角度来说,这就是服务接入点。它是物理层为数据链路层提供服务的接入点。数据链路层以软件的形式存在,通过读写静态随机存储器来使用物理层的服务,也通过这个静态随机存储器来控制物理层。至于实行了哪些控制,就要细说很多了。大概提到了无线信道占用可以通过控制收发机状态来控制,也就是媒体访问控制(MAC)。
这是硬件的服务接入点,对软件来说比较简单。可以直接抽象为函数。参数被传入,结果被读出。正是因为很多实用的协议栈通常都在软件层面,所以很多人认为协议是一种特殊的软件。还有以前一个学校的老教授(忘了是哪个学校了,如果记得的话,不方便说)。我问能不能重新下载软件,让Zigbee变成蓝牙。大家都在2.4G频段工作...
最后,通过SDIO发送解析数据的过程可以用这个图来说明。
将按照协议栈1打包的信号逐层解析,最后还原为内部数据。然后以另一种协议格式重组数据,转换格式,再通过接口传输。这实现了某种形式的协议转换。在这个足球比赛的例子中,CMMB被转移到SDIO并上传
当然也可以不恢复图层的原始数据,而是对半转换。然后需要在解码芯片上实现CMMB协议栈的一部分。这个设计不能说没有,但是真的很诡异。
今天就讲到这里。SoC设计是一个很大的课题。希望今天的讲座能让你对SoC设计有一个全面的了解。最后,再多说两句。从今天的例子中,我们可以看到SoC设计是一个非常广泛的问题。不是说你会写几行Verilog。这需要从应用、系统架构、IP和接口设计、算法实现等一系列工作。对于想从事这个方向的研究和工作的同学来说,要算数,要有准备。同时也要权衡自己是否真的愿意把自己的青春交给这样一个方向。
接下来我就填坑看一部关于技术“气路”的电影,因为现在优酷上的“暗战”可以免费看了。
您可以先预览电影:
http://v.youku.com/v_show/id_XMzIyNzU5NTk1Mg==.html? SPM = a2hww . 20027244 . m _ 250012.5 ~ 5!2~5~5~A
1.《计算机网络设计 【博文连载】一图读懂SoC设计与计算机网络》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《计算机网络设计 【博文连载】一图读懂SoC设计与计算机网络》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1047604.html