verilog学习记(开头篇)

 

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】   

 

    自从来苏州工作以后,写博客的频率明显降低了。这倒不是因为自己没有什么东西可以说的,主要是因为要学习和掌握的东西实在太多了。之前在国内一家通信公司工作,工作内容主要以操作系统、驱动和协议居多。但是来到现在的芯片公司之后,发现自己还需要了解更多底层的东西。对我个人来说,越是底层、越是细节的东西,反而能激发我的兴趣。但是,从了解到知晓应用,这中间还需要一个漫长的过程。至于时间需要多久,看个人的努力程度和天赋了。

 

    早在前面的博客中,我就谈到,现在芯片产业其实分工非常细致了。从整个芯片产业链上说,目前芯片设计公司占据了主流位置。芯片一般分为前端设计和后端设计两个方面,前者主要是芯片功能的设计,而后者更偏重于物理层的实现和优化。打个比方说,设计芯片就如同画电路原理图,而后端实现则和pcb布线类似。目前,个人比较感兴趣的还是前端设计这一个部分。

 

    关于软件代码,大家都知道现在网上有很多开源软件。从操作系统、编译器、数据库、web服务器等等,林林总总、五花八门,基本上日常生活中使用到的软件都有其开源的版本,至于功能和稳定性如何就是另外一回事了。但是,大家其实不太清楚,关于芯片设计也有其开源的版本。目前比较知名的开源ip就是opencore了。大家可以从opencores.org这个网站下载到很多的ip core资源。常用的ip core,比如说openrisc、uart、gpio、8051等等都可以在上面找到。有兴趣的朋友可以下载下来看看。忘记说了,现在芯片的前端设计大多是由先进的EDA工具完成的,设计师所要做的就是使用硬件描述语言将用户的需求实现出来即可。常用的硬件语言有verilog hdl和vhdl,仿真使用的工具一般为modelsim、synopsys等等。

 

    如果大家不需要把自己设计的ip core放到fpga上进行验证,那么就不需要使用quartus或者ise这些工具。因为对设计者来说,使用modelsim来仿真已经是绰绰有余了,至少对我来说是这样。当然,硬件描述语言和我们传统软件编程语言还是有点差别的。因为对于硬件工程师来讲,使用这些语言仅仅是为了描述电路、提高工作效率而已。本质上,所有的语言都是为了生成基础的门电路而存在的。

 

    在硬件上面,我是一个新人,但是我对硬件有着很强的兴趣,比如说我对cpu一直都很着迷。之前我知道cpu的内容其实都是固定的,它需要实现加减乘除、移位、逻辑、跳转、调用等运算,还需要实现中断、mmu、cache、乱序、预测、多核等高级性能,但是我还是不太清楚这些功能究竟是怎么实现的。有没有开放的资源,就像开源代码一样,可以满足我们的好奇心呢?上面的openrisc就是这么一种开源cpu。目前网上openrisc的资源还是很多的,国内有一些朋友在学习和研究,国外也有很多人在移植和应用方面也做了很多的工作。其中,最令人兴奋的就是,目前在网上已经可以下载到支持openrisc的编译工具、linux系统和完整的soc代码了。大家可以站在前辈的肩膀上对其中的细节一探究竟,享受其中的奥秘和神奇。但是,和开源软件相比较,从事opencore的人要少很多,所以有志于这一方向的人需要很强的耐心和坚持力才行。

   

    对于有C语言基础的朋友来说,学习verilog的基础语法其实不困难,关键是如何灵活运用和理解,这才是关键之处。软件上,可以通过modelsim软件进行学习和练习;理论上,可以看看夏宇闻先生翻译的《Verilog HDL 数字设计与综合》。这是都是基础,等到有能力可以进一步看看cpu设计的书,比如《兼容arm9的软核处理器设计》等等。当然,学习是一个过程,如果觉得自己在大学的时候没有把数字电路学习好,还得回去把逻辑电路设时序电路的内容补一补。基础很重要,需要自己不断去摸索和总结,这样才能学习好后面的opencore代码。

ps:

1、学习verilog的同学都有一个写cpu的想法,建议大家可以多看看开源cpu的代码,比如openrisc,非常适合学习。目前在github上,可以很容易找到openrisc的代码,比如这https://github.com/openrisc/or1200/tree/master/rtl/verilog

 

2、如果是在windows平台进行学习,建议还是多用vivado+modelsim,如果将来从事这方面的工作,这两个工具几乎是必须的。

 

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值