第 2 章 Verilog HDL 开发环境搭建【轻量化开发环境】

发布时间:2026/8/10 13:17:08

第 2 章 Verilog HDL 开发环境搭建【轻量化开发环境】
2.1 Icarus Verilog 安装Icarus Verilog 是Verilog 编译仿真工具提供iverilog编译命令和vvp仿真命令添加环境变量必须勾选 Add executable directories to the user PATH官方网址https://bleyer.org/icarus/打开 cmd 终端 输入以下命令若能正常输出版本信息说明环境配置成功iverilog-v# 验证 Icarus Verilog 安装gtkwave-v# 验证 GTKWave 安装若提示“不是内部或外部命令”手动添加环境变量右键“此电脑”→属性→高级系统设置→环境变量→用户变量→PATH→编辑→添加Icarus Verilog 安装路径例如D:\FPGA_Tools\Icarus\bin重启CMD后重试即可2.1.1 Icarus Verilog 编译和仿真命令在 CMD 终端 执行以下命令# 编译iverilog 设计块文件 激励块文件# 仿真vvp 仿真文件# 查看波形图gtkwave 波形图文件2.2 Verilog 案例设计块激励块分离版【了解即可用于体验开发流程】2.2.1 Icarus Verilog 仿真流程Icarus Verilog 仿真需要二步 iverilog编译→ vvp执行Vivado 仿真需要三步 xvlog编译→ xelab链接→ xsim执行2.2.2 仿真文件仿真文件是编译「设计块激励块」后生成的、可执行文件——它整合了设计块的逻辑和激励块的测试驱动逻辑仿真文件仅用于仿真和 FPGA 烧录的网表文件、芯片综合文件无关唯一作用是运行仿真、生成波形设计块Verilog 里描述具体硬件功能如加法器、计数器的模块有输入输出端口是要被验证的核心对象。激励块TestbenchVerilog 里专门测试设计块的仿真模块无输入输出端口负责给设计块送测试信号、看输出结果。仿真文件的生成条件缺一不可必须同时输入「设计块激励块」仅设计块无法生成有效仿真文件必须指定**「顶层模块」**作为仿真的“入口”2.2.3 目录文件结构Verilog_Counter/ ├─ seq_0101.v // 设计块纯硬件逻辑 └─ tb_seq_0101.v // 激励块纯仿真逻辑2.2.4 设计块文件seq_0101.v带保护仅包含硬件可实现的逻辑无任何仿真专用语句可直接用于FPGA综合设计块保护SEQ_0101_V 防止 seq_0101 模块被重复定义// 防止seq_0101模块被重复定义 ifndef SEQ_0101_V // 检查SEQ_0101_V是否未定义 define SEQ_0101_V // 第一次包含时定义该标识符 timescale 1ns/1ps // 时序基准与激励块统一 module seq_0101( input clk, // 系统时钟5ns周期 input rst_n, // 低电平有效同步复位 output seq_out // 0101...交替序列输出 ); // 寄存器赋初始值避免仿真初始x reg seq_reg 1b0; // 时序逻辑逐时钟翻转持续输出0101... always (posedge clk) begin if(!rst_n) begin seq_reg 1b0; // 复位回到初始值0 end else begin seq_reg ~seq_reg; // 每时钟翻转0→1→0→1... end end // 序列输出赋值 assign seq_out seq_reg; endmodule endif // SEQ_0101_V 保护块结束2.2.5 激励块文件tb_seq_0101.v带保护 包含设计块仅包含仿真逻辑负责给设计块送测试信号、控制台输出、生成波形图无硬件逻辑激励块保护TB_SEQ_0101_V 防止激励模块被重复定义// 防止tb_seq_0101模块被重复定义 ifndef TB_SEQ_0101_V // 检查TB_SEQ_0101_V是否未定义 define TB_SEQ_0101_V // 第一次包含时定义该标识符 // 包含设计块即使多次包含seq_0101.v的保护块会避免重复 include ./seq_0101.v timescale 1ns/1ps module tb_seq_0101; // 1. 激励信号定义 reg clk 1b0; reg rst_n 1b0; wire seq_out; // 2. 例化设计块 seq_0101 u_seq_0101( .clk (clk), .rst_n (rst_n), .seq_out (seq_out) ); // 3. 生成时钟5ns翻转10ns周期 always #5 clk ~clk; // 4. 仿真逻辑 initial begin // 波形文件生成 $dumpfile(tb_seq_0101.vcd); $dumpvars(0, tb_seq_0101); // 保存所有层级信号 // 控制台输出ps单位时间准确 $monitor(Time%0t ps: seq_out%b, $time, seq_out); // 激励流程复位20ns → 持续输出0101... rst_n 1b0; #20; // 复位20ns20000ps rst_n 1b1; #180; // 运行180ns总200ns200000ps $finish; end endmodule endif // TB_SEQ_0101_V 保护块结束设计块 seq_0101.v 和激励块 tb_seq_0101.v 都加上 ifndef 条件编译保护彻底避免 “重复包含 / 重复定义” 错误同时保持代码可复用性设计块保护标识符SEQ_0101_V模块名 _V大写避免和变量重名激励块保护标识符TB_SEQ_0101_V激励模块名 _V保护块标识符要唯一不同模块用不同的标识符避免冲突保护块的作用范围seq_0101.v保护整个 seq_0101 模块即使被多次 include也只会编译一次tb_seq_0101.v保护整个激励模块同时包含设计块时设计块的保护块会自动防止重复定义。2.2.6 编译# 方式 1编译时指定两个文件# 1. 编译编译通过后会生成仿真文件 tb_seq_0101.outiverilog-Wall-otb_seq_0101.out seq_0101.v tb_seq_0101.v# -o 指定仿真文件名 默认a.out# -Wall 开启所有警告# seq_0101.v 设计块文件# tb_seq_0101.v 仿真块文件# 方式 2只编译激励文件靠 include 包含设计块iverilog-Wall-otb_seq_0101.out tb_seq_0101.v# 两种编译方式 都不会报 “重复定义” 错误且仿真结果完全一致2.2.7 运行仿真# 2. 运行仿真控制台输出持续的01交替vvp tb_seq_0101.out2.2.8 查看波形图# 3. 打开波形图查看规整的01交替方波gtkwave tb_seq_0101.vcdGTKWave 必加信号打开.vcd文件后默认不会显示任何信号必须手动选中并添加到 WaveView添加信号查看波形图clk规整的 5ns 周期方波作为时间基准。rst_n前 20ns 保持低电平复位之后变为高电平释放复位。seq_out复位期间恒为 0复位释放后开始严格的 0→1→0→1 交替翻转完全符合我们想要的持续 010101… 输出效果这说明你的 Verilog 代码和仿真流程已经完全跑通了

相关新闻

AI项目价值评估三维度:问题契合、成本控制与商业回报

AI项目价值评估三维度:问题契合、成本控制与商业回报

2026/8/10 13:17:07

1. 项目概述:为什么我们需要重新审视AI的价值?最近和几个做产品的朋友聊天,发现一个挺有意思的现象:大家张口闭口都在谈AI,但一聊到“这个AI功能到底值多少钱”、“投入产出比怎么样”,会议室里的空气就突然…

3个核心功能:让Plain Craft Launcher 2成为你的Minecraft游戏管家

3个核心功能:让Plain Craft Launcher 2成为你的Minecraft游戏管家

2026/8/10 13:17:07

3个核心功能:让Plain Craft Launcher 2成为你的Minecraft游戏管家 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 你是否曾因模组冲突导致游戏崩溃而烦恼&…

TuxGuitar终极指南:免费开源的吉他谱编辑与播放完整解决方案

TuxGuitar终极指南:免费开源的吉他谱编辑与播放完整解决方案

2026/8/10 13:17:07

TuxGuitar终极指南:免费开源的吉他谱编辑与播放完整解决方案 【免费下载链接】tuxguitar Open source guitar tablature editor 项目地址: https://gitcode.com/gh_mirrors/tu/tuxguitar 想要在电脑或手机上轻松编辑吉他谱吗?🎸 TuxGu…

如何快速掌握Blender四边形重构:QRemeshify新手完全指南

如何快速掌握Blender四边形重构:QRemeshify新手完全指南

2026/8/10 14:37:11

如何快速掌握Blender四边形重构:QRemeshify新手完全指南 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify 你是否在为Blend…

如何5分钟为OBS Studio安装智能面部跟踪插件:2025终极免费方案

如何5分钟为OBS Studio安装智能面部跟踪插件:2025终极免费方案

2026/8/10 14:37:11

如何5分钟为OBS Studio安装智能面部跟踪插件:2025终极免费方案 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 你是否厌倦了在直播或录制视频时频繁手动调整画面&am…

终极免费AI音乐创作工具:ACE-Step UI完全指南

终极免费AI音乐创作工具:ACE-Step UI完全指南

2026/8/10 14:37:11

终极免费AI音乐创作工具:ACE-Step UI完全指南 【免费下载链接】ace-step-ui 🎵 The Ultimate Open Source Suno Alternative - Professional UI for ACE-Step 1.5 AI Music Generation. Free, local, unlimited. Stop paying for Suno! 项目地址: http…

Mermaid Live Editor终极指南:3分钟解决所有图表绘制难题

Mermaid Live Editor终极指南:3分钟解决所有图表绘制难题

2026/8/10 14:37:11

Mermaid Live Editor终极指南:3分钟解决所有图表绘制难题 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-edi…

从零开始:5个步骤掌握Path of Building,打造你的完美流放之路角色

从零开始:5个步骤掌握Path of Building,打造你的完美流放之路角色

2026/8/10 14:37:11

从零开始:5个步骤掌握Path of Building,打造你的完美流放之路角色 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 你是否曾经在流放之路中花费数小…

如何高效管理网盘资源:百度网盘批量转存工具完全指南

如何高效管理网盘资源:百度网盘批量转存工具完全指南

2026/8/10 14:27:10

如何高效管理网盘资源:百度网盘批量转存工具完全指南 【免费下载链接】BaiduPanFilesTransfers 百度网盘批量转存、分享和检测工具 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduPanFilesTransfers 你是否曾经面对数十个百度网盘分享链接,只…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/10 5:58:32

比较好的亚太EMBA核心差异先看什么?对于希望兼顾工作与系统管理能力提升的亚太区高管而言,筛选匹配度高的EMBA项目时,师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/10 7:54:12

备考海外游学的亚洲EMBA面试,核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备,避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料,却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/10 7:19:21

比较好的国内EMBA核心差异体现在哪些方面?比较好的国内EMBA的核心长期价值,很大程度上依托于校友网络的连接质量与资源生态的活跃度,这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息,从课程、师…

Prometheus 监控体系深度部署:选型别只看功能清单

Prometheus 监控体系深度部署:选型别只看功能清单

2026/8/10 0:06:33

Prometheus 监控体系深度部署:选型别只看功能清单 选型场景:小规模集群直接部署 Thanos 的代价 如果为解决 15 天本地存储限制,直接部署 Thanos Sidecar、Store Gateway、Querier、Compactor、Ruler、Bucket Web 并接入 S3,就需…

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

2026/8/10 0:06:33

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节 场景示例:一条 2MB 日志影响 Elasticsearch 写入 一个上传接口若执行 log.Info("Request dumped: ", r.Body),会将 2MB 的二进制 Body 写入日志。高并发下,这类超…

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

2026/8/10 0:06:33

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节 项目进入稳定版本后,外部 Pull Request(PR)会带来新的协作成本。大范围改动混入风格重构,或修复局部问题时修改公共函数签名,都可能扩大评审和兼容…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/9 13:42:46

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…