vivado仿真

本文介绍了如何使用Verilog进行硬件描述语言的代码编写,并通过仿真验证其正确性。详细步骤包括在工程中添加仿真文件,创建仿真源,定义模块,编写仿真代码,最后运行仿真并观察结果。通过仿真,可以验证时钟分频器模块(FreDivDou)的输出时钟频率是否符合预期,例如div2_o为25MHz,div3_o为16.67MHz等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Verilog的代码编写完成了,代码是否正确,需要经过仿真的验证。

打开FreDivDou的工程,

仿真

点击Sources中的“+”,

Add Sources

选择添加仿真文件,点击“Next”,

Add or Create Simulation Sources

点击“Create File”,

Create Source File

File Type选择Verilog,File name填写仿真文件名称,点击OK,

Add or Create Simulation Sources

点击Finish,

Define Module

点击OK,

Define Module

点击Yes,

仿真文件产生

成了仿真文件tb_Fre.v,双击tb_Fre(tb_Fre.v),

打开仿真文件

在tb_Fre.v中编写仿真代码, 

moduletb_Fre(

    );

reg    clk_i;

reg    rst_n_i;

wire   div2_o;

wire   div3_o;

wire   div4_o;

wire   dou2_o;

wire   dou3_o;

FreDivDouttb(   //调用FreDivDou.v

.clk_i(clk_i),      //.后面的clk_i是FreDivDou.v中的端口名称,括号内的clk_i是仿 

//真文件tb_Fre.v中定义的变量名称

.rst_n_i(rst_n_i),

.div2_o(div2_o),

.div3_o(div3_o),

.div4_o(div4_o),

.dou2_o(dou2_o),

.dou3_o(dou3_o)

    );

  //initial块从仿真0时刻开始执行,在整个仿真过程中只执行一次

  initial begin    

  clk_i = 0;

  rst_n_i = 0;

  #1000;

  rst_n_i = 'b1;

  end

//产生一个周期为20ns的时钟

  always #10 clk_i = ~clk_i;

endmodule

仿真代码编写完成后,保存该文件,

保存文件

点击PROJECT MANAGER——SIMULATION——Run Simulation,

Run Simulation

点击Run Behavior Simulation,

Run Behavioral Simulation

等待若干秒钟,

Simulation

点击仿真界面的最大化按钮,如上图所示,

Run All

点击上图中的Run All按钮,开始仿真,

仿真结果

数一数,你就会发现,假定clk_i是50M时钟,那么div2_o的时钟是50M/2=25M;div3_o的时钟是50M/3=16.67M;div4_o的时钟是50M/4=12.5M;dout2_o的时钟是50M*2=100M;dout3_o的时钟是50M*3=150M。



作者:学vivado的小鱼
链接:https://www.jianshu.com/p/57ebc6886e0a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

### Vivado 仿真使用指南 #### 功能概述 Vivado 设计套件内置了名为 Vivado Simulator 的仿真器,能够执行功能仿真和时序仿真。这些仿真的结果可以直接在集成于 Vivado IDE 的波形查看器中展示[^1]。 #### 类型区分 存在两种主要类型的仿真方式: - **行为仿真**:此类型仿真不涉及综合或布局布线的过程,在计算机环境中直接模拟电路的行为。尽管此类仿真能验证基本逻辑正确性,但在实际硬件部署时仍可能出现未预见的问题[^2]。 - **在线逻辑分析仪仿真**:利用Xilinx或其他供应商提供的专用工具捕捉真实运行环境下的信号活动,提供接近真实的测试反馈,有助于深入排查潜在缺陷。 #### 工具兼容性 除了自带的仿真能力外,Vivado 支持与其他知名第三方仿真平台如 ModelSim、Verilog Compiler Simulator (VCS) 和 Questa Advanced Simulator 联合工作,增强了灵活性与性能表现。 对于 Linux 用户而言,有专门针对该操作系统的文档指导如何高效地借助 VCS 提升开发效率[^3];而对于偏好轻量级编辑体验的人群,则可以通过 VSCode 插件实现与 Vivado 更紧密的合作关系,简化日常编码任务的同时享受完整的 FPGA 开发周期支持[^5]。 ```verilog // 示例:简单的 Verilog 加法器模块定义 module adder ( input wire a, input wire b, output reg sum ); always @(*) begin sum = a ^ b; // XOR operation to simulate addition without carry end endmodule ``` 上述代码片段展示了如何创建一个基础的半加器模型用于教学目的,这同样适用于理解 Vivado 中的基础仿真流程[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值