序列检测器.docx
《序列检测器.docx》由会员分享,可在线阅读,更多相关《序列检测器.docx(14页珍藏版)》请在冰豆网上搜索。
序列检测器
第一章设计方案.........................................................1
1.1设计任务..........................................................1
1.2设计要求..........................................................1
1.2.1整体功能要求.................................................1
1.2.2测试要求.....................................................1
第二章设计思路.........................................................2
2.1数字频率计介绍....................................................2
2.2设计原理..........................................................2
2.2.1频率测量的基本原理...........................................2
2.2.2整体方框图及原理.............................................2
2.2.3序列器结构框图...............................................2
第三章模块介绍.........................................................4
3.1顶层文件模块......................................................4
3.1.1顶层文件原理.................................................4
3.1.2顶层文件模块verilog语言描述程序.............................4
3.2伪随机序列发生器模块..............................................4
3.2.1伪随机序列发生器.............................................4
3.2.2伪随机序列发生器原理.........................................5
3.2.3伪随机序列发生器模块verilog语言描述程序.....................6
3.3序列检测器模块....................................................7
3.3.1序列检测器原理...............................................7
3.3.2序列检测器模块verilog语言描述程序...........................7
第四章序列检测器的实现.................................................8
4.1序列检测器的verilog语言程序描述及仿真............................8
4.1.1序列检测器的verilog语言程序描述.............................8
4.1.2序列检测器的波形仿真.........................................9
4.2设计中遇到的问题与解决方法.......................................10
4.2.1设计中遇到的问题.............................................10
4.2.2解决方法.....................................................10
第五章设计小结.........................................................11
5.1心得体会..........................................................11
第一章设计方案
1.1设计任务
在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言VerilogHDL、EDA软件QuartusII和硬件平台Cyclone/CycloneIIFPGA进行电路系统的设计。
1.2设计要求
1.2.1整体设计要求
1、要求独立完成设计任务。
2、课程设计说明书封面格式要求见《天津城建大学课程设计教学规范》附表1。
3、课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。
4、测试要求:
根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。
5、课程设计说明书要求:
1)说明题目的设计原理和思路、采用方法及设计流程。
2)系统框图、Verilog语言设计程序或原理图。
3)对各子模块的功能以及各子模块之间的关系做较详细的描述。
4)详细说明调试方法和调试过程。
5)说明测试结果:
仿真时序图和结果显示图,并对其进行说明和分析。
1.2.2测试要求
(1)可预置时钟信号。
(2)可以在二极管上面显示测试结果。
第二章设计思路
2.1序列检测器的介绍
序列检测器就是将一个指定序列从数字码流中识别出来。
序列检测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。
它是一种用来检测一组或多组序列信号的电路。
序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中,任何一位不相等都将回到初始状态重新开始检测。
2.2设计原理
2.2.1序列检测原理
设X为数字码流的输入,Z为检测出标记输出,高电平表示发现指定的序列1101.考虑码流为11101101000011010....则,如表有:
时钟
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
X
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
…
Z
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
…
在时钟2-5,码流X中出现了指定序列“1101”,对应输出Z在第5个时钟变为高电平—“1”,表示“发现指定序列”,同样地,在时钟13-16码流,X中再次出现指定序列“1101”,Z输出“1”。
注意,在时钟5-8还有一席检出,但它是与第一次检出的序列重叠的,即前者的前面一位同时也是后者的最后一位。
2.2.2序列检测器整体方框图
2.2.3序列检测器结构框图
序列检测器的结构框图如图2-1所示。
图2-1序列检测器结构框图
本实验有四种状态,即:
Idle;Start;Step;Stop。
由上图可知,很显然是莫尔型状态机,总共有四种状态,4个状态机根据编码原则可以用2位二进制数来表示。
第三章模块介绍
3.1顶层文件模块
3.1.1顶层文件原理
采用图形输入方式构成顶层文件,重新构造本系统。
3.1.2顶层文件模块verilog语言描述程序
moduleXULIEQI(clk,reset,din4,LED7S);
inputclk;
inputreset;
input[3:
0]din4;
outputLED7S;
wire[3:
0]AB;
wire[3:
0]din18;
xulieu1(clk,din4,reset,din);
testu2(din,clk,reset,rst);
dec3su3(rst,LED7S);
endmodule
3.2伪随机序列发生器模块
3.2.1伪随机序列发生器
如果一个序列,一方面它是可以预先确定的,并且是可以重复地生产和复制的;一方面它又具有某种随机序列的随机特性(即统计特性),我们便称这种序列为伪随机序列。
在扩展频谱通信系统中,伪随机序列起着十分关键的作用。
在直接序列扩频系统得发射端,伪随机序列将信息序列的频谱扩展,在接收端,伪随机序列将扩频信号恢复为窄带信号,进而完成信息的接收。
m序列又称为最长线形反馈移位寄存器序列,该序列具有很好的相关性能。
m序列发生器的基本结构为:
其中(Cr,Cr-1,…,C0)为反馈系数,也是特征多项式系数。
这些系数的取值为“1”或“0”,“1”表示该反馈支路连通,“0”表示该反馈支路断开。
下图为实际m序列发生器的电路图:
图中利用D触发器级联的方式完成移位寄存器的功能。
在系统清零后,D触发器输出状态均为低电平,为了避免m序列发生器输出全“0”信号,图中在“模二加”运算后添加了一个“非门”。
从图中A、B、C、D四个节点均可得到同一m序列,只是序列的初始相位不同。
特征多项式系数决定了一个m
序列的特征多项式,同时也决定了一个m序列。
下表给出了部分m序列的反馈系数(表中的反馈系数采用八进制表示)
3.2.2伪随机序列发生器原理
伪随机序列虽然不是真正的随机序列,但是当伪随机序列周期足够长时,伪随机序列具有随机序列的良好统计特性。
伪随机序列中的m序列线性移位寄存器在逻辑上仅用加法器实现,其反馈函数形式f(x)=cn-1×0σcn-2×1σcn-3×2σ…σ-c0×n-1i,导航,集成电路的,其中cn-1-∈GF
(2)是反馈系数,xi∈GF
(2)是每位寄存器状态。
而采用FPGA作为系统的核心控制器件,是由于FPGA的最终逻辑功能是通过向内部静态存储器单元加载配置数据来实现的,不同的配置文件决定了逻辑单元不同。
3.2.3伪随机序列发生器模块verilog语言描述程序
以下是伪随机序列发生器模块的verilog程序:
modulewsjxlfsq(clock,out,set);
inputclock,set;
outputout;
reg[4:
0]sr;
always@(posedgeclock)
if(set)sr<=5'b10101;
elsebegin
sr<=sr>>1;
sr[4]<=sr[2]^sr[0];
end
assignout=sr[0];
endmodule
以下是伪随机序列的电路连接图:
3.3序列检测器模块
3.3.1序列检测器原理
序列检测器是时序数字电路中非常常见的设计之一。
它的主要功能是:
将一个指定的序列从数字码流中识别出来。
设计采用移动滑窗法进行序列检测。
3.3.2序列检测器模块verilog语言描述程序
modulemoore1101(reset,clk,date_in,date_out);
inputreset,clk,date_in;
outputdate_out;
reg[2:
0]state;
parameterst0=3'b000
,
st1=3'b001,st2=3'b010,st3=3'b011,st4=3'b100;
always@(negedgeclkorposedgereset)begin
if(reset==1)
state<=st0;
end
always@(negedgeclk)begin
case(state)
st0:
state<=date_in?
st1:
st0;
st1:
state<=date_in?
st2:
st0;
st2:
state<=date_in?
st2:
st3;
st3:
state<=date_in?
st4:
st0;
st4:
state<=date_in?
st2:
st0;
endcase
end
assigndate_out=state[2];
endmodule
第四章序列检测器的实现
4.1序列检测器的verilog语言程序描述及仿真
4.1.1序列检测器的verilog语言程序描述
moduletest(clk,rst,out,set);
inputclk,rst,set;//状态机工作时钟,复位控制,置零信号
outputout;//状态机对外部信号输出
reg[4:
0]sr;
wiredetain;
regout;
reg[1:
0]temp;
parameter
Idle=2'b00,
Start=2'b01,
Step=2'b10,
Stop=2'b11;//设定了4个状态参数
always@(posedgeclk)
if(set)sr<=5'b11101;
elsebegin
sr<=sr>>1;
sr[4]<=sr[2]^sr[0];
end
assigndetain=sr[0];
always@(posedgeclkornegedgerst)
if(!
rst)
begin
temp<=Idle;
out<=0;
end
elsecase(temp)
Idle:
if(detain==1)
begin
temp<=Start;
out<=0;
end
else
temp<=Idle;
Start:
if(detain==1)
begin
temp<=Step;
out<=0;
end
else
temp<=Idle;
Step:
if(detain==0)
begin
temp<=Stop;
out<=0;
end
else
temp<=Start;
Stop:
if(detain==1)
begin
temp<=Idle;
out<=1;
end
else
begin
temp<=Idle;
out<=0;
end
endcase
endmodule
4.1.2序列检测器的波形仿真
序列检测器的波形仿真图形如下图所示:
4.2设计中遇到的问题与解决方法
4.2.1设计中遇到的问题
在设计中,我对程序设计方面很多都不是很在行,如伪随机序列发生器模块verilog语言描述程序,其次就是波形仿真,虽然在实验中学了不少,但对设置时间还是不太擅长。
4.2.2解决方法
我去网上查阅了相关资料,查了许多verilog语言描述程序,并询问同学有关问题,同学也都一一解答,还翻阅了以前的EDA实验报告,从报告书上看懂了一部分波形仿真的方法,并运用于此次的课程设计当中。
第五章设计小结
5.1心得体会
通过这次课程设计,我觉得既锻炼了我们的设计,由简单的抽象理解到实际认知。
特别的是使用QuartusⅡ软件的仿真使我对它们的功能有了形象的认识,而且还可以帮助我们检查出错误,为以后的工作需要奠定了一定的基础。
在这次实验中,也要感谢同学的帮助,相互讨论中也使我学习了他们不同的思考方式,使我明白了团体合作是很重要的。
通过实验,我们真正体会到EDA带来的方便;通过仿真,我们能够很形象地了解到原理图的功能。
体验到真实实验中的情境,增加了对电子实验和电子设计的信心。
通过本设计,进一步加深了对VerilogHDL语言的理解及应用,理解了数码管的工作和译码的整个思路。
用VerilogHDL语言来设计电路,思路更清晰,更简洁,实现起来更加的得心应手。
这次EDA课程设计历时一个星期,在整整两个星期的日子里,学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
特别是当每一个子模块编写调试成功时,心里特别的开心。
但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。