systemc 学习笔记

        最近看各大头部 IC的公司的招聘信息,尤其是高端岗位,越来越多提到ESL和systemc的知识背景,这个方向感觉又火了起来。感觉国内IC 公司开始慢慢在建立自己的护城河了,类似intel AMD NV(NV 最近还公布了GPU内核的源码) ,源码随便看,工具随便用,文档随便down,但是都拿出来,也搞不出来人家的产品。人家的护城河在于使用超强的定制性的工具做出了超强通用性的产品。

验证这个方向,我并没有完成深入进去,但也做过一点,搭建好平台,交给小弟去跑。总的来说,效率并不是很高,尤其是UVM的仿真速度,感觉很拉胯。尤其是遇到大型case 时,弊端一下就显示出来,可定制的自动化又低,仿真速度又慢,对于简单的IP 使用起来又麻烦。而且没法向pss 上层高抽象单元扩展,虽然pss的最终也是生成了sv 语言。所以想从ESL 这个角度入手学学systemc。因为笔者见过某个牛逼的UVM 平台,借助M家的uvmc,将c++,sc ,sv ,verilog 整个联合起来。发挥各自优势,在整个芯片制造中做到了高效 ,高重用的,高自动化的效果。

        1.算法模型,c++ sc,兼容考虑了芯片架构方案,接口,混仿以及pss 的一套优秀的模型。主要算法模型是c++ 完成,按照芯片功能划分了不同的模块。这个模型断断续续维护了很多年,接口上采用TLM2.0 以及SC的sc_signal 两种方案、TLM2.0可以 直接和UVM 相接。sc_signal 可以直接和verilog 相接。既可以当gold mode 使用,又可以当driver 产生激励。

         2. 软件开发,使用ESL的模式进行开发,主要目的也就是翔软硬件协同并进,一起开发。节省开发周期。

        3. 验证,整个验证框架是UVM。不过做了已经将大部分的功能提到c++一侧去完成。配合c++的加速提升了整个仿真的效率。UVM的整体框架不变,相当于做了加速功能,gold mode 使用c++ 加速,另外rtl 可以使用FPGA 原型验证系统加速。同时支持pss 功能,pss 是这几年各大EDA 厂商积极推出的一个验证的新功能,住在释放人力,提高效率。难点在于pss 的模型,本身支持c++语言,所以给模型中加入了pss 的功能。当然 模型的主要算法功能和PSS的功能都是相互独立的。这样可以使用

        4.silicon ,芯片tapout 回来,这时候要定制完善的验证方案,要想验证那样规划测试用例,在验证阶段,pss 这时候就可以重用,使用pss 可以生成针对silicon 测试的用例。另外silicon debug ,国内大多芯片公司对于silicon debug的做法大多停留在JTAG 以及mem dump 的阶段。这一类方式用于简单的功能debug 没什么问题,但是遇到系统bug,比如做好的cpu 启动系统没问题,但是在跑某个软件时随机出问题,该如何debug。intel AMD 中有一套自己比较完善的silicon debug 的方法学。主要就是复制数据,分割数据,然后回灌数据。回灌的时候数据是带有时间戳的,可以按照真实芯片运行时的方式回灌到 gold  mode 和RTL mode 中进行debug。

你可能感兴趣的:(ESL,学习,c++,quixel,fpga开发)