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

首先,我从新建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

 

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

 

 

 

 

你可能感兴趣的:(FPGA)