【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法

这里写目录标题

  • Verilog HDL简介
    • 与VHDL比较
  • Verilog HDL基础语法
    • 逻辑值
        • 关键字
          • module
          • endmodule
        • 模块名
        • 输入信号
        • 输出信号
        • 既做输入也做输出
        • 线网型变量 wire
        • 寄存器型变量 reg
        • 参数 parameter
        • 参数 localparam
        • 常量
        • 赋值方式
          • 阻塞赋值
          • 非阻塞赋值
        • always语句
        • assign 语句
    • 算数运算符
    • 归元运算符、按位运算符
    • 逻辑运算符
    • 关系运算符
    • 移位运算符
    • 位拼接运算符
    • 条件运算符
    • 优先级
    • if-else 条件分支语句
    • case分支控制语句
    • 系统函数
      • display
      • write
      • strobe
      • monitor
      • stop ,finish
      • time,random
      • readmemb,readmemh

Verilog HDL简介

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第1张图片
就是用代码来描述硬件结构
语言有VHDL与Verilog HDL

与VHDL比较

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第2张图片
Verilog HDL 是从C语言来的,学的快

Verilog HDL基础语法

逻辑值

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第3张图片
###例子
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第4张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第5张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第6张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第7张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第8张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第9张图片

关键字

也叫保留字,一般是小写

module

表示模块的开始

endmodule

模块的结束

模块名

一般与.v文件的名字一致

在这里插入图片描述

输入信号

input

输出信号

output

既做输入也做输出

inout

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第10张图片
需要一些变量和参数对输入信号进行处理得到输出信号,变量又分为两种类型

线网型变量 wire

可以看作直接的链接,可以映射为一条真实存在的物理连线

寄存器型变量 reg

对某一时间点状态进行保持的功能,可以映射为一条真实的元器

参数 parameter

实例化可以修改参数

参数 localparam

只能在模块内部使用,不能实例化

常量

基数表示法
格式:[ 换算为二进制后位宽的总长度 ] [ ’ ] [ 数值制符号 ] [ 与数值进制符号对应的数值 ]
8‘d171:位宽是8bit,十进制的171。
[数值进制符号]中如果是[h]则表示十六进制,如果是[o]则表示八进制,如果是[b]则表示二进制,D 表示十进制
8’hab表示8bit的十六进制数ab,
8’o253表示8bit的八进制数253:
8’b10101011表示8b性的二进制数10101011,下划线增强可读性。
[换算为过进制后位宽的总长度]:可有可无,verilog会为常量自动匹配合适的位宽。
当总位宽大于实际位宽,则自动在左边补0,总位宽小于实际位宽,则自动截断左边超出的位数。
'd7与8’d7:表示相同数值,8’d7换算为二进制就是8’b0000—0111,前面5位补0;
2’d7换算为二进制就是2’b11,超过2位宽的部分被截断。
如果直接写参数,例如100,表示位宽为32bit的十进制数100·

赋值方式

赋值方式有两种,一种是阻塞赋值,一种是非阻塞赋值

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第11张图片

阻塞赋值

可以理解为顺序执行,即第一句语句执行玩之后才会执行第二句语句

非阻塞赋值

语句是并行执行,同一时刻两条语句同时执行

always语句

使用前面定义的计数器
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第12张图片
当复位信号有效时,我们给变量cnt初值是0.如果计数到最大值我们设定的参数时,就一直保持最大值,如果没有技术到最大值,每个时钟周期值+1

assign 语句

如果括号内的条件满足的话,就将第一个值赋值给某一个变量,如果不满足的话,就将第二个值赋值给这个变量

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第13张图片

算数运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第14张图片

归元运算符、按位运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第15张图片
在这里插入图片描述

逻辑运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第16张图片

关系运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第17张图片
在这里插入图片描述

移位运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第18张图片

位拼接运算符

在这里插入图片描述

条件运算符

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第19张图片

优先级

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第20张图片

if-else 条件分支语句

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第21张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第22张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第23张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第24张图片

case分支控制语句

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第25张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第26张图片

系统函数

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第27张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第28张图片

display

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第29张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第30张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第31张图片

write

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第32张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第33张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第34张图片

strobe

但是只在最后执行
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第35张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第36张图片

monitor

在这里插入图片描述
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第37张图片

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第38张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第39张图片

stop ,finish

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第40张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第41张图片
继续仿真不是从头开始执行的,而是从暂停的地方开始执行的

time,random

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第42张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第43张图片

readmemb,readmemh

【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第44张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第45张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第46张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第47张图片
【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法_第48张图片

你可能感兴趣的:(fpga开发,学习,笔记)