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

    用状态机实现序列检测器的设计(共7页).doc

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

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

    用状态机实现序列检测器的设计(共7页).doc

    精选优质文档-倾情为你奉上1. 掌握基于语言的ISE设计全流程;实验三:用状态机实现序列检测器的设计一、 实验目的2. 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。3. 掌握基于语言的ISE设计全流程;4. 熟悉、应用VerilogHDL描述数字电路;二、 实验原理与设计过程(一) 实验内容:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出A,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例3-1描述的电路完成对序列数""的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“b”。(二) 本次实验的核心是:应用有限状态机的设计思路,检测输入的串行数据是否是8b。根据下载电路板的资源,拟用SW3-SW0,J4接口的E8,F8,C7,D7作为系统输入(系统由此需要设计一个8bits并行数据转串行的模块),一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为”,显示A,否则显示b(系统需要设计一个7段数码显示译码器模块),为了显示可控,清晰,拟用V16,D18实现时钟,复位信号的输入。(三) 设计参考:本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成:a) 系统共包括4个模块:并行数据转串行数据模块、串行检测模块、数码管显示模块、消抖模块。由于需要用按键V16作为时钟输入,为保证实验效果,调用实验二中应用的消抖模块,对时钟clk输入信号进行消抖。b) 对于并行数据转串行数据模块输入输出端口说明:i. clk-系统时钟,由按键V16通过消抖模块后提供。ii. din8-8bits输入数据,需在时钟控制下,串行输出。iii. reset-系统复位信号,当reset=1b1时,系统输出复位,否则系统正常工作。iv. din-1bit输出信号。该并行模块的设计如下:module xulie_u1(clk,din8,reset,din );input clk;input7:0 din8;input reset;output din;parameter s0 = 3'b000, s1 = 3'b001, s2 = 3'b010, s3 = 3'b011, s4 = 3'b100, s5 = 3'b101, s6 = 3'b110, s7 = 3'b111;reg2:0 cur_state,next_state;reg din;always (posedge clk or posedge reset) if(reset) cur_state <= s0; else cur_state <= next_state;always (cur_state or din8 or din )begin case (cur_state) s0 : begin din <= din87; next_state <= s1; end s1 : begin din <= din86; next_state <= s2; end s2 : begin din <= din85; next_state <= s3; end s3 : begin din <= din84; next_state <= s4; end s4 : begin din <= din83; next_state <= s5; end s5 : begin din <= din82; next_state <= s6; end s6 : begin din <= din81; next_state <= s7; ends7 : begin din <= din80; next_state <= s0; end default : begin din <= 1'b0; next_state <= s0; endendcaseendendmodule(四) 对于串行检测模块其输入输出端口说明如下:a) din-1bit的串行输入数据b) clk-同步输入时钟c) clr -异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作d) AB-4bits数据,如果系统检测到8b的串行输入,AB=4b1010,否则,AB=4b1011.e) 其设计代码如下:module schk_u2(din,clk,reset,AB);input din;input clk;input reset;output3:0 AB;reg3:0 AB;reg3:0 current_state,next_state;parameter st0=4'b0000,st1=4'b0001,st2=4'b0010,st3=4'b0011,st4=4'b0100,st5=4'b0101,st6=4'b0110,st7=4'b0111,st8=4'b1000;always (posedge clk or posedge reset)beginif(reset)current_state<=st0;elsecurrent_state<=next_state;endalways (current_state or din)begincase(current_state)st0:begin AB<=4'b1011; next_state<=(din=1)?st1:st0;endst1:begin AB<=4'b1011; next_state<=(din=1)?st2:st0;endst2:begin AB<=4'b1011; next_state<=(din=1)?st3:st0;endst3:begin AB<=4'b1011; next_state<=(din=0)?st4:st3;endst4:begin AB<=4'b1011; next_state<=(din=0)?st5:st1;endst5:begin AB<=4'b1011; next_state<=(din=1)?st6:st0;endst6:begin AB<=4'b1011; next_state<=(din=0)?st7:st1;endst7:begin if(din=1)begin AB<=4'b1010;next_state<=st8;endelsebegin AB<=4'b1011;next_state<=st0;endendst8:begin AB<=4'b1011; next_state<=(din=1)?st1:st0;endendcaseendendmodule(五) 其中最后的LED驱动模块不做过多说明,只是简单的设计如下:module decled7s_u3(AB,led7 ); input3:0 AB; output6:0 led7; reg6:0 led7; wire3:0 AB; initial led7=7'b; always (AB) begin case(AB) 4'b1010:led7<=7'b; 4'b1011:led7<=7'b; default:led7<=7'b; endcase endEndmodule·(六)最终加入消抖模块综合结果如下:(七) 综合模块代码:module XULIEQI(clk_50M,clk1,reset,din8,led7 );input clk_50M,clk1;input reset;input 7:0 din8;output 6:0 led7;wire 3:0 AB;wire din,clk;debounce_module u1(clk_50M,reset,clk1,clk);xulie_u1 u2(clk, din8, reset, din);schk_u2 u3(din,clk,reset,AB);decled7s_u3 u4(AB,led7);endmodule三、 实验仿真(一) 根据实验过程综合程序结果:(二) 实验引脚约束文件如下:NET "clk1" LOC = "V16" |PULLDOWN ;NET "clk_50M" LOC = "C9" ;NET "din80" LOC = "D7" ;NET "din81" LOC = "C7" ;NET "din82" LOC = "F8" ;NET "din83" LOC = "E8" ;NET "din84" LOC = "L13" ;NET "din85" LOC = "L14" ;NET "din86" LOC = "H18" ;NET "din87" LOC = "N17" ;NET "led70" LOC = "D5" ;NET "led71" LOC = "C5" ;NET "led72" LOC = "B6" ;NET "led73" LOC = "E7" ;NET "led74" LOC = "F7" ;NET "led75" LOC = "A4" ;NET "led76" LOC = "B4" ;NET "reset" LOC = "D18" ;NET "clk1" CLOCK_DEDICATED_ROUTE=FALSE;(三) 并行模块的时序仿真情况为:(四) 串行检测模块的相应仿真:四、思考题本次实验的设计代码表达的是Moore类型的状态机它的输出信号仅与当前的状态有关,与当前的输入无关。reset=0时,当din=1,idle状态转为s1状态,输出为b;当din=1,s1状态转为s2状态,输出为b;当din=1,s2状态转为s3状态,输出为b;当din=1,s3状态转为s4状态,否则转为s3状态,输出为b;当din=0,s4状态转为s5状态,输出为b;当din=1,s5状态转为s6状态,输出为b;当din=0,s6状态转为s7状态,否则转为s2状态,输出为b;当din=1,s7状态转为s8状态,输出为A。当din=1,s8状态转为s1状态,输出为b,依次循环。当reset=1时,输出复位为b。专心-专注-专业

    注意事项

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

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




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

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

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

    收起
    展开