ISE14.7版本如何进行行为仿真

本文详细介绍了使用Verilog实现一个从0到10循环计数的计数器的过程,包括创建项目、编写Verilog代码、综合、仿真及测试。通过实际操作,展示了如何在时钟上升沿进行计数,并在计数达到10后重置。

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

首先,我从新建verilog程序说起。本文实现的是一个非常简单的功能,从0到10分别计数,在每个时钟上升沿,计数器加1,加到10后归0,然后再加到10

下面开始说计数器的verilog实现过程。

1.点击file-》new project

 

2填写工程名字,点next,知道finish

3先选中下图红色部分,然后右键,点new source。选择verilog module,写入verilog程序名字,这里写为jishu。然后一直点next。

 

 

4编写用来计数的verilog程序。

 

module jishu(clk,rst,q
    );
    input clk,rst;
	 output[3:0] q;
	 reg[3:0] q;
	 always@(posedge clk or negedge rst )
	 begin
	 if(rst==0)
	 q<=4'b0;
	 else
	 begin
	 if(q==4'b1010)
	 q<=4'b0;
	 else
	 q<=q+1;
	 end
	 end

endmodule

 

5进行综合,双击下图红色部分进行综合。

 

6点击上图红色部分前面的小加号,然后就可以分别看RTL原理图和技术原理图。再双击右面的模块就可以看到更具体的底层设计。

 

 

7编写测试文件。

首先新建测试文件。1)选择simulation,2)点击jishu模块,3)右键点击new source。一定要注意的是选择verilog测试模块。然后next直到finish。

 

 

8下面是我编写的测试文件。主要是产生一个周期为20ns的周期脉冲。

 

// Add stimulus here
		rst=1;
		while(1)
		clk=#10 !clk;//产生周期为20ns的周期脉冲

 

完整的测试文件为下面所示。

 

	// Inputs
	reg clk;
	reg rst;

	// Outputs
	wire [3:0] q;

	// Instantiate the Unit Under Test (UUT)
	jishu uut (
		.clk(clk), 
		.rst(rst), 
		.q(q)
	);

	initial begin
		// Initialize Inputs
		clk = 0;
		rst = 0;

		// Wait 100 ns for global reset to finish
		#100;
        
		// Add stimulus here
		rst=1;
		while(1)
		clk=#10 !clk;//产生周期为20ns的周期脉冲

	end
      
endmodule

 

9编写完测试文件后保存。点击下图 simulator前的加号,再双击运行simulate behavioral model。

 

10刚开始出来的仿真波形可能看不出规律。一直点下图中的缩小按钮,直到可以看出清楚的波形。从下面的波形可以看到,在rst为0时,q的输出一直为0.当rst为1且时钟一直在变化时,q的值从0000随着时钟上升沿每次加1直到1010。然后变为0000再继续加到1010

 

以上就是我所做的仿真过程。

 

 


 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值