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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值