序列检测器的设计47082.docVIP

  • 13
  • 0
  • 约1.55千字
  • 约 3页
  • 2017-08-31 发布于重庆
  • 举报
序列检测器的设计47082.doc

序列检测器的设计 摘要 本文介绍了基于FPGA的简单序列检测器设计,包括设计思路,逻辑图以及VHDL源程序代码。 关键词 FPGA 序列检测器 引言 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,这在数字通信领域有广泛的应用。 序列检测器设计思路 当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0.由于这种检测的关键在于正确的码的接受必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列。直到在连续的检测中所收到的每一位码都与预先设置的相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。如下图所示,当一串待测的串行数据进入检测器后,若此数在每一位的连续检测中都与预设的密码数相同,则输出“A”,否则输出“B”。 VHDL源程序 LIBRARY IEEE; USE IEEE_LOGIC_1664.ALL;; ENTITY CHK IS PORT(DIN: IN STD_LOGIC; --串行输入数据位 CLK,CLR:IN STD_LOGIC; --工作时钟、复位信号 D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位待测预知数 AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--检测结果输出 END CHK; ARCHITECTURE ART OF CHK IS SINGAL Q :INTEGER RANGE 0 TO 8; BEGIN PROCESS(CLK,CLR) BEGIN IF CLR=’1’THEN Q=0; ELSIF CLK’EVENT AND CLK=’1’THEN CASE Q IS WHEN 0= IF DIN=D(7)THENQ=1;ELSE Q=0;END IF; WHEN 1= IF DIN=D(6)THENQ=2;ELSE Q=0;END IF; WHEN 2= IF DIN=D(5)THENQ=3;ELSE Q=0;END IF; WHEN 3= IF DIN=D(4)THENQ=4;ELSE Q=0;END IF; WHEN 4= IF DIN=D(3)THENQ=5;ELSE Q=0;END IF; WHEN 5= IF DIN=D(2)THENQ=6;ELSE Q=0;END IF; WHEN 6= IF DIN=D(1)THENQ=7;ELSE Q=0;END IF; WHEN 7= IF DIN=D(0)THENQ=8;ELSE Q=0;END IF; WHEN OTHERS=Q=0; END CASE; END IF; END PROCESS; PROCESS(Q) --检测结果判断输出 BEGIN IF Q=8 THEN AB=’1010’; --序列数检测正确,输出“A” ELSE AB=’1011’; --序列数检测错误,输出“B” END IF; END PROCESS; END ART; 仿真结果 结束语 由于FPGA的高速和可靠性,以及标准化语言和编程方式,使得FPGA在目前的应用中越来越广泛,而且因为FPGA技术的优点,FPGA将是未来数字电子系统设计的主要方式。虽然本文介绍的设计思路很简单,但是突出了FPGA技术设计方式的特点。 参考文献 EDA技术与CPLD/FPGA开发应用简明教程 清华大学出版社

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档