8位序列检测器的设计文档格式.docx

上传人:b****1 文档编号:3271398 上传时间:2023-05-01 格式:DOCX 页数:16 大小:136.53KB
下载 相关 举报
8位序列检测器的设计文档格式.docx_第1页
第1页 / 共16页
8位序列检测器的设计文档格式.docx_第2页
第2页 / 共16页
8位序列检测器的设计文档格式.docx_第3页
第3页 / 共16页
8位序列检测器的设计文档格式.docx_第4页
第4页 / 共16页
8位序列检测器的设计文档格式.docx_第5页
第5页 / 共16页
8位序列检测器的设计文档格式.docx_第6页
第6页 / 共16页
8位序列检测器的设计文档格式.docx_第7页
第7页 / 共16页
8位序列检测器的设计文档格式.docx_第8页
第8页 / 共16页
8位序列检测器的设计文档格式.docx_第9页
第9页 / 共16页
8位序列检测器的设计文档格式.docx_第10页
第10页 / 共16页
8位序列检测器的设计文档格式.docx_第11页
第11页 / 共16页
8位序列检测器的设计文档格式.docx_第12页
第12页 / 共16页
8位序列检测器的设计文档格式.docx_第13页
第13页 / 共16页
8位序列检测器的设计文档格式.docx_第14页
第14页 / 共16页
8位序列检测器的设计文档格式.docx_第15页
第15页 / 共16页
8位序列检测器的设计文档格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

8位序列检测器的设计文档格式.docx

《8位序列检测器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《8位序列检测器的设计文档格式.docx(16页珍藏版)》请在冰点文库上搜索。

8位序列检测器的设计文档格式.docx

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)<

=datain;

reg(4downto1)<

=reg(3downto0);

endif;

t1:

=t;

ifreg=t1thenq<

;

elseq<

cq<

=reg;

endif;

endprocess;

endrt1;

图3.3

图3.4

3.3计数器

利用序列检测器产生的信号(1和0)作为计数器模块的时钟信号,产生的信号0、1变化,形成类似的CLK信号,实现计数器计数。

计数器的代码如下:

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTIS

PORT(CLK,EN,RST:

Q1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

Q2:

COUT:

OUTSTD_LOGIC);

ENDENTITYCOUNT;

ARCHITECTUREONEOFCOUNTISBEGIN

PROCESS(CLK,EN,RST)

VARIABLECQI:

STD_LOGIC_VECTOR(7DOWNTO0);

IFRST='

THENCQI:

=(OTHERS=>

'

);

ELSIFCLK'

IFEN='

IFCQI<

153THEN

IFCQI(3DOWNTO0)=9THENCQI:

=CQI+7;

--高位进位

ELSECQI:

=CQI+1;

ELSECQI:

IFCQI=153THENCOUT<

ELSECOUT<

Q1<

=CQI(3DOWNTO0);

Q2<

=CQI(7DOWNTO4);

ENDPROCESSCOUNT;

ENDARCHITECTUREONE;

图3.5

图3.6

3.4顶层文件设计

通过前面的准备,我们已经得到了全部所需要的3个模块,即序列信号发生器、序列检测器、计数器。

在此,我们运用原理图法来生成顶层实体。

具体的实现方法是,将上述3个模块,通过我们的设计软件,生成可以移植,调用的原理图文件,在将其在顶层设计中直接调用即可。

本次设计生成的顶层实体如下图所示:

图3.7

4系统调试与验证

4.1待测序列的输入

输入检测的8位序列“11001011”程序如下:

port(din,clk,clr:

instd_logic;

pre_load:

instd_logic_vector(7downto0);

ab:

outstd_logic_vector(3downto0));

architecturebehavofSCHK1is

signalq:

integerrange0to8;

signald:

std_logic_vector(7downto0);

D<

=pre_load;

--置入待检测序列

process(clk,clr)

begin

ifclr='

thenq<

=0;

elsifclk'

caseqis

when0=>

ifdin=d(7)thenq<

=1;

elseq<

=0;

when1=>

ifdin=d(6)thenq<

=2;

when2=>

ifdin=d(5)thenq<

=3;

when3=>

ifdin=d(4)thenq<

=4;

when4=>

ifdin=d(3)thenq<

=5;

when5=>

ifdin=d

(2)thenq<

=6;

when6=>

ifdin=d

(1)thenq<

=7;

when7=>

ifdin=d(0)thenq<

=8;

whenothers=>

q<

endcase;

process(q)

ifq=8thenab<

elseab<

endif;

endbehav;

图4.1

4.2时序仿真

置入待检测序列:

图4.2

仿真结果:

图4.3

4.3结果分析:

1.根据序列检测器的输出端q可以看出,当检测器检测到串行信号与预置的序列信号相同时,q则输出“A”,没有检测到,q则输出“B”;

2.根据计数器的输出端Q1可以看出,Q1将序列检测器检测到的序列信号的数目显示出来。

3.通过仿真结果还可以看到,输出的波形出现了一些毛刺,这是因为信号在FPGA器件过逻辑单元连线时,一定存在延时。

延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。

因此,信号在器件中传输的时候,所需要的时间是不能精确估计的,当多路信号同时发生跳变的瞬间,就产生了“竞争冒险”。

这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。

5总结与体会

经过这次课程设计的学习,我确实学习了很多知识,真正的感受到了理论联系实际的重要性,以及这之间莫大区别,到最后看着自己的结果心里还是感到很欣慰的。

具体做了以下几项工作:

1.查找相关资料,了解EDA技术的发展及优点,同时详细分析了利用可编程逻辑器件来设计脉冲序列检测器的优势。

2.简要分析了FPJA器件的特征和结构,详细介绍了FPGA设计流程,同时详细介绍了硬件描述语言VHDL及其特点。

3.对序列检测器原理进行了详细的了解,并详细介绍了序列信号发生器、序列检测器及计数器的设计,最终完成设计的要求。

回顾起此次课程设计,自从拿到题目到完成整个编程,从理论到实践,在整整一Z周的时间,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。

6辞

在此次课程设计完成之际,我要向曾经给予我帮助的老师和同学表示深深的意,感老师的耐心指导和同学的帮助。

郭老师以其丰富的知识和经验指导我们的课程设计作业,从他那里我学到了很多专业知识和科学的研究方法,在电路设计过程中,我多次遇到问题,郭老师每次都耐心的讲解,使我可以及时改进并顺利完成设计,在此谨向他表示最诚挚的敬意和意!

其次,非常感同组的同学在课程设计期间给予我的帮助,他们给了我更多的支持和鼓励,让我更加自信地投入到课程设计中,使得本次的课程设计能如期完成,真的非常感他们。

7参考文献

[1]松等.EDA技术使用教程(第三版)[M].:

科学,2006

[2]王金明,周顺.数字系统设计与VHDL[M].:

电子工业,2010

[3]欲晓.EDA技术与VHDL技术[M].:

电子工业,2009.4

[4]明富,立军,等.EDA技术基础[M].:

大学,2007

[5]卢毅,赖杰.VHDL与数字电路设计[M].:

科学,2001

[6]顾斌.数字电路EDA[M].:

电子科技大学,2004

[7]黄正瑾.CPLD系统设计技术入门与应用[M].:

电子工业,2002

[8]齐亮.FPGA设计及应用[M].:

附录1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2