FPGA学习--verlog基础语法篇
提示:查看本系列之前需要有一点数电的基础。
本文系列都基于正点原子新起点开发板
FPGA系列
1,verlog基本语法(随时更新)
2,流水灯(待定)
3,FGPA实验——触摸按键
一,verlog基本语法
1,数据类型
寄存器类型,线网类型,参数类型。
寄存器类型:存储数据的(reg、integer、real)
线网类型:表示模块之间的连线(tri 和 wire)
参数类型:常量,定义状态机的状态,数据位宽,延迟大小等数据。
2,运算符
1
、算术运算符:+,-,*,/,%(模除,取余)
2
、关系运算符:>,<,>=,<=,==,!=,
3
、逻辑运算符:&&,||,!(与或非)
4、条件运算符:
? : ,a ? b : c (如果 a 为真,就选择 b,否则选择 c)
5
、位运算符:~,&,|,^(按位,与或非,异或)
6、移位运算符: << ,>>(左移或者右移多少位,看朝向)
7、拼接运算符:
{} {a,b} (将 a 和 b 拼接起来,作为一个新信号)
3, 程序框架(语法,关键字,注释)
1,关键字
下面就是框架,具体使用后面项目用的多了就熟悉了。
4,高级知识点
1,赋值(阻塞,非阻塞)
阻塞:=,被赋值的值完成赋值前,后面的也不能跑(组合逻辑)
非阻塞:<=,不卡在那里,一个时钟沿执行一次操作,没执行完下一个时钟沿(时序逻辑)
2,寄存器和锁存器(latch)
寄存器:边沿触发
锁存器(latch):电平触发,会有毛刺(竞争冒险)
3,状态机
状态机,全称是有限状态机(Finite State Machine,缩写为 FSM
),是一种在有限个状态之间按一定规 律转换的时序电路,可以认为是组合逻辑和时序逻辑的一种组合。状态机通过控制各个状态的跳转来控制 流程,使得整个代码看上去更加清晰易懂,在控制复杂流程的时候,状态机优势明显,因此基本上都会用 到状态机,如 SDRAM 控制器等。
摩尔(Moore)型状态机和米勒 (Mealy)型状态机。