xilinx平台开发报告

前言

  • 对FPGA进行开发, PCB原理图、芯片手册、硬件用户手册是进行相关测试的必备工具。PCB原理图介绍电路板的连接情况,芯片手册介绍芯片的管脚信息、封装类型、功能信息,硬件用户手册介绍配置信息,FPGA的运行代码只占整个开发流程的小部分时间,大部分时间都是花在测试和查找资料上。查资料主要去xilinx的官网上去找!官网的资料最权威、最全!
  • 比如我们对Spartan6进行开发,首先要对其进行功能验证。我们选取FPGA开发板Mis603A作为测试平台。
  • Mis603A的处理器为Spartan6系列的XC6SLX16 管脚为256 系统时钟为50MHz。
    开发软件为Xilinx的ISE

实例一

  • 测试发送端和接收端之间是否正常通信。
  • 验证方案:一个功能是发送端相接收端发8位的信息,然后接收的信息和目标信息进行比对,相同的话,接收端计数器加一,否则接收端保持不变。代码量不大,半个小时就可完成。
`timescale 1ns / 1ps
//
// Company: cuc_ecdav_604c
// Designer name:JuHan 
// E-mail:1107033204@qq.com
// Create Date:    11:07:19 07/13/2017 
// Design Name: 
// Module Name:    test_8bit
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//
module test_8bit(
	input      sys_rst,
    input 	   sys_clk,
    input 	   [7:0]rec,
	output 	   [7:0]trn,
    output     [3:0]cnt
    );

parameter 	TARGET = 8'h0A;

wire 	 [7:0]rec_reg;
reg 	 [7:0]trn_reg;
reg	     [3:0]cnt_reg;

//transmit message
always@(posedge sys_clk or negedge sys_rst)
begin
	if(sys_rst==0)
		begin
			trn_reg[7:0]<=trn_reg[7:0]+8'h1;
		end
	else
	trn_reg[7:0]<=0;	
end

always@(posedge sys_clk or negedge sys_rst)
begin
	if(sys_rst==0)
	begin
		if(rec_reg[7:0]%TARGET==0)//每隔十加一
			begin
				cnt_reg[3:0]<=cnt_reg[3:0]+4'h1;
			end
		else
			cnt_reg[3:0]<=cnt_reg[3:0];
	end
	else
	cnt_reg[3:0]<=0;
end
	
assign rec_reg[7:0]    =rec[7:0];
assign     trn[7:0]    =trn_reg[7:0];
assign     cnt[3:0]    =cnt_reg[3:0];
endmodule


  • 主要时间都花在波形仿真验证上
    • 方法一:测试波形法
    • 方法二:测试代码法
      • 测试代码法采用的是Testbench。
      • Testbench相当于一个测试平台,给输入加激励,把输出端和另外一个输出端相连。(具体描述还得查查再写)
        首先在工程管理区将“Sources for”设置为Behavioral Simulation,在任意位置单击鼠标右键,并在弹出的菜单中选择“New Source”命令,然后选中“Verilog Test Fixture”类型,输入文件名为“test_test”,再点击“Next”进入下一页。这时,工程中所有Verilog Module的名称都会显示出来,设计人员需要选择要进行测试的模块。用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键,ISE会在源代码编辑区自动显示测试模块的代码。
`timescale 1ns / 1ps


// Company: cuc_ecdav_604c
// Designer name:JuHan
// E-mail:1107033204@qq.com
// Create Date:   17:29:22 07/14/2017
// Design Name:   test_8bit
// Module Name:   D:/My_study/master_study/difference/test_8bit/test_test.v
// Project Name:  test_8bit
// Target Device:  
// Tool versions:  
// Description: 
//
// Verilog Test Fixture created by ISE for module: test_8bit
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 


module test_test;

	// Inputs
	reg sys_rst;
	reg sys_clk;

	// Outputs
	wire [7:0] trn;
	wire [3:0] cnt;

	// Instantiate the Unit Under Test (UUT)
	test_8bit uut (
		.sys_rst(sys_rst), 
		.sys_clk(sys_clk), 
		.rec(trn), 
		.trn(trn), 
		.cnt(cnt)
	);

	initial begin
		// Initialize Inputs
		sys_rst = 1;
		#10;		
		sys_clk = 0;
		#10;
		sys_clk = 1;
		#10;
		sys_rst = 0;
		end
		// Wait 100 ns for global reset to finish
	always
		begin
			#10 sys_clk = !sys_clk; 
		end 
        
		// Add stimulus here

   
Endmodule

  • 测试波形:
    这里写图片描述
  • 波形显示接收端每接收十个数据,计数器cnt就会加一。此外,接收端在第一个时刻时,cnt就加一,原因是0/10=0,符合if的判断条件,所以计数器加一。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值