CPU设计的几个级别
一个CPU通常由大量的晶体管组成,几个晶体管可以构成逻辑门。而如果我们打算从这两个角度开始入手CPU设计,未免过于复杂了些,这是上个世纪人们使用的方法。
他们的更高抽象层就是RTL级描述。使用这样的描述语言,可以把我们想要的逻辑直接转换为门级网表。这个网表的抽象等级非常低,描述为逻辑门的连接方式。再往下一层就是晶体管这样的纯硬件非抽象层了。至于这个转换过程,类似于从C语言到机器码的过程。
面向硬件设计
在设计一个CPU的时候,我们有时会陷入软件设计的旋涡,这是一个错误的方向。硬件设计的思维一定是先有硬件的抽象逻辑,再经大脑转化为对应的HDL语言。对于数字信息的硬件电路,关注其两个点,数据通路和控制逻辑。
这两个词使用比较通俗的理解方式是:对于一个逻辑,我们使用他,那他需要什么输入,输出给到谁;控制逻辑可以理解为什么时候需要他,是对逻辑本身的控制,而非使用。
数据通路需要有始有终,产生了,就一定要处理。
设计思路
在进行一个复杂项目时,通常使用由简到难的步骤划分。在比较多层次的设计中,体现为自上而下。
先周全的考虑完希望实现的样子,再分配以不同模块,再写模块的抽象实现,最后把最小抽象模块转化为HDL代码。
在纯软件代码编写中,可能会比较喜欢写一点调试一点。这种行为在硬件设计中不被推崇,即使是非常小的改动容易影响系统,我的建议是做加法,永远不要删减已有的逻辑。
两种Verilog风格
- 行为描述。
- 电路描述。
这两个名词解释起来没什么意义,大概理解一下意思。一种是用来语言来描述行为,另一种则是描述逻辑。不过正常的项目中肯定是交错使用的。
总结
本文章说明了现代CPU的设计流程和思路,搭建CPU设计的大体框架。