news 2026/7/4 3:16:50

Verilog 零基础入门:最核心的基本语法大全(新手必藏)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Verilog 零基础入门:最核心的基本语法大全(新手必藏)

很多刚入门FPGA/IC设计的同学,最开始的困惑不是“写复杂代码”,而是分不清Verilog的语法规则、不会区分硬件与软件编程逻辑

和C语言纯软件顺序执行不同,Verilog是硬件描述语言,核心是描述电路结构、并行逻辑,这也是新手最容易踩坑的地方。

今天这篇文章,我把Verilog最核心、最常用、面试必问的基础语法一次性讲清楚,零基础也能看懂,适合收藏入门、复习巩固!

一、Verilog 核心认知:和C语言最大的区别

1.C语言:串行执行,一行跑完再跑下一行,用于软件运算;

2.Verilog:并行执行,所有模块、逻辑同时工作,用于搭建硬件电路;

3. Verilog 所有代码最终都会被综合成真实硬件电路,不是单纯的程序运行。

新手口诀:Verilog写的不是程序,是电路!

二、最基础:模块结构(所有代码的框架)

模块(module)是Verilog的最小单元,所有代码都必须包在模块里,相当于电路的“外壳”。

1. 标准模块格式

verilog
module 模块名(输入输出端口);
// 内部信号定义
// 逻辑代码
endmodule

2. 最简示例(二输入与门)

verilog
module and_gate(
input a,
input b,
output y
);

assign y = a & b;

endmodule

3. 端口类型详解

input:输入端口,接收外部信号

output:输出端口,向外输出信号

inout:双向端口,既可输入也可输出(常用在I2C、SPI等总线)

三、数据类型(新手重中之重)

Verilog 核心只有两种数据类型,对应两种硬件电路,绝对不能混用

1. wire 线型(组合逻辑专用)

代表硬件导线、连线

数值随时变化,无记忆功能

必须用assign持续赋值

常用于组合逻辑电路(与或非门、加法器、多路选择器)

2. reg 寄存器型(时序逻辑专用)

代表硬件触发器(DFF)

有记忆功能,时钟触发才更新数值

只能在always块内部赋值

常用于时序逻辑电路(计数器、状态机、寄存器缓存)

核心规则:

assign 赋值 → 用 wire

always 块赋值 → 用 reg

四、两大核心逻辑块:组合逻辑 + 时序逻辑

Verilog 99%的代码,都是由这两种逻辑组成,吃透就掌握大半语法。

1. 组合逻辑(无时钟、无记忆)

特点:输入变,输出立刻变,不需要时钟,无延迟。

两种写法:

① assign 连续赋值(简单逻辑首选)

verilog
wire y;
assign y = a | b; // 或门逻辑

② always @(*) 通用组合逻辑

verilog
reg y;
always @(*) begin
y = a & b;
end

注意:组合逻辑必须用 @(*),不能写时钟,否则会生成锁存器(BUG源头)。

2. 时序逻辑(有时钟、有记忆)

特点:时钟边沿触发,只有时钟到来才更新数据,保持数据稳定。

最常用:上升沿触发

verilog
reg cnt;
always @(posedge clk) begin
// 时钟上升沿执行逻辑
cnt <= cnt + 1'b1;
end

边沿关键词:

posedge:上升沿

negedge:下降沿

五、赋值语句:阻塞 vs 非阻塞(最高频考点)

这是新手最容易出错、面试必问的语法点!

1. 非阻塞赋值 <= (时序逻辑专用)

用于 always 时钟块(时序逻辑)

并行赋值,不会阻塞后续代码

不会产生竞争冒险,电路稳定

标准用法:

verilog
always @(posedge clk) begin
a <= b;
c <= d;
end

2. 阻塞赋值 = (组合逻辑专用)

用于 always @(*) 组合逻辑块

顺序执行,写完一句再写下一句

时序逻辑乱用会导致时序错乱、仿真报错

标准用法:

verilog
always @(*) begin
a = b;
c = d;
end

终极口诀:

时序用 <= ,组合用 =

永不混用,杜绝BUG

六、常用运算符(日常编码全覆盖)

1. 逻辑运算(判断条件)

&& 逻辑与

|| 逻辑或

! 逻辑非

2. 位运算(硬件电路核心)

& 按位与

| 按位或

^ 按位异或

~ 按位取反

3. 移位运算(高频使用)

<< 左移(等价乘2)

>> 右移(等价除2)

4. 三目运算符(精简组合逻辑)

verilog
assign y = en ? a : b;

释义:en为真取a,否则取b,替代简单if-else,代码更简洁。

七、流程语句:if / else + case

1. if-else 语句(条件判断)

多用于简单分支逻辑,支持多级嵌套

verilog
always @(*) begin
if(en) begin
y = 1'b1;
end else begin
y = 1'b0;
end
end

避坑:组合逻辑if必须写全else,否则生成锁存器!

2. case 语句(多分支首选,状态机专用)

多条件判断比if-else层级清晰,不易出错

verilog
always @(*) begin
case(op)
2'b00: y = a + b;
2'b01: y = a - b;
2'b10: y = a & b;
default: y = 1'b0; // 必须加default,避免锁存器
endcase
end

八、位宽定义(Verilog必备规范)

Verilog所有信号必须指定位宽,默认32位极易出错!

标准格式

verilog
[高位:低位] 信号名

示例

verilog
wire [3:0] data; // 4位数据
reg [7:0] cnt; // 8位计数器
1'b0; // 1位二进制0
4'hF; // 4位十六进制F

九、新手必须遵守的编码规范

1.组合逻辑:用assign或always@(*)、阻塞赋值=、分支写全不缺项

2.时序逻辑:用always@(posedge clk)、非阻塞赋值<=

3.wire只用于连线,reg只用于时序寄存器

4.所有多分支逻辑,必须加default/else,杜绝锁存器

5.所有常量明确位宽,不使用默认位宽

十、总结

Verilog入门核心不在于记复杂语法,而在于建立硬件思维

分清wire/reg、区分阻塞/非阻塞、拆分组合/时序逻辑,掌握这三点,你就搞定了80%的基础语法。

后续的计数器、移位寄存器、状态机、接口逻辑,都是以上基础语法的组合复用。

需要完整Verilog入门案例、新手练习代码包,可以持续关注后续更新!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 3:16:46

python-LangGraph框架(3-32-LangGraph 并行验证)

一、LangGraph 并行执行核心优势相比其他工作流框架&#xff0c;LangGraph 的并行能力具备三大核心亮点&#xff1a;极简定义&#xff0c;无冗余代码&#xff1a;无需手动管理线程、协程&#xff0c;框架底层自动处理任务并发&#xff0c;专注业务逻辑即可&#xff1b;状态自动…

作者头像 李华
网站建设 2026/7/4 3:15:55

大语言模型能力评测:V3题库深度解析与实操指南

1. 这不是排行榜&#xff0c;而是一份“模型能力显微镜”使用报告我做这个横评系列已经快一年了&#xff0c;从最初用几个简单逻辑题随手测一测身边同事推荐的模型&#xff0c;到现在手头攒着27道自己打磨出来的、专门用来“找茬”的题目&#xff0c;背后其实就一个朴素想法&am…

作者头像 李华
网站建设 2026/7/4 3:15:47

Holoscan SDK 概述

Holoscan SDK 概述 原文来源&#xff1a; NVIDIA Holoscan SDK 文档 翻译日期&#xff1a; 2026年7月2日 平台简介 NVIDIA Holoscan 是 AI 传感器处理平台&#xff0c;它整合了用于低延迟传感器和网络连接的硬件系统、用于数据处理和 AI 的优化库&#xff0c;以及用于运行流式…

作者头像 李华
网站建设 2026/7/4 3:15:35

解锁论文极速通关!okbiye AI写作搞定全学段毕业论文难题

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 引言&#xff1a;为什么普通AI写论文总踩坑&#xff1f; 问&#xff1a;很多同学用AI写毕业论文&#xff0c;普遍都会遇到哪些无解的通病…

作者头像 李华
网站建设 2026/7/4 3:12:14

第17章:Docker 大厂面试题精选(腾讯/阿里/字节/美团)

第17章&#xff1a;Docker 大厂面试题精选&#xff08;腾讯/阿里/字节/美团&#xff09; 本文档按真实面试流程组织&#xff0c;从浅到深、从基础到场景&#xff0c;模拟面试官的提问方式和追问逻辑。每道题给出面试官想听到的回答和踩坑点&#xff0c;而非教科书式的标准答案。…

作者头像 李华