八位序列检测器设计Word文档格式.docx
- 文档编号:15684136
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:14
- 大小:136.36KB
八位序列检测器设计Word文档格式.docx
《八位序列检测器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《八位序列检测器设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
1.1课题设计背景1
2.总体方案设计2
2.1方案比较2
2.2两种方案的论证与比较3
3.单元模块设计4
3.1序列信号发生器4
3.2序列检测器6
3.3计数器7
3.4顶层文件设计8
4系统调试与验证9
4.1待测序列的输入9
4.2时序仿真11
4.3结果分析12
5总结与体会13
6辞谢14
7参考文献15
1前言
1.1课题设计背景
随着数字通信的广泛应用,可编程逻辑器件容量、功能的不断扩大,集成电路的设计已经进入片上系统(SOC)和专用集成电路(ASIC)的时代。
由于硬件描述语言VHDL可读性、可移植性、支持对大规模设计的分解和对已有设计的再利用等强大功能,迅速出现在各种电子设计自动化(EDA)系统中,先进的开发工具使整个系统设计调试周期大大地缩短。
利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述,在EDA工具的帮助下通过波形仿真得到时序波形,这样就使得对硬件的设计和修改过程软件化,提高了大规模系统设计的自动化程度。
传统的脉冲序列检测器,它的实现方法是把一个算法转化为一个实际数字逻辑电路的过程。
在这个过程中,我们所得到的结果大概一致,但是在具体设计方法和性价比上存在着一定的差异,存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周期长等缺点。
而利用FPGA作为硬件电路,采用VHDL等硬件描述语言对硬件的功能进行编程,加快了系统的研发进程,采用数字化的控制方式,大幅度提高了逻辑控制的精确度,实时控制效果好,实践证明,FPGA芯片可以代替传统的复杂的电路,而且可以大比例地缩小了电路的硬件规模,提高了集成度,降低开发成本,提高系统的可靠性,为脉冲序列检测器电路的设计开辟了新的天地。
脉冲序列检测器在现代数字通信系统中发挥着重要的作用,通过中小规模的数字集成电路构成的传统脉冲序列检测器电路往往存在电路设计复杂体积大、抗干扰能力差以及设计困难、设计周期长等缺点。
因此脉冲序列检测器电路的模块化、集成化已成为发展趋势,它不仅可以使系统体积减小、重量减轻且功耗降低、同时可使系统的可靠性大大提高。
随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。
随着ASIC技术、EDA技术的不断完善和发展以及VHDL、HDL等通用性好、移植性强的硬件描述语言的普及,FPGA等可编程逻辑器件必将在现代数字应用系统中得到广泛的应用,发挥越来越重要的作用。
2.总体方案设计
通过查阅大量相关技术资料,并结合自己的实际知识,我们主要提出了两种技术方案来实现系统功能。
下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的优劣。
2.1方案比较
2.1.1方案一
工作原理:
基于FPGA的多路脉冲序列检测器的设计方案,使用VHDL语言设计时序逻辑电路,先设计序列发生器产生序列:
1011010001101010;
再设计序列检测器,检测序列发生器产生序列,若检测到信号与预置待测信号相同,则输出“1”,否则输出“0”,并且将检测到的信号的显示出来。
系统框图如图所示:
图2.1
2.1.2方案二
工作原理:
使用proteus软件进行仿真,先画出原始状态图和状态表,在根据状态图使用D触发器,与门,或门以及非门等元件画出时序逻辑图,再根据结果译码,最后使用LED灯显示结果。
图2.2
2.2两种方案的论证与比较
第一种方案使用quartus软件进行仿真和验证,直接输入源代码比较简单方便,并且还可以检测其他的序列,只需要修改一部分代码就可以实现。
方案二使用proetus软件进行仿真和验证,需要先进行复杂的状态图分析,如果需要检测的序列过长就会造成原理图连接过于复杂,不易实现。
而且一旦原理图连接好久只能检测一种序列,如果要检测其他序列就要重新连图。
通过比较发现第一种方案明显优于第二种方案,因此选择第一种方案。
3.单元模块设计
主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元模块之间的联接关系;
同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。
3.1序列信号发生器
序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。
利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。
REG
s0
s1
s2
s3
s4
s5
s6
s7
Q
1
s8
s9
s10
s11
s12
s13
s14
s15
表3.1
序列信号发生器的代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSHKIS
PORT(CLK,RST:
INSTD_LOGIC;
CO:
OUTSTD_LOGIC);
ENDSHK;
ARCHITECTUREbehavOFSHKIS
TYPEFSM_STIS(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);
SIGNALREG:
FSM_ST;
SIGNALQ:
STD_LOGIC;
BEGIN
PROCESS(CLK,RST)
BEGIN
IFRST='
1'
THENREG<
=s0;
Q<
='
0'
;
ELSIFCLK'
EVENTANDCLK='
THEN
CASEREGIS
WHENs0=>
Q<
REG<
=s1;
WHENs1=>
REG<
=s2;
WHENs2=>
=s3;
WHENs3=>
=s4;
WHENs4=>
=s5;
WHENs5=>
=s6;
WHENs6=>
=s7;
WHENs7=>
=s8;
WHENs8=>
=s9;
WHENs9=>
=s10;
WHENs10=>
=s11;
WHENs11=>
=s12;
WHENs12=>
=s13;
WHENs13=>
=s14;
WHENs14=>
=s15;
WHENs15=>
WHENOTHERS=>
ENDCASE;
ENDIF;
ENDPROCESS;
CO<
=Q;
ENDbehav;
转化成可调用的元件:
图3.1
波形仿真如下:
图3.2
3.2序列检测器
脉冲序列检测起可用于检测一组或多组二进制码组成的脉冲序列信号,当序列检测器连续接收到一组穿行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确的序列,直到连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中,任何一位不相等将回到初始状态重新开始检测。
序列检测器的代码如下:
libraryieee;
useieee.std_logic_1164.all;
entitySCHK1is
port(datain,clk:
instd_logic;
t:
instd_logic_vector(4downto0);
q:
outstd_logic;
cq:
outstd_logic_vector(4downto0));
endSCHK1;
architecturert1ofSCHK1is
signalreg:
std_logic_vector(4downto0);
begin
process(clk)
variablet1:
std_logic_vector(4downto0);
ifclk'
eventandclk='
then
reg(0)<
=dat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八位 序列 检测器 设计