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


目录
打赏
0
0
0
0
16
分享
相关文章
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
130 74
基于FPGA的信号发生器verilog实现,可以输出方波,脉冲波,m序列以及正弦波,可调整输出信号频率
本项目基于Vivado2019.2实现信号发生器,可输出方波、脉冲波、m随机序列和正弦波。完整程序无水印,含详细中文注释与操作视频。FPGA技术使信号发生器精度高、稳定性强、功能多样,适用于电子工程、通信等领域。方波、脉冲波、m序列及正弦波的生成原理分别介绍,代码核心部分展示。
基于FPGA的直接数字频率合成器verilog实现,包含testbench
本项目基于Vivado 2019.2实现DDS算法,提供完整无水印运行效果预览。DDS(直接数字频率合成器)通过数字信号处理技术生成特定频率和相位的正弦波,核心组件包括相位累加器、正弦查找表和DAC。相位累加器在每个时钟周期累加频率控制字,正弦查找表根据相位值输出幅度,DAC将数字信号转换为模拟电压。项目代码包含详细中文注释及操作视频。
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
151 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
FPGA新起点V1开发板(八-语法篇)——状态机
FPGA新起点V1开发板(八-语法篇)——状态机
108 3
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
120 1
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
177 69
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
96 26

热门文章

最新文章