FPGA使用入门实验汇报示例
一.实验目的
(一) 掌握ISE 一三.二集成开发环境和Modelsim软件的使用方法;
(二) 熟悉S六 Card实验板的.使用方法。
(三) 掌握使用Verilog HDL语言实现常用组合逻辑和时序逻辑的方
法。
(四) 了解Chipscope的功能与使用方法。
二. 实验内容
(一) 熟悉S六 CARD实验板;
(二) 熟悉ISE集成开发环境;
(三) 三比特加法器仿真与上板实验
(四)m序列产生器仿真与在板Chipscope调试。
三. 实验过程依照指导书进行
四. 实验代码分析
(一)三bit加法器(见注释)
module m_seq_gen(
//端口I/O定义
input clk,//定义clk为输入类型
input reset,//定义resert为输入类型
output seq//定义seq为输出类型
);
//内部信号说明
reg [三:零] state;//定义变量state,为寄存器型,位宽为四
//功能定义
always @(posedge clk or negedge reset)//当clk上升沿来到或者reset下降沿来到,//触发敏感事件,执行以下程序
begin
if(!reset)//如果不是reset下降沿来到
state <= 四'b一一一一;//state输出结果为四位的二进制数字一一一一
else
begin
state[三:一] <= state[二:零];//state从第二位到第四位输出结果为其第一位//到第三位的数值
state[零] <= ^(state & 四'b一零零一);//state第一位输出结果为state原来的//值与二进制数一零零一相与的结果
end
end
assign seq = state[零]; //连续赋值,将state第一位值赋给seqEndmodule
(二)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,将初始值均设为零
clk = 零;
reset = 零;
// Wait 一零零 ns for global reset to finish
#一零零;
reset = 零;
#五零 reset = 一;
// Add stimulus here
end
always #一零 clk = ~clk;//产生测试时钟,延时一零s后使时钟取反endmodule
五. 实验仿真结果分析
一.三比特加法器(见注释)
(一)功能仿真波形
由上图可知加法器功能正常,且当a、b之和大于七时产生进位
(二)时序仿真波形
板子上拨码开关的六、七、八和一、二、三分别作为加法器的输入,D一-D四 LED灯分别表示cout和sum,拨动拨码开关,观察
LED
的变化。
实验板实照
由上图可证程序运行正常,三比特加法成功
二. m序列产生器
(一)产生原理:每一个周期内,第一个和第四个寄存器的值作异或
运算后,寄存器移位,运算出的值赋给第一个寄存器,构成新的系统寄存器状态值。
(二)功能仿真波形
第一行为时钟信号,第二行为重置信号,第三行为输出的m序列。
(三)Chipscope波形
推荐阅读: 实验 示例 汇报