原创 【博客大赛】MIPS·Verilog·FPGA

2013-4-26 11:48 1962 4 13 分类: FPGA/CPLD

 时至今日,终于将全部的计划55条MIPS指令在FPGA上全部验证完毕,通过这近一个月的不断的修改调试、修改调试,我对整个流程对MIPS有了深刻的体会和认识。借着刚刚现阶段任务的兴奋和短暂的空闲时间,将自己这段时间以来的心得体会记录下来,希望可以帮到感兴趣的同学。

 

首先我想说一下MIPS,最开始接触MIPS时,我还认为是百万指令集的缩写,百度了一下才知道是一家公司名,后来才知道这里所说的MIPS是一种体系结构。说实话,计组原学的不是很好,微机原理学的倒还行。但是对RISC的理解和认识也只是停留在考试题目上,还记得背过的题目IntelXXX系列处理器包含应用了RISC流水线及超标量技术。记不得了。

 

说句老实话,Intel的指令集我们也学过,根本记不住,指令格式很复杂。相对而言,MIPS的指令格式很清晰。当然,MIPS的寄存器很多,但是用处却很大。

 

我觉得搞硬件,尤其是数字模块,最重要的就是区分开组合逻辑和时序逻辑。使用Verilog语言,很容易区分不开组合和时序。其实,很多东西写写到了后来就熟悉了。Verilog里的很多东西都很重要。我觉得最重要的一点就是,Verilog不是程序设计语言,而是硬件描述语言。你绝对不能用程序设计的思想去考虑使用这种语言。必须要从数据通路需要器件的角度去考虑怎样利用这种语言,我觉得用“利用”很清楚地描述了Verilog的用途。它只是帮助你去描述你想要的硬件模块,它不是创造一个模块。还有,Verilog不是C。必须要脚踏实地的学习,学而不思则惘,思而不学则怠。

 

最后,我很想仔细地说一下FPGA开发。说实话,FPGA的很多东西我还没有掌握甚至是没有了解,尤其是我只是开发数字模块,关于模拟的东西真的不是很清楚,很后悔以前的模电课没有认真想,希望下阶段可以多学学。我觉得每个人刚刚接触FPGA开发一定会很头疼,真的非常头疼。工具链、原理图、UG等等,资料铺天盖地的席卷而来。我觉得最开始必须要选定好一块开发板的原理图和用户手册,详细阅读,当然这些东西一般都是英文的。还记得最开始我阅读NEXYS3手册几乎耗费了一周的每天晚上的时间,很多名词根本不了解,都需要weiki或者百科。然后是工具链,我觉得磨刀不误砍柴工吗,不要想着着急地在开发板上跑自己写的东西,先跑跑DEMO。熟悉一下工具,这很重要。所有工具的HELP是最好的工具教材,一定切记这点。我几乎阅读了所有Synplify Help中的所有内容,大部分ISE Help里的内容,还有网站上的UG。当然,此时可以了解一下FPGA的特性,什么是slice、LUT、LATCH等等。然后,我的建议是一定要看特权同学的书《深入浅出玩转FPGA》,我真不是打广告。这本书真是一本FPGA开发小白的入手神书,很多东西讲的很清楚很详细,很多小技巧。并且,此时有必要去读别人的代码,去培养自己的代码风格。无论硬件还是软件都要有好的代码风格。

 

仿真、综合、实现、时序约束、板级调试时ISE的通用流程,Quartus与之略有不同,原理很相似。最重要的两个过程我觉得是仿真和综合。仿真一定要好好做,不要怕麻烦和折腾。

 

综合是提供硬件能力的最快阶段,你必须要知道你使用了什么器件,系统给的和你设想的是否一致。综合不是一个一蹴而就的过程,是一个慢慢磨练的过程。然后,需要了解一下IPcore很多东西都需要用IPcore。这里的IP是知识产权的缩写,此时可能会读很多手册,但是这些ug是提高你对时序理解的最好助手。

 

我觉得实现和板级调试是一个重复的过程,不断的重复,发现错误修改代码。这个阶段需要读懂report,需要了解warning等等。

 

其实,只要你多读手册等东西,每个人都可以玩转FPGA。FPGA开发不是一个很难的过程,却是一个很漫长的过程。生活中的很多事情都不难,但却很漫长。坚持到最后,一定可以玩转。

 

最后,也是我刚刚发现的。其实碰到问题,可以直接在XILINX或Altera用户论坛发英文帖子,会有资深全世界的网友秒回你的,真心好。

 

像记住初恋般记住自己第一天的梦想!!!

PARTNER CONTENT

文章评论9条评论)

登录后参与讨论

用户377235 2015-10-25 21:30

The abiltiy to think like that shows you're an expert

用户967031 2014-1-25 09:00

我们这个民族好像从来不以个人荣誉代表国家的荣誉,这是当今制度对人的思想束缚,个人的小芽早已经在这个古老的文化中泯灭,所以没有不能出现神马科技人才,也许很难出现!对于个人奖低调!再低调!我们也是在这样的气氛中慢慢死去!

用户1707737 2013-5-3 23:45

我开始接触MIPS是看了《see mips run》 这本书,写的很好讲mips,看了这本书我就迷上mips了,希望能和博主一起学习,一起交流啊!

用户1576493 2013-5-3 21:13

学习了哈!

用户1576493 2013-5-3 21:02

学习了!

用户429576 2013-5-3 20:15

谢谢

用户1719206 2013-5-3 10:18

写的很好啊

用户1673291 2013-4-28 08:49

很有感触啊;就是没有那么多时间去好好研究一下。

用户429576 2013-4-26 16:22

谢谢 大家都努力

用户961355 2013-4-26 14:03

写的真好,认真学习。
相关推荐阅读
我要评论
9
4
关闭 站长推荐上一条 /3 下一条