好文档 - 专业文书写作范文服务资料分享网站

用FPGA状态机设计一个序列检测器

天下 分享 时间: 加入收藏 我要投稿 点赞

《FPGA数字系统设计》课程

考核大作业

学 院: 电气工程学院 专 业: 电子信息科学与技术 班 级: 电科 XXX 姓 名: XXX 学 号: 31XXXXXXXX 指导教师: XXX 日 期: XXXX年X月

一.实验内容

用FPGA状态机设计一个序列检测器。

二.实验要求

①输入为8bit信号,定义为DATA,串行输入,

DATA=8’b11010010。

②要有一个复位信号ResetN,连在一个按键(要求消抖)。 ③输出Out,4bit信号,如果检测到DATA=8b’11010010,

则Out=4’b1111,否则Out=4’b0000。

三.实验设备

硬件:PC机

软件:Quartus Ⅱ,Modelsim

四.实验分析

1.状态转换图

2. 复位电路消抖模块

always @(posedge clk or negedge rest)

if(!rest)

begin #100

//延迟100ns

if(!rest)

begin

state <= s0;z <= 4'b0000; end

end

五.实验内容

①新建一个工程File-->New Project Wizard,设置如下。

②选择元器件Cyclone IV E-->FBGA-->EP4CE115F29C7。 ③创建Verilog程序文件,命名为seqdet.v. ④对整个工程进行编译。

⑤新建Modelsim工程File-->New--> Project,设置如下。

⑥创建仿真源文件seqdet_tb.v,Add file as type选Verilog。

并向工程中添加seqdet.v文件。

⑦编译并进行仿真。

六.实验代码

seqdet.v源程序清单如下:

module seqdet(x,z,clk,rest); input x; input clk; input rest;

output reg [3:0] z;

parameter s0 = 9'b0_0000_0001, s1 = 9'b0_0000_0010, s2 = 9'b0_0000_0100, s3 = 9'b0_0000_1000, s4 = 9'b0_0001_0000, s5 = 9'b0_0010_0000, s6 = 9'b0_0100_0000, s7 = 9'b0_1000_0000,

s8 = 9'b1_0000_0000; reg [8:0] state;

always @(posedge clk or negedge rest) if(!rest)

begin

#100 //延迟100ns if(!rest)

begin

state <= s0;z <= 4'b0000; end

end else case(state) s0:begin if(x) begin state <= s1;z <= 4'b0000; end else begin state <= s0;z <= 4'b0000; end end s1:begin if(x) begin state <= s2;z <= 4'b0000; end else begin state <= s1;z <= 4'b0000; end end s2:begin if(x) begin state <= s2;z <= 4'b0000; end else

用FPGA状态机设计一个序列检测器

《FPGA数字系统设计》课程考核大作业学院:电气工程学院专业:电子信息科学与技术班级:电科XXX姓名:XXX学号:31XXX
推荐度:
点击下载文档文档为doc格式
5nmup1dpn238gut0xsx29kcek7hm3l01413
领取福利

微信扫码领取福利

微信扫码分享