|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
之所以取名字为RISClite,是因为希望以我们更懂Verilog,更理解RTL设计的精髓的基础上,对RISC做出更精华的设计。我们都知道RISC处理器三级流水线、五级流水线,但没有形成一套漂亮的设计方法,把这简单的流水线轻松的下载入FPGA内部。而且,一个CPU设计的Verilog RTL描述,只需要两万门,甚至一万门,但我们却无法使用Verilog来复制它们。这都是不正常的现象,希望能够在这次活动中,去解决这些不正常的现象。
解决这些不正常现象的方法靠什么?靠我们脑海的思维,靠我们的想象力与思考力。人以及人的思考力,我们都不欠缺,欠缺的是凝聚力,欠缺一场思维的碰撞与交汇。我只是想开个头,以我自身对Verilog的理解能力,去抛砖引玉,让更多的人认识到设计一个32位的RISC CPU真的很简单,简单到只需要码上不到两千行代码。通过这种设计CPU的活动,让我们更加关注如何在FPGA上实现漂亮的设计,让FPGA/ASIC设计成为一场思维碰撞、思想交融的盛宴!
我不知道我是不是忽悠,但我知道,我忽悠FPGA这个微观世界的能力,显然要稍强于忽悠你们。Verilog是一门语言,通向FPGA这个微观世界的设计语言。我作为一个掌握者,希望教会更多的人去学习它,去忽悠FPGA,让FPGA完全按照我们的要求去运行。因此,RISClite的最终目的,是要你会这门语言,而不是简单的掌握我的几个RISC设计。也就是,你在我这儿,不仅能获得“鱼”,更重要的是你能获得“渔”,通向数字电路设计的一片蓝海。
因此,我决定举行下面的活动,希望得到大家的支持!
1,兼容ARM9的软核处理器继续走向更高、更快、更强。我在书中给出的兼容ARM9软核设计,简单易懂,而且Dhrystone性能极高,非常适于教学。但缺点在于它在FPGA上运行的频率稍低,只在30~40MHz左右(spartan 6),阻碍了它在高速设计中的运用。当然,我已经对它进行了强力优化,为了答谢大家在eetop上对我的支持,各位网友均可在本论坛上下载到详细注释的高速版的兼容ARM9软核处理器。我们知道,乘法器非常影响频率,真正的ARM9TDMI采用的是32*8的乘法器,可见,乘法器的实现是非常灵活的。因此,高速版分为两个版本,一个版本是不带乘法功能,其他指令完全无碍,如果你只是想实现控制,确认它不会用到乘法指令,那么它非常适合你,因为它在spartan6上综合后,可以达到近80MHz(12~13 ns)。具体能够跑到多少,有待关注它的网友在后面评测。如果你想自己设计乘法器,那么完全可以在这个版本的基础上进行二次开发,运行你自己的乘法器,附加在这个版本上面。当然,作者也会给出自己的解决方案,那就是采另外一个版本,采用32*32的乘法器,在spartan6上也能综合到60MHz以上。读者在读完书以后,再对照这个高速版本的设计,一定能给你更多的启发,对于如何把同样的设计做到高速,你能得到最直观的了解。
2,兼容ARM9软核处理器我都是直接给出代码的方式,读者看到的是最终的结果,而无法了解它形成的过程。我在第二阶段,会直播我的开发过程,目标是ARM公司最新的兼容Cortex-M0软核处理器。了解cortex-m0的都知道,它几乎是ARM9的缩小版,指令更加精简了,只有16 bit位宽,而且cortex-m0的所有指令,都能在ARM9中找到影子。大家在了解我设计ARM9的过程中,其实可以自行进行cortex-m0的设计了,我做这个直播,只不过是水到渠成、顺水推舟的事。但读者通过一步步完成的教程,可以了解到Verilog设计过程与C语言其他设计的差别。最终设计的软核处理器,我也希望我只完成最基本的功能,希望更多的人参与进来,制定更详细的方案,大家一起完成差异化的设计。这就是我想达成的目标:人人都是CPU设计师。当然cortex-m0我想为大家推介一款非常优秀的国产编译器:coocox,它们的网址是:www.coocox.org。有兴趣的可以提前了解一下。最终设计的兼容cortex-m0处理器的Dhrystone性能更可以超过1 DMIPS/MHz。我们知道正版m0/m1的只有0.8~0.9。
谢谢大家关注,我希望能够帮到大家! |
|