Verilog学习日志(2021.6.29)

2021.6.29

1.参考大佬老石谈芯的FPGA入门学习路线,整理一下。

(1)编程语言

一开始先在主流语言VHDL和Verilog中选一个,后期再考虑另外一个。

学习一个语言,先学语法,然后学怎么用这个语言做设计,然后学习怎么用这个语言做验证。

HDL语言的语法可分成可综合和不可综合的部分。可综合部分用于设计电路,不可综合部分用于仿真和验证。建议先学可综合部分,验证可以进阶的时候再学。

推荐HDL bits用于做题。//太好了!

RTL电路设计主要分为组合电路和时序电路还有状态机三个部分。

RTL学习最大难点就是使用软件编程的思想来思考硬件。其实软件编程一般是顺序执行的,硬件一般是并行执行的,所以思维方式就要转变过来。

对于给定的逻辑功能,能想象出大概的电路结构,然后使用Verilog来进行实现,同时写一些简单的测试用例和环境之类的,就差不多了。

如果学Verilog的话,考虑之后转SystemVerilog。因为它加入了很多Verilog没有的但是很有用的东西,比如自定义类型、接口之类的东西,还有用于仿真验证的随即约束和UVM之类的都是用SysVerilog写的;SysVerilog还简化了一些语法表达,把wire和reg简化成logic数据类型。

仿真工具挺重要的,有Modelsim和VCS可选,up主个人使用Modelsim。

(2)基础知识

包括专业基础课和FPGA相关专业课。

专业基础课包括电路、数电、计算机体系结构、接口、DSP等等,数电优先看。

FPGA相关知识的话,包括FPGA的芯片结构,以及基本组成单元的结构,比如查找表、逻辑单元、逻辑块、DSP、存储器等等。这部分推荐看官方文档和其他的书。

还有一部分很重要的是了解FPGA的开发流程,需要注意到的是时序的收敛、面积的约束、各种仿真等等。作为初学者需要知道为啥需要这些步骤,这些步骤完成了什么功能。

(3)开发工具

主流的就两个Vivado和Quartus,建议最开始专注一个平台。

第一是熟悉开发流程,从创建工程开始。

第二是熟悉常用IP核的用法。

第三是学习一些硬件调试和时序分析的方法。比如一个设计怎么看它的最大频率、时序不收敛的时候怎么分析和修改、怎么使用一些硬件调试的工具。

开发工具建议参考教材或者参考书来学习,多实践。

(4)动手实验

建议结合开发板和参考书上面的例程,从头到尾的走几遍。比较经典的就数码管、按键、流水灯、红绿灯,还有一些常用总线的通信,一些数据处理和信号处理的实验等等。

UP看的是特权同学的书。《深入浅出玩转FPGA》、《勇敢的芯-伴你玩转Altera FPGA》。

买开发板的话淘宝就有。

2.开始整活试水HDL bits。

看完了教程完成了第一题,就是整一个保持在高电平的输出,使用了赋值关键字assign。

第二题就是整一个保持在低电平(或0)的输出变量,hint说了其实不给已经定义的变量赋值的话,它默认也是低电平。

你可能感兴趣的:(Verilog学习日志,fpga,verilog)