用状态机实现序列检测器.pdf

用状态机实现序列检测器.pdf

ID:53733762

大小:135.09 KB

页数:11页

时间:2020-04-20

用状态机实现序列检测器.pdf_第1页
用状态机实现序列检测器.pdf_第2页
用状态机实现序列检测器.pdf_第3页
用状态机实现序列检测器.pdf_第4页
用状态机实现序列检测器.pdf_第5页
资源描述:

《用状态机实现序列检测器.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用状态机实现序列检测器1实验目的掌握利用有限状态机实现一般时序逻辑分析的方法,了解一般状态机的设计与应用。2实验内容设计一序列检测器并在SmartSOPC实验箱上进行硬件测试。利用Quartus

2、

3、软件进行设计、仿真验证,最后进行引脚锁定并完成硬件测试。用K3控制复位;K4控制状态机的时钟;K1~K2控制输入待检预置数和检测预置数(检测密码),并在数码管12和45上显示。上电时,按K2键数码管1显示的数累增;按1次K1后,按K2则数码管2显示的数累增;再按1次K1后,按K2则数码管4显示的数累增;再按1次K1后,按K2则数码管5显示的数累增;再按1次

4、K1后,按K2则数码管1显示的数累增,如此循环。3实验原理(1)序列检测器可用于检测由二进制码组成的脉冲序列信号。当序列检测器连续收到一组串行二进制码后,如果这组序列码与检测器中预先设置的序列码相同,则输出1,否则输出0。这种检测的关键是必须收到连续的正确码,所以要求检测器必须对前一次接受到的序列码做记忆分析,直到在连续检测中所收到的每一位二进制码都与预置序列码对应相同。在检测过程中,只要有一位不相等都将回到初始状态重新开始检测,不考虑重叠的可能。(2)为了配合硬件测试,需要设计一个测试模块(schk_test),该模块主要产生序列检测器所需的时钟、复位

5、、串行输入序列码及预置数等信号。对模块的各端口说明如下:硬件设计语言—袁红星clock系统时钟输入(48MHz)key[3..0]按键输入disp[3..0]序列检测器检测结果输入(显示于数码管8)sda串行序列码输出clkout序列检测器状态机时钟输出rstout序列检测器复位信号输出dat[7..0]检测预置数输出led7..0]LED输出seg[7..0]数码管段输出dig[7..0]数码管位输出4实验步骤(1)启动Quartus

6、

7、建立一个空白工程,然后命名为schk_top.qpf。(2)新建VerilogHDL源程序文件schk_test(测

8、试信号生成模块),输入程序代码并保存,将VerilogHDL源程序文件转换成图形文件。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(3)新建VerilogHDL源程序文件schk_v(序列检测模块),输入程序代码并保存,将VerilogHDL源程序文件转换成图形文件。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(4)新建图形设计文件命名为schk_top.bdf并保存,其模块原理图如下:(5)选择目标器件并对相应的引脚进行定义锁定,在这里所选择的器件为EP1C12Q240C8芯片,将未使用的引脚设置为三态输入。引脚分配如下

9、表所示:信号引脚信号引脚信号引脚seg[0]169seg[7]164dig[6]238硬件设计语言—袁红星seg[1]170dig[0]160dig[7]239seg[2]167dig[1]159key[0]121seg[3]168dig[2]162key[1]122seg[4]165dig[3]161key[2]123seg[5]166dig[4]236key[3]124seg[6]163dig[5]237clock28(6)将schk_top.bdf设置为顶层实体,对该工程进行全程编译处理,若在编译过程中发现错误,则找出错误并更正错误,直至编译成功为

10、止。(7)硬件连接、下载程序。5实验程序模块1为:moduleschk_test(clock,key,sda,clkout,rstout,dat,disp,led,seg,dig);//外接I/O口inputclock;//系统时钟input[3:0]key;//按键输入output[7:0]led;//输出接LEDoutput[7:0]seg;//输出接数码管段码output[7:0]dig;//输出接数码管位码//序列码检测模块I/O口outputsda;//串行序列码输出outputclkout;//产生时钟信号输出outputrstout;//产

11、生复位信号输出output[7:0]dat;//8位预置数输出input[3:0]disp;//输入检测结果reg[7:0]dat_r;//输出寄存器reg[7:0]led_r;reg[7:0]seg_r;硬件设计语言—袁红星reg[7:0]dig_r;reg[16:0]count;//时钟分频计数器reg[7:0]data;//内部寄存器reg[8:0]data_shift;reg[3:0]dout1,dout2,dout3,buff;//消抖寄存器reg[2:0]cnt3;//数码管扫描计数器reg[1:0]cnt2;reg[3:0]disp_dat

12、;//数码管扫描显存regdiv_clk;//分频时钟,用于消抖和扫描wire[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。