FPGA-DFPGL22学习5-VERILOG

系列文章之 上章

FPGA-DFPGL22学习4-仿真平台学习


前言

@和原子哥一起学习FPGA

开发环境:正点原子 ATK-DFPGL22G 开发板

参考书籍:
《ATK-DFPGL22G之FPGA开发指南_V1.1.pdf》

个人学习笔记,欢迎讨论

一、Verilog 简介

Verilog HDL(以下简称 Verilog),VHDL 是美国军方组织开发的,而 Verilog 是由一个公司的私有财产转化而来。

Verilog 是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻
辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

目前,Verilog-2001 是 Verilog 的最主流版本,被大多数商业电子设计自动化软件支持。

二、Verilog基础

1.逻辑值

逻辑 0:表示低电平,也就是对应我们电路的 GND;
逻辑 1:表示高电平,也就是对应我们电路的 VCC;
逻辑 X:表示未知,有可能是高电平,也有可能是低电平;
逻辑 Z:表示高阻态,外部没有激励信号是一个悬空状态。

2.进制

二进制表示如下:4’b0101 表示 4 位二进制数字 0101;
十进制表示如下:4’d2 表示 4 位十进制数字 2(二进制 0010);
十六进制表示如下:4’ha 表示 4 位十六进制数字 a(二进制 1010)。
当代码中没有指定数字的位宽与进制时,默认为 32 位的十进制,比如 100,实际上表示的值为
32’d100。

3.标识符

标识符(identifier)用于定义模块名、端口名和信号名等。Verilog 的标识符可以是任意一组字母、数
字、$和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。

4.数据类型

寄存器类型

寄存器数据类型有很多种,如 reg、integer、real 等,其中最常用的就是 reg 类型.不能赋初值,寄存器类型的缺省值是 x(未知状态)。

如果该过程语句描述的是时序逻辑,即 always 语句带有时钟信号,则该寄存器变量对应为寄存器;

如果该过程语句描述的是组合逻辑,即 always 语句不带有时钟信号,则该寄存器变量对应为硬件连线

线网类型

线网表示 Verilog 结构化元件间的物理连线。

它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为 z(高阻态)。

线网类型同寄存器类型一样也是有很多种,如 tri 和 wire 等,其中最常用的就是 wire 类型。

默认不指定就是线网类型!

参数类型

参数其实就是一个常量,常被用于定义状态机的状态、数据位宽和延迟大小等

 parameter DATA_WIDTH = 8; //数据位宽为8位

5.运算符

Verilog 中的运算符按照功能可以分为下述类型:
1、算术运算符
Verilog 实现乘除比较浪费组合逻辑资源,尤其是除法。除法只能整除。

2、关系运算符
3、逻辑运算符
4、条件运算符
5、位运算符
6、移位运算符
在这里插入图片描述
7、拼接运算符
{} 用这个运算符可以把两个或多
个信号的某些位拼接起来进行运算操作

三、Verilog 程序框架

1.注释

和C语言一致

正点原子建议的写法:使用//作为注释。

2.关键字

在这里插入图片描述
什么时候用reg,什么时候用wire
一般情况下,always用的是reg,assign用的是wire

3.程序框架

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Verilog 程序语句

1.结构语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.赋值语句

在这里插入图片描述

RHS:赋值等号右边的表达式或变量可以写作 RHS 表达式或 RHS 变量;
LHS:赋值等号左边的表达式或变量可以写作 LHS 表达式或 LHS 变量;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.条件语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Verilog 状态机

1.模型

状态机,全称是有限状态机(Finite State Machine,缩写为 FSM),是一种在有限个状态之间按一定规律转换的时序电路,可以认为是组合逻辑和时序逻辑的一种组合。
➢ Mealy 状态机:组合逻辑的输出不仅取决于当前状态,还取决于输入状态。
➢ Moore 状态机:组合逻辑的输出只取决于当前状态。
在这里插入图片描述

2.设计

四段论
1、状态空间的定义

2、状态跳转
在这里插入图片描述

3、下一状态判断
在这里插入图片描述

4、各个状态下的动作
在这里插入图片描述
在这里插入图片描述

总结

并行考虑,组合思维,时序思维很重要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值