news 2026/2/28 20:36:41

iverilog 配合 Makefile 搭建 Verilog 仿真工程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iverilog 配合 Makefile 搭建 Verilog 仿真工程

参考

ModelSim 配合 Makefile 搭建 Verilog 仿真工程

命令

Windows PowerShell 版权所有(C) Microsoft Corporation。保留所有权利。 安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows PS D:\test\ax301>iverilog-g2012-osim tb.sv clock_div.v PS D:\test\ax301>vvp sim VCD info: dumpfile clock_div.vcd openedforoutput.=====Start clk_div simulation(N=2)==========End clk_div simulation=====PS D:\workspace\gitee\0\ming-verilog_prj\ming-verilog\test\ax301>gtkwave clock_div.vcd GTKWave Analyzer v3.3.71(w)1999-2016 BSI[0]start time.[2000000]end time.

clock_div.v

`timescale 1ns / 1ps module clock_div#( parameter P_CLK_DIV_CNT = 2 //MAX = 65535 )( input i_clk , input i_rst_n , output o_clk_div ); reg ro_clk_div ; reg [15:0] r_cnt ; assign o_clk_div = ro_clk_div; localparam L_COMPARE_CNT = P_CLK_DIV_CNT/2 - 1; always @(posedge i_clk or negedge i_rst_n)begin if(!i_rst_n) r_cnt <= 'd0; else if(r_cnt == L_COMPARE_CNT) r_cnt <= 'd0; else r_cnt <= r_cnt + 1; end always @(posedge i_clk or negedge i_rst_n)begin if(!i_rst_n) ro_clk_div <= 'd0; else if(r_cnt == L_COMPARE_CNT) ro_clk_div <= ~ro_clk_div; else ro_clk_div <= ro_clk_div; end endmodule

tb.sv (生成vcd文件)

`timescale 1ns / 1ps module tb; // --------------------------------- // 参数:分频系数 // --------------------------------- parameter int P_CLK_DIV_CNT = 2; // --------------------------------- // 信号声明 // --------------------------------- reg i_clk; reg i_rstn; wire o_clk_div; // --------------------------------- // 实例化被测模块 // --------------------------------- clock_div #( .P_CLK_DIV_CNT(P_CLK_DIV_CNT) ) dut ( .i_clk (i_clk), .i_rst_n (i_rstn), .o_clk_div (o_clk_div) ); // --------------------------------- // 生成时钟:50MHz (20ns) // --------------------------------- initial i_clk = 1'b0; always #10 i_clk = ~i_clk; // --------------------------------- // 复位过程 // --------------------------------- initial begin i_rstn = 1'b0; #100; i_rstn = 1'b1; end // --------------------------------- // VCD 波形输出(关键) // --------------------------------- initial begin $dumpfile("clock_div.vcd"); // 生成的波形文件名 $dumpvars(0, tb); // dump 整个 tb 层级 end // --------------------------------- // 仿真时间控制 // --------------------------------- initial begin $display("===== Start clk_div simulation (N = %0d) =====", P_CLK_DIV_CNT); #2000; $display("===== End clk_div simulation ====="); $finish; end endmodule
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 14:16:22

【Asyncio性能优化黄金法则】:提升Python分布式任务执行效率的7种方法

第一章&#xff1a;Asyncio性能优化黄金法则概述在构建高并发异步应用时&#xff0c;Asyncio 的性能表现依赖于合理的架构设计与资源调度。掌握其优化核心原则&#xff0c;能够显著提升 I/O 密集型任务的吞吐量并降低延迟。避免阻塞调用 异步事件循环的核心是协作式调度&#x…

作者头像 李华
网站建设 2026/2/28 9:50:58

日志混乱难排查?,一文搞定Python日志可视化监控体系搭建

第一章&#xff1a;日志监控的现状与挑战在现代分布式系统和微服务架构广泛普及的背景下&#xff0c;日志监控已成为保障系统稳定性、快速定位故障的核心手段。随着应用规模的扩大&#xff0c;日志数据呈现出体量大、种类多、生成速度快的特点&#xff0c;传统基于人工查看或简…

作者头像 李华
网站建设 2026/2/14 15:22:25

FastAPI + Swagger UI 接口调试提速80%?你必须掌握的4个隐藏功能

第一章&#xff1a;FastAPI Swagger UI 接口调试提速80%&#xff1f;你必须掌握的4个隐藏功能在现代API开发中&#xff0c;FastAPI结合Swagger UI已成为高效调试的标配。然而&#xff0c;大多数开发者仅使用其基础功能&#xff0c;忽略了能显著提升效率的隐藏特性。合理利用这…

作者头像 李华
网站建设 2026/2/28 13:29:37

JDK 23 instanceof 支持原始类型:3个你必须掌握的实战应用场景

第一章&#xff1a;JDK 23 instanceof 原始类型支持概述Java Development Kit (JDK) 23 引入了一项备受期待的语言特性改进&#xff1a;对 instanceof 操作符的增强&#xff0c;正式支持原始类型&#xff08;primitive types&#xff09;作为模式匹配的目标。这一变更使得开发者…

作者头像 李华
网站建设 2026/2/24 1:16:29

Swift函数参数设计:从入门到精通的实战指南

Swift函数参数设计&#xff1a;从入门到精通的实战指南 【免费下载链接】swift-style-guide **Archived** Style guide & coding conventions for Swift projects 项目地址: https://gitcode.com/gh_mirrors/swif/swift-style-guide Swift函数参数是构建高质量iOS应…

作者头像 李华