八位序列检测器设计.docx

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

PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 1 八位序列检测器设计 班级:1302012 学号姓名:郭春晖 设计说明 使用quartus软件进行仿真和验证,并且还可以检测其他的序列,只需要修改一部分代码就可以实现。 二、方案 工作原理:基于FPGA的多路脉冲序列检测器的设计方案,使用VHDL语言设计时序逻辑电路,先设计序列发生器产生序列:1011010001101010;再设计序列检测器,检测序列发生器产生序列,若检测到信号与预置待测信号相同,则输出“1”,否则输出“0”,并且将检测到的信号的显示出来。 三、单元模块设计 1、 序列信号发生器 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。 REG s0 s1 s2 s3 s4 s5 s6 s7 Q 1 0 1 1 0 1 0 0 REG s8 s9 s10 s11 s12 s13 s14 s15 Q 0 1 1 0 1 0 1 0 序列信号发生器的代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SHK IS PORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC ); END SHK; ARCHITECTURE behav OF SHK IS TYPE FSM_ST IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); SIGNAL REG:FSM_ST; SIGNAL Q:STD_LOGIC; BEGIN PROCESS(CLK,RST) BEGIN IF RST =1 THEN REG=s0;Q=0; ELSIF CLKEVENT AND CLK=1 THEN CASE REG IS WHEN s0= Q=1; REG=s1; WHEN s1= Q=0;REG=s2; WHEN s2= Q=1;REG=s3; WHEN s3= Q=1;REG=s4; WHEN s4= Q=0;REG=s5; WHEN s5= Q=1;REG=s6; WHEN s6= Q=0;REG=s7; WHEN s7= Q=0;REG=s8; WHEN s8= Q=0;REG=s9; WHEN s9= Q=1;REG=s10; WHEN s10= Q=1;REG=s11; WHEN s11= Q=0;REG=s12; WHEN s12= Q=1;REG=s13; WHEN s13= Q=0;REG=s14; WHEN s14= Q=1;REG=s15; WHEN s15= Q=0;REG=s0; WHEN OTHERS=REG=s0;Q=0; END CASE; END IF; END PROCESS; CO=Q; END behav; 转化成可调用的元件: 波形仿真如下: 2、序列检测器 脉冲序列检测起可用于检测一组或多组二进制码组成的脉冲序列信号,当序列检测器连续接收到一组穿行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确的序列,直到连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等将回到初始状态重新开始检测。 序列检测器的代码如下: library ieee; use ieee.std_logic_1164.all; entity SCHK1 is port(datain,clk:in std_logic; t: in std_logic_vector (4 downto 0); q:out std_logic; cq: out std_logic_vector (4 downto 0)); end SCHK1; architecture rt1 of SCHK1 is signal reg:std_logic_vector(4 downto 0); begin process(clk) variable t1:std_logic_vector (4 downto 0); begin if clkevent and clk=1 then reg(0)=datain; reg(4 downto 1)=reg(3 downto 0) ; end if; t1:=t; if reg=t1 then q=1 ; else q=0; cq=reg;

文档评论(0)

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

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

1亿VIP精品文档

相关文档