欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是: 首页

FPGA使用入门实验报告示例

科普小知识 2023-11-14 10:14:39
...

一.实验目的

(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

else

begin

state[3:1]

state[0]

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;

#50 reset = 1;

// Add stimulus here

end

always #10 clk = ~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波形