做到芯片设计的各位,在某个时刻,你或许不会产生一个点子,“为什么不自己设计一个处理器呢?”也许是手头的处理器并很差用;也许是想要的处理器喜的离谱;也许是你期望作出差异化的产品;又或者意味着因为它是个诱人的挑战,你想要尝试一下...既然如此,我很高兴能和你讨论一下怎么已完成这个任务。交付给物我们再行从结果想起,也就是这项任务的最后交付给物。这里不妨参照ARM处理器核的deliverables。当然,如果只是一个自己用的专用处理器,不一定要有这么原始的交付给物。
硬件:主要是处理器涉及的RTL代码,检验环境,EDA工具的脚本,文档等等。工具:主要还包括编译器工具(compiler),调试工具(debugger),建模工具(simulator)和性能分析工具(profiler)。右图是ARM的编译器工具的例子,主要还包括armclang(C编译器),armasm(汇编器),armlink(链接器)和fromelf(image工具)。
转自arm.com建模工具一般最少还包括一个指令仿真器instructionsetsimulator(ISS),做到的好的有cycle-accurateISS。模型:此外,现在一般的处理器IP还不会获取一些处理器的模型来支持系统级设计,比如用作虚拟世界平台(virtualplatform的处理器model。
虚拟世界平台可以在没硬件的情况下支持软件研发,它可以仿真一个原始的芯片或者一个硬件板卡,比如ARM的FixedVirtualPlatform(FVP)。而专用的处理器模型(比如ARM的FastModel)是虚拟世界平台的最重要组成部分,和总线模型以及其它IP模型一起模拟系统的功能。在上述交付给物中,红色为必不可少的内容。即使你做到的专用处理器功能非常简单,没这几部分它也完全是无法长时间用于的。
当然,你可以说道,我不必须ISS做到指令检验,不必须debugger做到调试,不必须C编译器而要用编撰,我也不能“呵呵”了。看见这一大堆工作,如果你没懦弱,而是觉得很有意思。那么我也很不愿给你点协助,想到是不是可以把你的点子变为现实。
只不过方法也很非常简单—自己做不了就去找“别人”拜托呗。具体来说,根据你的支出情况,可以分成“贫”和“富”两种玩法。我再行说道说道有钱人的玩法吧。富玩法只不过,好比你一个人想要做到专用处理器,很多大公司也有这样的市场需求。
所以,就有人为这种市场需求专门获取了解决方案,比如Synopsys的ASIP-designer工具和Cadence的Xtensa可拓展处理器(参看Cadence(Tensilica)的可自定义处理器),都是为了符合自定义处理器的市场需求而设计的。其中Cadence的可拓展处理器是在一个基础处理器上给你获取了配备(configure)和拓展(extension)的方法和工具。它获取的功能可以通过右图感受一下。
转自cadence.com这套工具的输出还包括三个部分:1)一个处理器模板(ProcessorTemplate);2)用户配备(ConfiguratoinOptions);3)自定义的指令(CustomInstructions)。最简单的情况,你只要选一个处理器模板扔给工具就可以了。如果这个无法满足要求,那么你有可能要做到一些配备。这个也很非常简单,基本是菜单自由选择。
最有技术含量的是第三种情况,你要设计一些自定义的指令。有了这些输出,只剩的事情就都转交工具了。我们在第一节说道的那些交付给物,都可以自动分解。
那么我们怎么告诉要不要自己自定义指令呢?工具也获取了方法。首先,输出你的算法程序输出,经过编译器,展开建模和profiling,获得性能评估的结果。然后辨别否符合市场需求。答案是NO的话,就尝试改版Configuration;如果还是敢,再行尝试自定义指令的方法,直到失望为止。
由于工具协助你做到了大部分工作,这个递归的过程(也可以看做是DesignSpaceExploration)不会十分慢。转自cadence.com为了构建自定义指令(对原先指令集展开拓展),Cadence(Tensilica)设计了一种专用的描述语言:TensilicaInstructionExtension(TIE)language。
由于Xtensa处理器有一个基本的架构模板,用于TIE语言对它展开拓展是有一定的容许,不是说道你想要做到的指令和架构改动都需要构建。
本文来源:大阳城8722官方网站-www.zipdisplaycabinets.com
关注我们
Copyright © 2005-2023 www.zipdisplaycabinets.com. 大阳城8722官方网站科技 版权所有
ICP备52188869号-2