news 2026/1/10 13:49:37

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/1/4 21:42:48

HTML前端展示AI结果:TensorFlow-v2.9输出可视化实战

HTML前端展示AI结果&#xff1a;TensorFlow-v2.9输出可视化实战 在人工智能日益渗透到各行各业的今天&#xff0c;一个训练好的深度学习模型早已不再是“黑箱”里的神秘函数。越来越多的企业和开发者面临同一个问题&#xff1a;如何让非技术背景的用户也能直观理解模型的输出&a…

作者头像 李华
网站建设 2026/1/4 18:00:41

利用Git进行模型版本控制:结合TensorFlow镜像的最佳实践

利用Git进行模型版本控制&#xff1a;结合TensorFlow镜像的最佳实践 在深度学习项目从实验室走向生产部署的过程中&#xff0c;一个反复出现的痛点是&#xff1a;“这个模型在我机器上明明跑得好好的&#xff0c;怎么换台机器就出错了&#xff1f;” 更糟的是&#xff0c;几个…

作者头像 李华
网站建设 2026/1/5 8:56:08

SongGeneration完整使用指南:如何快速生成AI歌曲

SongGeneration完整使用指南&#xff1a;如何快速生成AI歌曲 【免费下载链接】SongGeneration 腾讯开源SongGeneration项目&#xff0c;基于LeVo架构实现高品质AI歌曲生成。它采用混合音轨与双轨并行建模技术&#xff0c;既能融合人声与伴奏达到和谐统一&#xff0c;也可分别处…

作者头像 李华
网站建设 2026/1/2 15:28:51

你还在手动查日志?,用Python+Plotly实现日志数据实时可视化看板

第一章&#xff1a;日志可视化看板的核心价值与应用场景日志可视化看板是现代IT运维和系统监控中不可或缺的工具&#xff0c;它将海量、分散的日志数据转化为直观的图形化信息&#xff0c;帮助团队快速识别系统异常、分析性能瓶颈并提升故障响应效率。通过集中展示关键指标&…

作者头像 李华
网站建设 2026/1/3 6:41:12

终极指南:如何使用Martini框架快速构建Go语言Web应用

终极指南&#xff1a;如何使用Martini框架快速构建Go语言Web应用 【免费下载链接】martini Classy web framework for Go 项目地址: https://gitcode.com/gh_mirrors/ma/martini Martini是一个专为Go语言设计的高效Web开发框架&#xff0c;以其简洁优雅的语法和强大的模…

作者头像 李华