写给 Verilog/FPGA/数字IC 初学者的一封信

您所在的位置:网站首页 菜鸟verilog 写给 Verilog/FPGA/数字IC 初学者的一封信

写给 Verilog/FPGA/数字IC 初学者的一封信

2023-03-29 23:36| 来源: 网络整理| 查看: 265

​前言

根据很多读者的反馈,发现很多读者都是初步涉及数字逻辑领域。为了不走弯路,为了明确目的,今天不发送教程内容,我们来唠一唠有关羽 Verilog、FPGA、数字 IC 的私事。全是白话,权当参考。

建议的目的,是为你的学习、为你的找工作、为你的工作,提供及时的建议。建议初学者好好读取每一个文字,不要漏掉特(自)别(我)精(拉)彩(胯)的内容。

本人只是一个小小的虫子,想给涉及该领域的初学者一些建议,大佬请直接走开,也欢迎驻足,留下珍贵建议的脚印。

写教程本意

写教程之初,是因为平时总会忘记一些不经常使用的语法,例如想装*的写寄存器向量固定位宽的访问(reg[31-: 8]),例如模块例化时的模块名、信号名、参数名的格式,总是要去搜索或翻书,有些许麻烦。

但是网上关羽 Verilog 教程的专门网站我是没有搜索到,但是像大热门 Python、C、PHP 等语言,正规的教程却非常多。

所以,我萌生了一个写 Verilog 教程的想法,并付诸于行动,把《Verilog 教程》发在了网站《菜鸟教程》上,非常感谢该网站老板给了我一次展示知识领域的机会。也陆陆续续的收到了很多读者的回信与支持,这里表示特别感谢。尤其那位回复我 “我要学会verilog” 的 IdaGu 同学,不知道你现在已经学会了么。

也谢谢那位快被我放飞的小鸟,让我有时间静下心来,又花了几个月的时间完成了《Verilog 高级篇教程》。学会了 Verilog 语法,但是设计实际电路时,还需要考虑语法以外的因素,这是写高级篇教程的初衷。

后来发现,数字逻辑领域涉及的东西实在是太多了。把读者拉下水了,然后就扬长而去,这不就是渣男嘛!于是,我又有了新的想法,开个公众号,自由度高一些,再多写写教程,多提供些技术文档,给用的到的青年、中年、老年学者再提供些知识性帮助。如果自己也能有些物质收获,那就十全十美了。

总之,写这些教程,主要目的是:为初学者提供教材,为经验者提供手册。

对初学者的建议◆关羽 FPGA/IC 行业

鉴于国内大环境的改变,数字逻辑设计行业(FPGA/IC)其实已经算大热门了。虽然薪资和互联网还有差别,但是差别也是在合理的范围内吧(自我安慰一下)。所以,你开始涉足该领域,也不要有什么后悔,现在有祖国在大力支持发展,是金子(芯片)总会发光的。

该领域的特点就是,门槛低,深入难。例如,你可以利用一个暑假甚至是一个寒假的时间,去学会 FPGA,并能参加一些电子比赛,或创新项目。但是你再想去深入学习,就得学习其他方面的知识。例如做 FFT 的实现,你就需要学习数字信号处理。例如你想去用 DDS 生成个正弦波,在示波器上看到,你也得懂模电的知识。例如你想用脚本生成一些测试命令,你又得略知脚本语言(Perl、Python、Linux、TCL 等)。例如你功能性上查不出设计的缺陷时,你又得从时序上去查找问题。时序检查,又可能会涉及多个工具(DC、PrimeTime 等)的使用,以及约束文件(ucf、sdc 等)的编写。等等等等,这些东西,不仅仅是学会 Verilog 语法就能掌握的。

但是,不要慌,先拍个照冷静下!深入难,所以今天我才会想到要给大家建议!建议的基础,就是目前公众号内的 3 篇教程:《Verilog 教程》、《Verilog 高级篇》、《TCL 教程》。

◆正题

如果你想快速的学习并应用,例如使用 FPGA 设计数字模块,参加竞赛与项目,则《Verilog 教程》的1.1 节至6.7 节,以及8.1 节都要必不可少的学习。7.1 节至7.6 节是例程,只供必需的人需要。当年我年轻面试时,很多面试官会问我怎么避免 Latch,我从理论上回答如流,但是从代码分析时却总是不尽人意。这是我为什么会单独总结《竞争与冒险》和《避免 Latch》的原因。一是清清楚楚的解释掌握,二是为即将面试的你提供后台的支持。

《Verilog 高级篇》旨在更加稳定、安全、有效的进行数字 IC 设计或 FPGA 设计。这里面试时经常遇到、或设计时必须考虑的几节是:《3.3 建立时间与保持时间》、第四章的全部《4.1 同步与异步》、《4.2 跨时钟域传输:慢到快》、《4.3 跨时钟域传输:快到慢》、《4.4 FIFO 设计》、《5.2 时钟简介》、《5.3 时钟分频》、第六章的大部分《6.2 系统级低功耗设计》、《6.3 RTL 级低功耗设计(上)》、《6.4 RTL 级低功耗设计(下)》、《9.2 可综合性设计》。

有点多,但都是精华,都是我经历过的事情,相关知识也都总结的比较全面,不用再去进行其他的搜索。但还是要说一句,有时间了,或工作上涉及到了,再多翻翻剩余的教程,定会有很大的收获。初学者的话,可能不会涉及上述剩余的教程知识。

至于目前正在更新的《 TCL 教程》,有需要的学者可以及时参考。刚刚踏足数字设计领域的,可以直接忽略,暂时不会用的到。TCL 教程应该会很快完结,之后再为大家奉献新的知识总结。

写在最后

总之,要想学的好,学的快,还是要多学教程,多写代码,多仿真,有条件的话再多去 FPGA 板块上调试。

说了这么多,建议也只是参考,大家学习时要有宏观角度。

原创不易,请不要直接抄袭。

如果你有什么疑问,或者想了解某方面的知识,例如 FPGA 在线调试,例如 Formality 的使用等,欢迎暂时发送消息。闲暇之余,会有回复,以后的推送或教程,也会涉及该方面。但时间有限,可能不会特别及时,我们细水长流。

也感谢日益关注公众号(start_verilog_up_512)的各个学者,如果你从中受益,欢迎多多推荐给身边的朋友、同学、同事。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3