e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  EDA

浅谈一下SoC设计的核心理念

2020/10/26    来源:电子技术应用ChinaAET    作者:李倩      
关键字:SoC设计  
SoC设计是围绕着总线来开展设计的。SoC最需要掌握的核心知识点其实并不是什么SoC的概念之类的,而是微机原理课程上面讲的那些总线和接口的概念。

    今天上午开了个务虚会,和研究生一起探讨了一下SoC设计的一般概念,发现很多同学根本没有抓到SoC设计的核心。现在趁着讨论的热度还没有过去,现在先在这记录一下。

    首先,SoC设计是围绕着什么在设计?

    SoC设计是围绕着总线来开展设计的。SoC最需要掌握的核心知识点其实并不是什么SoC的概念之类的,而是微机原理课程上面讲的那些总线和接口的概念。例如什么叫三总线,什么叫主(Master)什么叫从(Slave)等等。

   通过掌握这些概念可以理解处理器如何通过总线把数据读出、写入,从而理解如何通过处理器对于整个系统芯片加以控制和管理。

    在理解总线时,最核心的一点是要理解主-从模式的通信机制。既处理器作为主机,是发起通信的一方。而外设、片上存储器作为从机,是响应主机发起的通信。更在此基础上进一步的,需要理解总线的时序,理解在总线上发起通信到通信结束的全过程。这样就可以理解,如何能够通过软件对于特定的地址空间加以访问。

    其次,SoC如何实现IP核的集成?

    要实现IP核的集成,本质上是要让数据写得进,结果读得出。也就是把需要这个IP处理的数据能以某种方式输入到这个IP核内部,在IP核在数据处理完毕以后的结果通过某种方式能够读出。如果这个IP本身的功能有好多种,还需要通过一个特定的方式把需要完成的功能类型传输给IP核。而如果结果运算完毕了,则还需要以某种方式来告知CPU现在的运算已经结束。这些都是需要由写得进/读得出的方式来实现的。

    那么如何实现数据写得进,结果读得出呢?说到底就是要实现IP核在软件层面的“可见”。要让软件层面可见,就需要能够通过执行指令的方式对IP核进行访问。如何访问,当然是通过总线?下图一目了然:

  

    最后,SoC设计上软硬件协同如何解决?

    这就要做好软件和硬件IP核的任务划分和规划了。一般说来,用处理器执行的软件部分适合完成调度、决策、判断等管理性质的任务,而硬件IP核适合完成比较规整的运算任务。而在软硬件的划分边缘,就要设置合理的寄存器组来传递信号和数据。

   例如,我们要实现一个快速计算三角函数的电路。那就需要实现一个Cordic算法的硬件计算单元。但仅仅实现这个硬件单元还不够,还需要编写一段软件代码把外部读取的运算数据送进去、设置需要完成的计算(Cos/Sin等)、在运算完成以后把计算的结果读出。而在这个过程中还要有必要的握手、联络过程。可以依靠程序查询的方式来完成,也可以依靠中断的方式完成。

    其实以上这些内容,不是靠学习什么《SoC设计》之类无聊的课程习得的,核心的问题都在《微机原理》里面讲清楚了。然而现在很多高校的教务部门以及部分高校教师,在急不可耐的将《微机原理》赶出培养方案,而用快餐式的单片机、嵌入式系统设计或者SoC设计之类的课题替代。这种短视而愚蠢的行为,最终却要无辜的学生买单。各位看到本博客的同学,如果你们的学校/学院也在干类似的事情,你们一定要警惕啊!

责任编辑:杨培
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐