网站大量收购闲置独家精品文档,联系QQ:2885784924

VHDL序列检测器..doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL序列检测器.

作业一:序列检测器(1110010) 1 设计功能与要求 (1) 利用有限状态的状态机设计一个序列检测器,序列检测器要检测的序列设定为“1110010”。 (2) 根据设计功能和要求运用VHDL硬件描述语言进行设计编程,并且画出序列检测器的原理流程图。 (3) 对设计的序列检测器程序进行仿真,并予以分析和说明。 2 设计思路 序列检测器的设计是采用VHDL硬件描述语言设计程序,对预先设置的序列信号进行检测。序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的相同,则输出1,否则输出0。设计采用有限状态机来实现序列检测器。 3 原理流程图 根据预先设置的序列信号“1110010”,根据有限状态机的原理进行编程,设计出符合要求的八状态的状态机的序列检测器 ,原理流程说明如下图。 如图所示,假设状态机的初始状态为S1,当输入信号为“1”时,进入S2状态;为“0”还是在S1状态。 在S2状态下,如果输入信号为“1”,则进入S3状态,为“0”则返回S1状态。 在S3状态下,如果输入信号为“1”,则进入S4状态,为“0”则返回S1状态。 在S4状态下,如果输入信号为“0”,则进入S5状态,为“0”还是在S4状态。 在S5状态下,如果输入信号为“0”,则进入S6状态,为“1”则进入S2状态。 在S6状态下,如果输入信号为“1”,则进入S7状态,为“0”则返回S1状态。 在S7状态下,如果输入信号为“0”,则进入S8状态,为“1”则进入S3状态。 在S8状态下,如果输入信号为“1”,则进入S2状态,为 “0”则返回S1状态,并输出序列信号1110010。 4 序列检测器VHDL程序代码library ieee; use ieee.std_logic_1164.all; entity sq_det is port(cin,clr,clk:in std_logic; cout:out std_logic); end sq_det; architecture behav of sq_det is type state is(s1,s2,s3,s4,s5,s6,s7,s8); signal c_state,n_state:state; begin process(clk,clr) begin if(clr=1)then c_state=s1; elsif(clkevent and clk=1) then c_state =n_state; end if; end process; process(c_state,cin) begin case(c_state) is when s1=cout=0; if(cin=1)then n_state=s2; else n_state=s1; end if; when s2=cout=0; if(cin=1)then n_state=s3; else n_state=s1; end if; when s3=cout=0; if(cin=1)then n_state=s4; else n_state=s1; end if; when s4=cout=0; if(cin=1)then n_state=s4; else n_state=s5; end if; when s5=cout=0; if(cin=1)then n_state=s2; else n_state=s6; end if; when s6=cout=0; if(cin=1)then n_state=s7; else n_state=s1; end if; when s7=cout=0; if(cin=1)then n_state=s3; else n_state=s8; end if; when s8=cout=1; if(cin=1)then n_state=s2; else n_state=s1; end if; end case; end process; end architecture behav; 5 仿真结果与说明 序列检测器程序仿真结果如下图,cin为输入序列信号,clr为复位控制信号,高电平复位清零准备进入工作状态,c

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档