EDA Academy Navigation

Verilog编程基础

用 Verilog 开始设计数字电路:初学者指南

本课程将作为你学习 Verilog 的入门课程。Verilog 是数字设计中必不可少的硬件描述语言。通过理论与实践相结合的方式,你将学习 Verilog 编码的基础知识,包括逻辑门、电路数据类型以及过程语句。课程结束时,你将能够使用 Verilog 设计、仿真并实现基本的数字电路,为后续更高级的数字设计项目奠定坚实的基础。

购买须知

我们的课程大纲会定期更新,以反映该领域的最新进展和最佳实践。对于单独购买且享有终身访问权限的课程或资源,学员可永久访问内容并免费获得更新。对于会员,有效订阅期间可访问所有“会员免费”的精选课程和资源(包括未来的更新)。这样既能确保终身购买的学员,也能让在订阅有效期内的会员,享受到最新、最相关的内容。

Created by EDA Academy

Chinese

Last updated Sep 2025


Verilog编程基础

USD $49.9

永久可访问课程

免费

Time-limited Offer







您还可以:




完成本课程后,你将能够:

  • 探索逻辑设计与电路分析的基本概念

  • 学习硬件描述语言与 Verilog 在数字系统设计中的应用

  • 掌握 Verilog 数据类型,实现高效设计表示

  • 使用 Verilog 运算符实现精确的设计功能

  • 通过 Verilog 过程语句描述设计行为

  • 在组合逻辑和时序逻辑中应用 Verilog 赋值语句

  • 理解 Verilog 仿真周期

  • 利用 Verilog 子程序提升代码可读性与可重用性

  • 通过 Verilog 编译指令优化编译过程

通过本课程,你可以获得:

  • 4.2 小时沉浸式高质量教学视频:由资深团队精心录制,9个核心模块32个教学视频,内容涵盖核心概念与实战演示,配合循序渐进的讲解与真实案例,让你在短时间内高效吸收知识、立刻上手应用。

  • 112个测试题:配套练习帮助你巩固所学知识,检验学习成果,并在实战场景中提升解决问题的能力。

  • 结业证书:顺利完成课程后可获得由 EDA Academy 颁发的官方结业证书,为你的简历与职业发展增添亮点。

  • 可在手机和电脑上访问:课程可在手机、平板与电脑上随时观看,让你无论在办公室、家中或出行途中,都能轻松学习。

  • 来自 EDA Academy 的持续支持:课程结束后,你依然可以获得我们团队的持续支持,帮助你巩固知识、解决实际问题。

  • 进阶学习规划:为你提供后续学习路径与推荐资源,让你在掌握本课程内容的基础上持续提升技能,拓展职业发展空间。

内容大纲 (含免费预览视频)

Module 0: Verilog 编程基础(预览)
✓ Verilog 编程基础(预览)
✓ 关于本课程(预览)
✓ 课程目标(预览)
✓ 课程大纲(预览)
Module 1: 逻辑设计基础

✓ 基本逻辑门与化简技术介绍

基本逻辑门

全加器示例

使用布尔代数简化逻辑函数

使用卡诺图简化逻辑函数

✓ 数字逻辑与时序电路设计基础

使用 NAND 和 NOR 门进行设计

组合电路中的危险

触发器的类型

Mealy 序贯电路设计

✓ 时序电路的设计原则与关键概念

Moore 序贯电路的设计

序贯电路中的状态等效性和优化

序贯电路中的关键时序考虑因素

三态缓冲器及其在数字电路中的作用

Module 2: Verilog 简介

✓ 在数字设计中使用 HDL 的关键概念与优势

数字设计中的关键概念

硬件描述语言 (HDL)

HDL 设计中的抽象级别

使用 HDL 的好处

✓ Verilog HDL 设计中的角色、挑战与基础

基于 HDL 的数字系统设计中的角色

采用 HDL 的挑战

Verilog 语言的关键特性

Verilog 模块声明的基础知识

✓ Verilog 模块实例化、连接与过程结构

Verilog 模块层次结构和实例化

Verilog 中的端口连接语法

模块实例中的端口连接

在 Verilog 中使用过程构造

✓ Verilog 的时序、命名与仿真过程

同步模块行为

命名规则、大小写敏感性和 Verilog 中的注释

模拟 HDL 设计:编译、库和细化

Module 3: Verilog 数据类型

✓ Verilog 的值、数据类型与端口规则

Verilog 值集和仿真行为

Verilog 数据类型概述

Verilog 网络和寄存器规则

Verilog 端口类型规则

✓ Verilog 向量

声明向量

在不同向量宽度之间分配

指定文字值

无符号文字的自动扩展

变量向量选择

✓ Verilog 网线(Nets)

声明网络

处理未声明的标识符

网络声明分配

解决网络冲突

✓ Verilog 变量、数组与参数管理

变量类型

整数和 reg 分配

Verilog 中的数组

声明模块参数

本地参数和参数传递

Module 4: 应用 Verilog 运算符

✓ Verilog 运算符:按位、单目归约、逻辑与算术

按位运算符

一元归约运算符

逻辑运算符

算术运算符

增强有符号算术

✓ Verilog 运算符:移位、关系与相等比较

移位运算符

关系运算符

相等运算符

✓ Verilog 运算符:条件、连接与复制

条件运算符

连接运算符

复制运算符

Verilog 运算符优先级

Module 5: 编写程序语句

✓ 模块行为与过程赋值

描述模块行为

同步模块行为

程序块之间的交互

程序赋值

✓ 条件语句

条件语句

✓ Case 语句

Case 语句

Casex 语句

Casez 语句

✓ 循环语句

while 循环语句

for 循环语句

repeat 循环语句

forever 循环语句

Module 6: Verilog 中的赋值类型

✓ 阻塞赋值

理解阻塞赋值

阻塞赋值中的竞争条件

阻塞赋值顺序的影响

✓ 非阻塞赋值

理解非阻塞赋值

顺序过程中的非阻塞赋值

在顺序逻辑中使用临时变量

管理过程中的多个赋值

✓ 连续赋值

理解连续赋值

多个连续赋值

✓ 过程赋值

理解过程赋值

多个过程赋值

避免组合反馈循环

✓ Generate 语句

在 Verilog 中生成语句

生成语句 - 条件 If

生成语句 - 条件 Case

生成语句 - For 循环

Module 7: 模拟周期

✓ Verilog 过程块与赋值类型

程序块和事件控制

阻塞程序分配

非阻塞程序分配

✓ 模拟周期

模拟周期:1/6

模拟周期:2/6

模拟周期:3/6

模拟周期:4/6

模拟周期:5/6

模拟周期:6/6

模拟周期摘要

✓ 时序控制:事件、敏感事件、延时与时间刻度(Timescale)

Verilog 时序控制

事件控制

电平敏感事件控制

延迟控制

时间尺度指令

Module 8: 函数和任务

✓ Verilog 函数

Verilog 子程序概述

函数声明

调用函数

常量函数

✓ Verilog 任务

任务声明

调用任务

禁用任务

函数和任务中的问题

自动任务

✓ 参数传递、副作用与变量访问

Verilog 中的参数传递

子程序副作用

通过子程序访问模块变量

Module 9: Verilog 编译器指令

✓ Verilog 编译指令:Define、Ifdef 和 Include

如何使用 `define 指令

使用 `ifdef 指令

使用 `include 指令

✓ Verilog 编译指令:Timescale、Begin_keywords 和 End_keywords

使用 `timescale 指令

使用 `begin_keywords、`end_keywords 指令

✓ Verilog 编译指令:Pragma 和 Default_nettype

使用 `pragma 指令

使用 `default_nettype 指令

关键 Verilog 编译器指令

✓ 基本逻辑门与化简技术介绍

基本逻辑门

全加器示例

使用布尔代数简化逻辑函数

使用卡诺图简化逻辑函数

课程要求:

本课程《Verilog 编程基础》专为具备数字逻辑设计基本理解的初学者设计。学习者应熟悉基本的逻辑门电路,例如与门 (AND)、或门 (OR) 和非门 (NOT),以及布尔代数和卡诺图等基础概念。不需要具备 Verilog 的先前知识,但如果理解电路的工作原理并熟悉基本的编程概念,将会有所帮助。对数字硬件设计和验证的基本理解是必要的。同时,对硬件描述语言和数字微电子的兴趣也很重要,因为本课程将建立在这些概念之上。为了最大程度地从课程中获益,建议满足以下先修条件。

  • 熟悉布尔代数,包括逻辑函数化简和电路设计。

  • 理解数字微电子学,重点在数字电路的设计与验证。

  • 熟悉硬件设计原理,例如创建和分析数字电路。

  • 熟悉逻辑设计工具与技术,用于理论和实际应用。

  • 掌握一种过程式编程语言的知识将有助于学习体验。

本课程适合:

  • 电气工程专业的学生:希望在数字设计中获得实践经验。

  • 硬件描述语言的初学者:希望学习 Verilog 的基础知识。

  • 转向数字设计的工程师:有兴趣掌握 Verilog 以提升职业发展。

  • FPGA 开发人员:致力于提升 Verilog 编码技能,用于 FPGA 项目。

  • 数字电路设计人员:希望系统化理解 Verilog。

  • VLSI 设计的学生:希望加强在硬件描述语言方面的基础。

  • 计算机科学专业的学生:渴望探索计算的硬件领域。

  • 从事嵌入式系统工作的专业人员:因项目需求需要学习 Verilog。

  • 硬件设计的初级工程师:希望提高 Verilog 的实践技能。

  • ASIC 设计人员:致力于提升 Verilog 技能,以实现高效电路设计。

课程介绍:

本课程旨在带你了解 Verilog 的基本概念,这是一种强大的硬件描述语言。无论你是数字设计的新手还是希望提升技能的工程师,本课程都将为你提供扎实的 Verilog 基础。我们将探讨基本逻辑门,学习如何使用 Verilog 描述硬件,并深入了解数据类型、运算符和过程语句。课程结束时,你将熟练掌握 Verilog 的核心功能,并能够在自己的项目中应用这些知识。

在《Verilog 编程基础》课程中,你将首先学习逻辑设计的基础知识,包括基本的逻辑门,如 AND、OR、NAND 和 NOR。我们将详细讲解这些门的工作原理以及如何在数字电路设计中使用它们。你还将学习如何使用布尔代数和 Karnaugh 图简化逻辑函数,并利用这些基本构建块设计电路。

接下来,课程将介绍硬件描述语言 Verilog,这是一种广泛用于数字系统设计的语言。我们将覆盖 Verilog 的核心概念,如数据类型、运算符和过程语句。你将获得编写 Verilog 代码的实际经验,并理解如何将其用于设计和模拟数字电路。

课程结束时,你将能够在自己的项目中熟练运用 Verilog。你将深入了解如何描述硬件行为、管理数据类型,并应用各种运算符和构造。这些知识将对你未来在更复杂设计和模拟中的工作非常宝贵。

学习目标:

  • 1、深入了解逻辑设计的基础知识,重点关注 AND、OR、NOT、NAND、NOR、XOR 和 XNOR 等基本门电路,以及它们在创建数字电路中的作用。本课程将引导你通过布尔代数和卡诺图来设计和分析组合电路。高级主题包括使用 NAND 和 NOR 门进行电路设计、理解组合电路中的风险,以及探索用于时序电路设计的触发器。此外,你还将学习 Mealy 和 Moore 时序电路、状态等效性、优化技术、关键时序考虑以及三态缓冲器的作用。你将能够有效地应用这些原理来设计和优化数字电路。

  • 2、了解硬件描述语言 (HDL) 的基础知识以及如何使用 Verilog 设计数字系统。你将学习如何使用 Verilog 的核心语言结构(包括模块定义、设计层次结构和行为描述)来描述硬件设计。课程还将教你你如何使用 Verilog 同步和通信设计的不同部分。此外,你还将学习 Verilog 代码中标识符、注释和空白符使用的规则,确保你能够有效地描述和配置简单的设计。

  • 3、了解不同的 Verilog 数据类型以及如何在设计中准确表示值。你将学习逻辑值、网络和寄存器,以及声明这些类型的规则和示例。课程还涵盖向量声明、处理截断和填充以及定义文字值。你将学习如何声明网络、变量、数组和模块参数,从而有效地管理设计中的值。

  • 4、了解各种 Verilog 运算符,这些运算符可以精确控制你的设计。这包括按位运算符、简化运算符、算术运算符、移位运算符、关系运算符、逻辑运算符和条件运算符。你还将了解连接和复制运算符。你将能够有效地在 Verilog 代码中应用这些运算符来实现准确和优化的设计。

  • 5、学习使用 Verilog 过程语句描述设计行为。课程将涵盖 initial 和 always 等过程块,以及用于管理执行时序的事件控制块。你将探索过程赋值、分支语句 (if-else、case) 和循环语句 (for、while、repeat、forever)。这些工具将帮助你有效地描述和管理 Verilog 设计的行为。

  • 6、了解阻塞和非阻塞赋值之间的差异及其在不同场景中的适当使用。你将学习连续和过程赋值,了解它们对仿真和设计行为的影响。这些知识将帮助你做出明智的选择,确保设计的准确性和效率。

  • 7、了解 Verilog 仿真周期如何影响代码执行。你将学习过程块、不同类型的赋值和事件控制,以最大限度地减少不确定性和竞争条件的风险。课程还涵盖了同步技术,包括电平敏感和延迟控制,帮助你编写可靠的 Verilog 代码以用于仿真。

  • 8、学习使用 Verilog 子程序(包括函数和任务)使你的代码更具可读性和复用性。函数有助于通过执行计算并返回单个结果来简化逻辑,而任务可以执行更复杂的操作。你还将探索常见问题,例如静态变量和参数传递,确保你能够有效地管理代码复杂性。

  • 9、了解如何使用编译器指令来控制和优化Verilog代码的编译过程。你将学习文本替换、条件编译、包含外部文件、设置仿真时间尺度以及应用编译指示。这些指令将使你能够更有效地管理Verilog源文件的编译。