欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VHDL序列检测器.doc

    • 资源ID:23957398       资源大小:1.48MB        全文页数:39页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VHDL序列检测器.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVHDL序列检测器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程序代码在序列检测器的程序代码中采用cin表示输入序列信号,clr为复位控制信号,clk为时钟信号,cout为输出信号。当检测到序列信号中出现“1110010“序列的时候,cout输出为高电平,否则为低电平,详细程序代码如下。library ieee;use ieee.std_logic_1164.all;entity sq_det isport(cin,clr,clk:in std_logic; cout:out std_logic);end sq_det;architecture behav of sq_det istype state is(s1,s2,s3,s4,s5,s6,s7,s8);signal c_state,n_state:state;beginprocess(clk,clr) beginif(clr='1')then c_state<=s1;elsif(clk'event 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')thenn_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为复位控制信号,高电平复位清零准备进入工作状态,clk为时钟信号,cout为输出信号。当检测到序列信号cin中出现“1110010“序列的时候,cout输出为高电平。当没有出现“1110010”序列时,cout输出低电平,如下如所示。作业二:三位任意二值序列检测器1 设计功能与要求(1) 利用有限状态的状态机设计一个序列检测器,序列检测器可以检测输入序列中的任意一个3位2进制数。 (2) 根据设计功能和要求运用VHDL硬件描述语言进行设计编程,并且画出序列检测器的原理流程图。 (3) 对设计的序列检测器程序进行仿真,并予以分析和说明。2 设计思路序列检测器的设计是采用VHDL硬件描述语言设计程序,对预先设置的序列信号进行检测。序列检测器可用于检测任意三位2进制数,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的相同,则输出1,否则输出0。设计采用有限状态机来实现序列检测器。3 原理流程图4.RTL级表示5.程序LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY detect_3 ISPORT( Din:IN STD_LOGIC; Clk:IN STD_LOGIC; reset:IN STD_LOGIC; Dout_000,Dout_001,Dout_010,Dout_011,Dout_100,Dout_101,Dout_110,Dout_111:OUT STD_LOGIC );END detect_3;ARCHITECTURE RTL OF detect_3 ISTYPE STATE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14);SIGNAL pre_state,next_state:STATE;BEGINPROCESS(Din,pre_state) -Input Combinational LogicBEGINCASE pre_state ISWHEN S0=>IF(Din='1')THENnext_state<=S2;ELSEnext_state<=S1;END IF;WHEN S1=>IF(Din='1')THENnext_state<=S4;ELSEnext_state<=S3;END IF;WHEN S2=>IF(Din='1')THENnext_state<=S6;ELSEnext_state<=S5;END IF;WHEN S3=>IF(Din='1')THENnext_state<=S8;ELSEnext_state<=S7;END IF;WHEN S4=>IF(Din='1')THENnext_state<=S10;ELSEnext_state<=S9;END IF;WHEN S5=>IF(Din='1')THENnext_state<=S12;ELSEnext_state<=S11;END IF;WHEN S6=>IF(Din='1')THENnext_state<=S14;ELSEnext_state<=S13;END IF;WHEN S7=>IF(Din='1')THENnext_state<=S8;ELSEnext_state<=S7;END IF;WHEN S8=>IF(Din='1')THENnext_state<=S10;ELSEnext_state<=S9;END IF;WHEN S9=>IF(Din='1')THENnext_state<=S12;ELSEnext_state<=S11;END IF;WHEN S10=>IF(Din='1')THENnext_state<=S14;ELSEnext_state<=S13;END IF;WHEN S11=>IF(Din='1')THENnext_state<=S8;ELSEnext_state<=S7;END IF;WHEN S12=>IF(Din='1')THENnext_state<=S10;ELSEnext_state<=S9;END IF;WHEN S13=>IF(Din='1')THENnext_state<=S12;ELSEnext_state<=S11;END IF;WHEN S14=>IF(Din='1')THENnext_state<=S14;ELSEnext_state<=S13;END IF;END CASE;END PROCESS;PROCESS(Clk,reset) BEGIN IF(reset='1')thenpre_state<=s0;ELSIF(clk'event and clk='1') THEN pre_state<=next_state;END IF;END PROCESS;PROCESS(pre_state) BEGINIF(pre_state=S7)THENDout_000<='1'ELSEDout_000<='0'END IF;IF(pre_state=S8)THENDout_001<='1'ELSEDout_001<='0'END IF;IF(pre_state=S9)THENDout_010<='1'ELSEDout_010<='0'END IF;IF(pre_state=S10)THENDout_011<='1'ELSEDout_011<='0'END IF;IF(pre_state=S11)THENDout_100<='1'ELSEDout_100<='0'END IF;IF(pre_state=S12)THENDout_101<='1'ELSEDout_101<='0'END IF;IF(pre_state=S13)THENDout_110<='1'ELSEDout_110<='0'END IF;IF(pre_state=S14)THENDout_111<='1'ELSEDout_111<='0'END IF;END PROCESS;END RTL;6.仿真图仿真图分析:输入:1111110110100输出:前三个序列式111,在第四个时钟周期的上升沿,Dout_111置高电平接着是111,在第五个周期的上升沿,Dout_111置高电平,依次类推,接着是101,对应的Dout_101为高电平。-

    注意事项

    本文(VHDL序列检测器.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开