近年来,IC行业发展火热,薪资待遇高,发展前景好,所以成了很多人转行的首选。但IC行业入行门槛高,需要具备相关的知识技能。比如工程师必须至少掌握一种HDL语言。
一般在HDL语言中,Verilog相对来说更加易学、易用,已经超过了80%的行业覆盖率,并且运用也非常广泛。基本上所有流行的综合器、仿真器都支持Verilog HDL,所以Verilog也就成为了IC工程师入门必学,接下来IC修真院就来为大家来具体介绍一下Verilog。
Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。
Verilog 继承了 C 语言的多种操作符和结构,与另一种硬件描述语言 VHDL 相比,语法不是很严格,代码更加简洁,更容易上手。
Verilog 虽然有很多语法和C语言类似,上手也比较容易,但想要真正掌握也并不是一件简单事,需要注意的是它的设计方法和设计思维和C语言是并不相同的。
他们的区别主要还是在于Verilog是硬件描述语言,综合实现后的结果对应的是实际的电路,是用软件在编程硬件。而c语言是在固定的硬件上(如cpu,dsp等),用软件实现各种功能。
Verilog HDL是在描述硬件,一但设备电源开启,硬件的每个单元就会一直处于运行状态,所有的电路都是并发执行的,存在并行性的特点。因此,用Verilog所描述的电路模块属于并行结构,是可以在同一时间同时运行的。
而c语言是一行接一行依次执行的,属于顺序结构。因此,不能用c的顺序思想来编写Verilog硬件描述语言,而要用硬件电路设计的思想编写Verilog。
Verilog的主要应用包括:
ASIC和FPGA工程师编写可综合的RTL代码
高抽象级系统仿真进行系统结构开发
测试工程师用于编写各种层次的测试程序
用于ASIC和FPGA单元或更高层次的模块的模型开发
(1)逻辑值
逻辑0:表示低电平,对应电路GND;逻辑1:表示高电平,对应电路VCC;
逻辑X:表示未知;逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态。(和X区分,X是高低电平的一种,而Z是悬空的,可能是高低之间的一种状态)
(2)标识符(identifier)
标识符用于定义模块名、端口名、信号名等。它可以是任意一组字母、数字、$和下划线符号的组合,但是标识符的第一个字符必须是字母或者下划线,标识符是区分大小写的。
(3)数据类型
主要有三大数据类型:寄存器数据类型、线网数据类型和参数数据类型。
寄存器类型(reg):①reg类型数据的默认初始值为不定值x;②reg类型的数据只能在always语句和initial语句中被赋值;
线网数据类型:①包括wire型和tri型,常用wire型;②表示结构实体之间的物理连线;③不能存储值,它的值是由驱动它的元件(门、连续赋值语句、assign)所决定的。
参数数据类型:①参数就是一个常量,在Verilog中用parameter定义常量;②可以一次定义多个参数,参数与参数之间需要用逗号隔开;③每个参数定义的右边必须是一个常数表达式;④参数型数据常用于定义状态机的状态、数据位宽和延迟大小等。
(4)运算符
条件操作符:a ?b :c 代表如果a为真,就选择b,否则选择c;
位运算符:①~a:将a的每个位进行取反;②&:与操作;③|:或操作;④^:异或操作
移位运算符:①a<>b 代表将a右移b位(右移位宽不变)
推荐一个视频学习的网站:https://ic.coachip.cn/course/detail/5
《Verilog HDL高级数字设计》
这本书非个人认为是讲Verilog方面非常清楚的一本书,相信大家在读了这本书之后code水平会有很大的提高。
《设计与验证verilog hdl》
这是一本Verilog及EDA应用书籍,现在市场上关于 Verilog 的书籍大多数是介绍语法和建模的,没有真正体现出理论性与实用性的结合。
《专用集成电路设计实用教程》
这本书综合的比较全面,系统,作者在DC方面有极其丰富的经验,全书将综合的原理和应用讲解的非常清楚。
《数字集成电路–系统与设计》&《数字集成电路分析与设计深亚微米工艺》
这本书堪称是IC行业的入门教程,内容涵盖非常广,从器件到连线到系统,设计时应该注意的方面,经典的解决方案,各个方面都有涉及。
《SOC设计方法与实现》
这本书比较基础的介绍了数字IC设计的流程和特点,可以让初学者在最快的时间内形成一个体系架构。
《Reuse Methodology Manual FOR SYSTEM-ON-A-CHIP DESIGNS》
经典数字IC设计圣经,建议多看几遍,可以让你的SoC设计从理论上有较大的提高。
想要了解更多知识内容可以关注IC修真院官网(ic.coachip.cn)!学习之路上,IC修真院与你同行。