FPGA使用入门实验报告示例

一.实验目的

(1) 掌握ISE 13.2集成开发环境和Modelsim软件的使用方法;

(2) 熟悉S6 Card实验板的使用方法。

(3) 掌握使用Verilog HDL语言实现常用组合逻辑和时序逻辑的方

法。

(4) 了解Chipscope的功能与使用方法。

二. 实验内容

(1) 熟悉S6 CARD实验板;

(2) 熟悉ISE集成开发环境;

(3) 3比特加法器仿真与上板实验

(4)m序列产生器仿真与在板Chipscope调试。

三. 实验过程依照指导书进行

四. 实验代码分析

(1)3bit加法器(见注释)

module m_seq_gen(

//端口I/O定义

input clk,//定义clk为输入类型

input reset,//定义resert为输入类型

output seq//定义seq为输出类型

);

//内部信号说明

reg [3:0] state;//定义变量state,为寄存器型,位宽为4

//功能定义

always @(posedge clk or negedge reset)//当clk上升沿来到或者reset下降沿来到,//触发敏感事件,执行以下程序

begin

if(!reset)//如果不是reset下降沿来到

state <= 4'b1111;//state输出结果为4位的二进制数字1111

else

begin

state[3:1] <= state[2:0];//state从第二位到第四位输出结果为其第一位//到第三位的数值

state[0] <= ^(state & 4'b1001);//state第一位输出结果为state原来的//值与二进制数1001相与的结果

end

end

assign seq = state[0]; //连续赋值,将state第一位值赋给seqEndmodule

(2)m序列测试文件代码分析(见注释)

module test_m;

// Inputs,将clk和reset定义为寄存器类型

reg clk;

reg reset;

// Outputs

wire seq;//将seq定义为连线类型

// Instantiate the Unit Under Test (UUT)

m_seq_gen uut (

.clk(clk),

.reset(reset),

.seq(seq)

);

initial begin

// Initialize Inputs,将初始值均设为0

clk = 0;

reset = 0;

// Wait 100 ns for global reset to finish

#100;

reset = 0;

// Add stimulus here

end

always10clk = ~clk;//产生测试时钟,延时10s后使时钟取反endmodule

五. 实验仿真结果分析

1.3比特加法器(见注释)

(1)功能仿真波形

由上图可知加法器功能正常,且当a、b之和大于7时产生进位

(2)时序仿真波形

板子上拨码开关的6、7、8和1、2、3分别作为加法器的输入,D1-D4 LED灯分别表示cout和sum,拨动拨码开关,观察

LED

的变化。

实验板实照

由上图可证程序运行正常,3比特加法成功

2. m序列产生器

(1)产生原理:每一个周期内,第一个和第四个寄存器的值作异或

运算后,寄存器移位,运算出的值赋给第一个寄存器,构成新的系统寄存器状态值。

(2)功能仿真波形

第一行为时钟信号,第二行为重置信号,第三行为输出的m序列。

(3)Chipscope波形

一键复制全文保存为WORD
相关热搜