写一个10条指令的玩具CPU并不很难。

所以自己写CPU是不少学校教学的噱头,把CPU「庸俗化」。一大群实际上没研究过CPU的高校老师最爱干这事。


大概雷课堂难吧,如果对CPU只做指令集限制不做性能约束的话。

一直听说贵系是写CPU+操作系统并跑起来一个小游戏。我觉得这个和雷课堂差不多,甚至更难一些。我们系就写一个CPU就够了,还是3人一组。

就一个Verilog新手而言,调通一个五级流水线的MIPS已经很困难了。实际上这东西比很多常见的FPGA上的模块设计要难,设计中的trick很多,加了forward之后数据流很复杂,看波形基本都得瞎。verilog这东西就是突出一个debug难


在确实合理可行的前提下,只要给出了详细完整的需求SPEC,其实实现起来都只是时间问题。

任何一个产品,提出完整详尽的参数指标和介面定义(不管是CPU的架构文档,还是雷课堂的各种功能模块定义main函数定义介面定义),才是最有难度的部分。在我们公司里定义工程师职级的时候,实习生或者毕业生水平的工程师只需要能够按照指定的详细参数指标和介面定义完成功能代码即可,转正或者毕业一年左右水平的工程师也只是在这个基础上完成一个功能更完整包含更复杂内部架构的模块即可,本质上参数指标、介面和内部结构还是给定的。但一年到三年经验的工程师,一般都只给出需求,介面和内部架构都要自己去考虑然后通过讨论评审确定,一旦一开始设计得不合理,最后做完了才发现无法满足需求问题就大发了。再往后就是系统工程师、演算法工程师或者说架构师,往往需要从整个产品的需求入手,给出切实可行并且满足性能功能需求的软硬体划分,数据位宽,CPU架构,算力要求,中断和服务响应延迟等等最核心的指标,如果这些指标有错的离谱的,大家跟著你可能一年就白干了。

所以结论是,如果给出了详尽的参数指标和介面定义,都不难,写代码就是一个表达和debug的过程罢了。


如果CPU是指i9 9900的话,CPU难;如果CPU是指8bit RISC的话,雷课堂难。


写个cpu并不难(没有约束或者竞品方案),关联在于生态,网上很多教程写了8051内核,都很简单,像蜂鸟这些资料很多,实现起来也不难!而写磊课堂已经有竞品,你要实现或者超越原方案,这个难度就大了,至少你需要对比,而且需要用户体验!


应该是雷课堂吧。。


更新:在EDA技术实用教程-vhdl版 第六版 (应该是杭州科技的老师写的)中P301页有架构,说的是KX9016正是16bit。在此基础上做改进顺利的话不到两天就可以搞定。

2020年5月6日

当然是用C++写雷课堂难

vivado软体没用过,目前用的lattice家的Diamond环境和Altera quartus。

cpu指令也详细学过,做个16bit的不难,但是让我写雷课堂并实际应用~抱歉&


推荐阅读:
相关文章