今天上午开了个务虚会,和研究生一起探讨了一下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设计之类的课题替代。这种短视而愚蠢的行为,最终却要无辜的学生买单。各位看到本博客的同学,如果你们的学校/学院也在干类似的事情,你们一定要警惕啊!
特斯拉正考虑进军家用空调市场
中科芯亿达MX6833双桥电机驱动器解决方案
2021年Q1国内HEV节能乘用车合计装机量约为154MWh,同比增长151%
美国宜家首批充电桩将于2022年底上线
一汽解放:下一步计划与华为联手,共建商用车行业大模型
SoC设计是围绕着什么在设计?
三星电子推出全光谱中功率器件
净利润年均复合增长率超75% 菲菱科思具备较强盈利能力
Ruckus Networks推出了ICX 7850交换机可以满足企业网更大带宽的需求
锐龙5 3500曝光 6核心6线程基准频率3.6GHz
使用NVIDIA Maxine改善实时通信应用程序
哒哒游戏:打遍天下好游戏!
什么是偏置三通?如何使用偏置三通?如何改变HackRF的Bias-T电压?
我国5G第三阶段将是5G实现“18岁成人”之前的关键一步
关于单片机与嵌入式、操作系统与RTOS之间的那些事!
联想全面推进“一体多端”智能终端战略
混合信号控制电路使用微控制器,灵活地实现PID算法
LG V40:骁龙845+全面屏后置三摄,或于9月份正式发布?
编码器主要分类有哪些?
系统可靠性离不开数字隔离器简化设计