zoukankan      html  css  js  c++  java
  • 【原创】MIPS·Verilog·FPGA

    时至今日,终于将全部的计划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用户论坛发英文帖子,会有资深全世界的网友秒回你的,真心好。
     
    像记住初恋般记住自己第一天的梦想!!!
  • 相关阅读:
    为博客园选择一个小巧霸气的语法高亮插件
    再议 js 数字格式之正则表达式
    [扯蛋] 项目说
    浅谈 js 语句块与标签
    Yii 自定义模型路径
    js小记 function 的 length 属性
    js拾遗:appendChild 添加移动节点
    浅谈 IE下innerHTML导致的问题
    浅谈 js 数字格式类型
    [hihoCoder] 第四十九周: 欧拉路·一
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3294669.html
Copyright © 2011-2022 走看看