FPGA入门(2):Verilog HDL基础语法

简介: FPGA入门(2):Verilog HDL基础语法

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

Verilog语言:

  1. 语法自有,易学易用
  2. 适合算法级、门级设计
  3. 代码简洁
  4. 发展较快

VHDL语言:

  1. 语法严谨,难以上手
  2. 适合系统级设计
  3. 代码冗长
  4. 发展缓慢

0 Verliog语言

  • 模块开始结束:module、endmodule
  • 输入输出:input、output、inout
  • 线网型变量wire、寄存器型变量reg
  • 参数parameter、localparam

常量表示格式:[换算为二进制后位宽的总长度]['][数值进制符号][与数值进制符号对应的数值]

8'd171:位宽是8bit,十进制是171

赋值方式:阻塞赋值(顺序进行)、非阻塞赋值(同时执行)

例:阻塞赋值

a = 1;
b = 2;
c = 3;
begin
  a = b;
  c = a;
end
a = 2;
b = 2;
c = 2;

例:非阻塞赋值

a = 1;
b = 2;
c = 3;
begin
  a <= b;
  c <= a;
end
a = 2;
b = 2;
c = 1;

逻辑值

0:逻辑低电平,条件为假

1:逻辑高电平,条件为真

z:高阻态,无驱动

x:未知逻辑电平

1 运算符

算数运算符

+(加法,如assign c = a+b;就是把a与b的和赋给c)

-(减法,如如assign c = a-b;就是把a与b的差赋给c)

*(乘法,如如assign c = a乘以3;结果赋给c)

/(除法,如如assign c = a/2;结果赋给c,一般不会用除号)

%(求模,或者称为求余,要求%两侧均位整形数据,5%3的值为2,用在测试文件)

归约运算符、按位运算符

作为一元运算符时:将所有比特相与

&4'b1111 = 1&1&1&1 = 1'b1
&4'b1101 = 1&1&0&1 = 1'b0

作为二元运算符时:对应为相与

4'b1010&4'b0101 = 4'b0000
4'b1101&4'b1111 = 4'b1101

其他操作符同理

逻辑运算符

关系运算符

位移运算符

拼接运算符

条件运算符

优先级

case分支语句

2 系统函数

常见系统函数:

$display  //打印信息,自动换行
$write    //打印信息
$strobe   //打印信息,自动换行,最后执行
$monitor  //检测变量,变量发生变化就会执行这语句
$stop     //暂停仿真
$finish   //结束仿真
$time     //时间函数
$random   //随机函数
$readmemb //读文件函数

1、display

$display("%b+%b=%d",a,b,c);
//%h,十六进制
//%d,十进制
//%o,八进制
//%b,二进制

2、write

$write("%b+%b=%d\n",a,b,c);   //不会自动换行

参考博客

https://blog.csdn.net/yanyonglin123/article/details/123361964


目录
相关文章
|
2月前
|
编解码 算法 异构计算
基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序
在Vivado 2019.2和Matlab 2022a中测试的图像质量评估算法展示了效果。该算法基于NC指标,衡量图像与原始图像的相似度,关注分辨率、色彩深度和失真。提供的Verilog代码段用于读取并比较两个BMP文件,计算NC值。
|
2天前
|
异构计算
FPGA入门(6):数码管静态/动态显示(二)
FPGA入门(6):数码管静态/动态显示(二)
18 10
|
5天前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
2天前
|
缓存 异构计算
FPGA入门(7):IP核调用(二)
FPGA入门(7):IP核调用(二)
2 0
|
2天前
|
异构计算
FPGA入门(7):IP核调用(一)
FPGA入门(7):IP核调用(一)
14 0
|
2天前
|
异构计算
FPGA入门(6):数码管静态/动态显示(一)
FPGA入门(6):数码管静态/动态显示
10 0
|
2天前
|
异构计算
FPGA入门(5):控制LED灯
FPGA入门(5):控制LED灯
7 0
|
2天前
|
异构计算
FPGA入门(4):时序逻辑(二)
FPGA入门(4):时序逻辑(二)
12 0
|
2天前
|
存储 异构计算
FPGA入门(4):时序逻辑(一)
FPGA入门(4):时序逻辑
10 0
|
2天前
|
存储 异构计算
FPGA入门(3):组合逻辑
FPGA入门(3):组合逻辑
6 0