我学verilog语言进行FPGA设计也就半年时间,很多的东西就是在EDACN上学到的,现在想说说自己对使用verilog进行FPGA设计的一些体会,我水平不高,主要是为新手朋友们介绍自己的一点经验少走点弯路。

1、verilog语言
    学习verilog最重要的不是语法,“因为10%的语法就能完成90%的工作”,verilog语言常用语言就是always@(),if~else,case,assign这几个了,不用去专研繁杂的语法,有些问题等你碰到了查查书就好了。这里推荐夏雨闻老师的《verilog数字系统设计教程》,一本很适合新手的好书。

2、硬件原则
    虽然verilog语言很象c语言,但它和c语言还是有本质的区别的,因为verilog进行的是硬件设计,你写出来的东西是实实在在电路,所以要有数字电路的知识是肯定的。数字电路就是由时序电路(触发器)和组合逻辑电路(各种逻辑门)构成的,用verilog写的程序在FPGA实现就是触发器和逻辑门,所以最重要的就是“你对你写的语言生成的电路心中有数”,做到这一点你就不会有写出来的程序不能综合的麻烦,电路的冗余逻辑肯定也是最少的。还要注意一点就是verilog程序是并行的,不是象c那样是顺序执行的,这是因为fpga硬件可配置,可形成不同的任务单元同时工作;而单片机这种基于通用目的,硬件结构也固定了,它处理任务只能一件一件顺序的进行。

3、同步原则
   在进行FPGA设计的时候,同步原则应该是最重要的原则之一了,因为异步电路的不可控性,很可能有毛刺产生,而在芯片内部的任何一点毛刺都会一级一级的传递下去,最终影响系统的稳定性。同步原则用一句话来总结就是“不要试图产生自己的时钟”,最好一个设计或者一个模块只使用同一个时钟,这样所有的触发器都在同一个时钟沿跳变,当然最稳定了,系统也能跑到很高的速度。一个小技巧就是多使用触发器的使能端和取沿电路。

4、养成好的代码习惯
   很多的细节,比如缩进、命名、参数化、组合逻辑和时序逻辑分离、注释等等,也就是大家说的代码风格。这个其实很重要,最好在一开始就养成好的习惯,这样会为你以后的工作节省很多时间,也会大大提高工作的质量。不注意这个将很吃很多的苦头 ,细节决定成败啊。

5、工具
   工具永远就是工具,最重要的是学会怎么使用它,不用去研究它,用的多了自然就熟练了,遇到那个问题了自然就会去找到问题的答案,不用开始就抱着工具的手册狂看,问问别人很简单的。

上面说的主要是为新手准备的,以后有机会再和大家交流,也请大鸟指点指点,希望大家一起进步!

高手经验:一个新手的verilog学习经验相关推荐

  1. 【经验】新手选择插画学习书籍的方法有哪些?热门插画书籍推荐!

    如何选择插画学习书籍?新手入门如何选择插画学习书籍?初学者选择插画学习书籍有哪些技巧?想必这些问题都是绘画初学者们比较伤脑筋的问题,那么到底怎样才能选择合适新手的插画学习书籍呢?今天灵猫课堂老师就在网 ...

  2. python学习教程之作为一个新手小白如何学习python?

    这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思维,还是工作需要.想要转行,都可以此文作为一个参考.在这个信息爆炸的 ...

  3. 自学Java南京15K,包装三年工作经验,分享我的学习经验

    上周在南京找到了一份15K的Java开发工作,今年28岁.之前的行业一直从事证券金融,做证券金融如果没有很好的经济头脑,真的只能被割韭菜,永远做一个小业务员.自从15年之后IT行业的平均薪资就全面超过 ...

  4. 请问一个新手要怎么学习3Dmax建模?3d建模用什么软件

    第一  3D建模软件很重要,但只是一个基础. 很多同学说自己擅长3Dmax软件,或者说擅长maya软件,很会这些3D类的建模软件啊,但是为什么还是无法做出优质的3D建模作品呢?或者说一设计东西就蒙圈, ...

  5. 请问一个新手要怎么学习3Dmax建模?

    俗话说,工欲善其事,必先利其器.想学好一款软件,我觉得首先你得了解这款软件,至少知道这款软件是做什么用的,以及你想用这款软件做什么东西. 3Dmax 3D Studio Max,常简称为3d Max, ...

  6. 一个新手要怎么学习3Dmax建模?

    俗话说,工欲善其事,必先利其器.想学好一款软件,我觉得首先你得了解这款软件,至少知道这款软件是做什么用的,以及你想用这款软件做什么东西. 3Dmax 3D Studio Max,常简称为3d Max, ...

  7. 大学计算机经验交流,学习经验交流会总结

    学习经验交流会总结 总结是对过去工作的回顾和评价,因而要尊重客观事实,以事实为依据.下面是小编为你整理了学习经验交流会总结,希望能帮助到您. 学习经验交流会总结(1) 为使大一新生尽快融入大学生活,明 ...

  8. 我的 System Verilog 学习记录(1)

    引言 技多不压身,准备开始学一些 System Verilog 的东西,充实一下自己,这个专栏的博客就记录学习.找资源的一个过程,希望可以给后来者一些借鉴吧,IC找工作的都加把油! 本文是准备先简单介 ...

  9. 写给初学asp.net的新人们 新手学习经验

    写给初学asp.net的新人们 新手学习经验 发布:dxy 字体:[增加 减小] 类型:转载 IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个"老人"了吧,见 ...

最新文章

  1. Python网络编程(4)——异步编程select epoll
  2. 机器学习中的欠拟合与过拟合
  3. Android 保存图片到系统及相关问题的解决方案
  4. python装饰器-Python 装饰器
  5. RXJava by Example--转
  6. VS2010解决方案位置不对和改变程序字体的方案
  7. 刷题一个4ms的程序,代码如何优化到3ms再到2ms?
  8. 微信小程序一定要用https的理由,小程序使用HTTPS链接分析
  9. python iter next_python类中的__iter__, __next__与built-in的iter()函数举例
  10. PHP全路径无限分类导航LINK代码实现
  11. 使用SetUnhandledExceptionFilter()让程序优雅的崩溃
  12. 计算机校准颜色,显示器颜色校正,教您怎么校准显示器颜色
  13. 写给Javaer看的Kotlin教程
  14. 毕业设计之 --- 基于java web的旅游网站设计
  15. java工作经验总结
  16. 大学计算机应用作业,大学计算机应用作业
  17. 互联网晚报 | 12月25日 星期六 | 小米首款自研充电芯片澎湃P1官宣;抖音电商启动“冬季山货节”;全国首批“千兆城市”出炉...
  18. GIT使用rebase和merge的正确姿势
  19. Unity_二进制,Jason,XML存档读档
  20. Bat 批处理之 for/f 详解

热门文章

  1. 新同事,git又报错Please move or remove them before you merge
  2. linux安装tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
  3. Android 去掉TabLayout下的阴影,AppBarLayout下的阴影
  4. dubbo源码分析(3)
  5. 使用Java操作文本文件的方法详解
  6. 兄弟割席:HTML5标准制定组织分裂
  7. GNS3 搭配 secureCRT 安装配置与使用心得
  8. 读tomcat源码,随笔类图
  9. SVN中tag branch trunk用法详解
  10. linux 监控命令iostat,Linux下 IO实时监控iostat命令详解