用IP核实例化第一个FIFO (ISE版本)

ISE 用IP核实例化第一个FIFO

fifo什么的道理我都懂,可是要怎么在软件里面表达出来,怎么用仿真看看例化的对不对呢?

打开软件,创建工程

打开这个软件,我用的是14.7版本,也就是最后一版的ise
就是这个软件
new project就不用说了,如图
取名FIFO_test
空白处右键 new source
在这里插入图片描述
选中ip,起个名字,下一步
在这里插入图片描述
然后就开始按照我的截图配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
里面的参数,后面都有明确的说明,如果和我一样看不懂,那就复制然后百度翻译,就明白了;
点击generate就好了;

到此为止,一行代码都没有写,ise就帮我们整好了一个模块,可以看看它的所属关系:
在这里插入图片描述

写testbench

testbench用来验证这个fifo模块是不是正常的(废话肯定是正常的,但我就是想看看波形长啥样!)
空白处右键new source 选择test fixture
在这里插入图片描述
下一步,由于只有一个FIFO模块,还是下一步
在这里插入图片描述
一路无脑下一步,finish,就会得到这个东西:
在这里插入图片描述
这个代码谁写的?是ise
这个文件怎么在文件树里面看不见?点击simulation!他在这里!
在这里插入图片描述
我的这个名字有点不一样,就那么个意思
,然后在tb_fifio_test(图中的就是fifo_tb)里面加一点点代码:

module tb_fifio_test;		//从我图中fifo_tb 扒下来的

	// Inputs
	reg rst;
	reg wr_clk;
	reg rd_clk;
	reg [15:0] din;
	reg wr_en;
	reg rd_en;
	
	//reg clk;
	reg flag;

	// Outputs
	wire [15:0] dout;
	wire full;
	wire empty;
	wire [8:0] rd_data_count;
	wire [8:0] wr_data_count;

	// Instantiate the Unit Under Test (UUT)
	fifo_ip uut (
		.rst(rst), 
		.wr_clk(wr_clk), 
		.rd_clk(rd_clk), 
		.din(din), 
		.wr_en(wr_en), 
		.rd_en(rd_en), 
		.dout(dout), 
		.full(full), 
		.empty(empty), 
		.rd_data_count(rd_data_count), 
		.wr_data_count(wr_data_count)
	);

	initial begin
		// Initialize Inputs
		rst = 0;
		wr_clk = 0;
		rd_clk = 0;
		//clk = 0;
		din = 16'd100;
		wr_en = 1;
		rd_en = 0;
		flag = 1;

		// Wait 100 ns for global reset to finish
		#100;
        
		// Add stimulus here
	end
	
	always #10 wr_clk = ~wr_clk;
	always #10 rd_clk = ~rd_clk;
	//always #25 clk = ~clk;
	always@(posedge wr_clk) begin
		if(flag)begin
			din <= din - 1'd1;
			if(din < 16'd85) flag <= 0;
		end else begin 
				rd_en = 1;
				wr_en = 0;
			end
	end
      
	
endmodule

仿真

双击这个东西
在这里插入图片描述
不出意外会是这样的
在这里插入图片描述
不要慌,CTRL + 鼠标滚轮调一调合适的大小,再把显示数据的格式调成无符号十进制
在这里插入图片描述
然后时序图就出来啦

在这里插入图片描述

完结撒花!🌹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值