跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Verilog 入门:语法、仿真与 FPGA 实战

综述由AI生成介绍 Verilog 零基础入门知识,涵盖数字电子与 C 语言基础要求。详细说明了 FPGA/ASIC 开发环境选择及路径约束注意事项,梳理了从需求分析到时序仿真的完整设计流程。核心部分讲解了 Verilog 基础格式规范、标识符关键字、数值表示规则及数据类型,并通过代码示例展示了格式化与紧凑写法的区别。

HadoopMan发布于 2026/4/6更新于 2026/5/2027 浏览

一、入门前提

Verilog 是 FPGA 开发的核心硬件描述语言,学习需具备两大基础:一是数字电子技术常识(理解逻辑门、时序 / 组合逻辑等概念),二是 C 语言基础(有助于快速适应语法结构)。学习核心是掌握'代码→硬件'的映射逻辑,而非单纯记忆语法。

二、仿真环境选择

根据开发场景选择适配环境,需重点注意路径约束:

  • FPGA 开发环境:Xilinx Vivado(主流推荐)、Xilinx ISE(已停更)、Intel Quartus II
  • ASIC 开发环境:Synopsys VCS
  • 关键约束:电脑用户名、软件安装路径、工程路径必须全英文(无中文 / 特殊符号),否则会导致软件启动失败、编译报错或仿真异常。

三、Verilog 设计流程

  1. 需求分析:明确电路核心功能(如 LED 闪烁、数据运算);
  2. 功能划分:拆解复杂功能为独立子模块(如时钟模块、逻辑处理模块);
  3. HDL 描述:用 Verilog 代码编写模块,定义端口、数据类型与逻辑功能;
  4. 功能仿真:验证代码逻辑正确性,不通过则返回修改;
  5. 逻辑综合:将代码映射为 FPGA 内部物理结构(查找表、触发器等);
  6. 布局布线:按时序、引脚约束,匹配 FPGA 硬件资源;
  7. 时序仿真:验证时序性能,无问题则生成比特流文件,下载至 FPGA 硬件。

四、核心语法规则

1. 基础格式规范
  • 大小写敏感:clk与CLK是不同标识符,关键字必须全小写;
  • 空格与换行:无语法意义,可灵活排版;
  • 语句结束:以分号;结尾,不可省略;
  • 注释方式:单行// 注释内容,多行/* 注释内容 */(不可嵌套)。

示例(两种写法功能一致):

// 推荐写法:分行排版
input wire a;
input wire b;
wire [1:0] results;
assign results = (a == 1'b0) ? 2'b01 : (b == 1'b0) ? 2'b10 : 2'b11;

// 紧凑写法:语法合法但可读性差
input wire a;
input wire b;
wire[1:0] results;
assign results = (a==1'b0)?2'b01:(b==1'b0)?2'b10:2'b11;
2. 标识符与关键字
  • 标识符:变量 / 模块的'名字',首字符为字母 / 下划线,后续可接字母 / 数字 / 下划线(不可数字 / 特殊符号开头);
  • 关键字:语言预留功能词汇(全小写),如reg(寄存器)、input(输入端口)、wire(线网)等;
  • 示例:reg [3:0] counter;中,reg是关键字,counter是标识符。
3. 数值表示规则
1. 四种基础逻辑值(硬件电平描述)
  • 0:逻辑 0(低电平,'假');
  • 1:逻辑 1(高电平,'真');
  • x/X:未知状态(信号可能为 0 或 1);
  • z/Z:高阻状态(无驱动源,逻辑值由上下拉电阻决定)。
2. 进制格式(格式:位宽 +' 进制符号 + 数值)
  • 二进制:'b(如2'b01);
  • 八进制:'o(如3'o15);
  • 十进制:'d(如4'd10);
  • 十六进制:(如,适合简化宽位数据)。
'h
8'h3F
4. 核心数据类型(仅两种,明确硬件映射)
1. reg 类型

目录

  1. 一、入门前提
  2. 二、仿真环境选择
  3. 三、Verilog 设计流程
  4. 四、核心语法规则
  5. 1. 基础格式规范
  6. 2. 标识符与关键字
  7. 3. 数值表示规则
  8. 1. 四种基础逻辑值(硬件电平描述)
  9. 2. 进制格式(格式:位宽 +' 进制符号 + 数值)
  10. 4. 核心数据类型(仅两种,明确硬件映射)
  11. 1. reg 类型
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • FPGA 实现 CAN 总线原理与 Verilog 代码详解
  • Magic API:低代码接口开发平台完全指南
  • WebStorm 安装与配置指南
  • LeetCode 160:相交链表问题解析与代码实现
  • GitHub 访问加速实战指南:5 种常用提速方案
  • OpenClaw 高级使用:多 Agent 协作与云端本地联动配置指南
  • RoboChallenge 发布具身智能年度报告:4 万次真机测试显示最高成功率仅 51%
  • Android 内存优化指南:数据结构与 5R 法则
  • Lostlife2.0 角色对话系统升级:基于 LLama-Factory 微调剧情模型
  • OpenClaw Skills 框架解析与开发实战
  • Altera FPGA Avalon 总线接口规范简介
  • Seedance 2.0 双分支扩散变换器架构解析与工程实现
  • Ubuntu 部署 OpenClaw 完整指南
  • Python 面向对象学生管理系统设计与实现
  • MetaGPT:基于多智能体的软件开发框架使用指南
  • LangChain 框架简介、核心模块与文档指南
  • Go Web 核心原理:Handler 与 ServerMux 深度解析
  • Vue 核心语法与原理实战指南
  • GitHub Copilot CLI 斜杠命令速查表
  • AI 编程工具选型:Copilot、Cursor、Codex 核心差异

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online