传输与处理综合设计报告Word文档下载推荐.docx
《传输与处理综合设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《传输与处理综合设计报告Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
![传输与处理综合设计报告Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/265b298c-d506-4a33-bd6e-83df1bdf4717/265b298c-d506-4a33-bd6e-83df1bdf47171.gif)
为了防止这种情况发生,在图2-1中往往还需要增加必要的检测电路。
m序列的特性分析
m序列由n级移位寄存器产生的m序列,其周期为
。
m序列具有如下的一些特性:
1)随机性:
在m序列的一个周期中,0和1出现概率大致相同,0码只比1码多一个,且1的个数为
,0的个数为
2)移位可加性:
某个周期为p的m序列与其经任意延迟移位后的序列模2相加后,其结果仍是周期为p的m序列,只是原序列某次延迟移位后的序列。
3)预先可确定性:
m序列是由移位寄存器的初始状态和反馈网络唯一确定的。
4)游程特性:
序列中取值相同的相继元素称为一个游程。
游程长度指的是游程中元素的个数。
在m序列中,一共有
个游程。
其中长度为1的游程占总游程数的一半;
长度为2的游程占总游程的1/4;
长度为k的游程占总游程数的
,且在长度为k的游程中,连0与连1的游程数各占一半。
另外,还有一个长度为n的1游程和一个长度为(n一1)的0游程。
由以上特性可知,m序列是一个周期性确定序列,又具有类似于随机二元序列的特性,因此得到了广泛的应用。
m序列的自相关函数
周期为p的m序列的自相关函数定义为:
(2-2)
其中,A是码字中对应码元相同的数目(同为1或同为0的数目),D是码字中对应码元不同的数目。
由于一个周期中0比1的个数少1,因此j为非零整数时A-D=-1,j为零时A-D=p,这样m序列的自相关函数可以化简为:
(2-3)
图2-2
如图2-2所示,m序列的相关函数
只在两序列相位差在正、负一个码元范围内时出现峰值,表现出尖锐的自相关特性。
因此,在工程上很容易通过检测本地的m序列与接收的m序列的相关输出是否出现峰值来判别做相关的两序列的相对位置是否在正、负一个码元内。
当周期p很大时,m序列的自相关函数与白噪声类似。
相关检测就是利用这一特性,在信号相关函数值的基础上来识别信号,检测或同步自相关函数值为1的码序列。
m序列发生器的软件设计
本文设计的m序列码长为33。
根据
,可以推得n=6。
假设初始状态为111111,查表可得
为(6,1),即本原多项式为
起跳状态设计
由于本原多项式为
,可以推得反馈系数
、
(2-4)
图2-3
如图2-3所示为m序列为63时发生器逻辑图。
在时钟的驱动下,m序列的真值表如下所示:
表2-1
CP
Q6
Q5
Q4
Q3
Q2
Q1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
由于本文设计的m序列码长为33,不满足
的条件,需要将码长截短。
因此要在
个有效状态中跳过
个状态,而且又要符合移存规律。
本文设计方法如下:
首先求出
的序列作为序列Ⅰ,再将
序列向左移
位,得到序列Ⅱ,将两序列各位对应进行模2加,得序列Ⅲ。
在序列Ⅲ中寻找100…0(n-1个连0)的地方,其对应位置序列Ⅰ的n位码就是起跳状态。
Q6的输出的序列Ⅰ:
111111*********110111011010010011100010111100101000110000100000
左移30位的序列Ⅱ:
011100010111100101000110000100000111111010101100110111011010010
两序列的模2加序列Ⅲ:
100011000010000011001101010110011011101101001001110001011110010
其中,001100为起跳态。
m序列逻辑表达式设计
可以在63长度的序列中,从起跳状态开始,消去30位码元,剩下的码元即组成33长度的序列信号:
110001*********100011000010000011。
因此,M=33的序列信号发生器的反馈函数
为:
(2-5)
但是在最长线性序列信号发生器中,全0状态是最长线性序列状态转移中的偏离状态。
当各级触发器均处于0状态时,由于反馈网络是异或网络,导致最后的输出为0,即最长线性序列信号发生器在全0状态不具有自启动特性。
为了使其具有自启动特性,必须修改激励函数。
修改的激励方程为:
(2-6)
化简可得:
(2-7)
C程序结果验证
#include<
stdio.h>
stdlib.h>
#include<
string.h>
intn(intt){
intout;
if(t==1)
z=0;
elseout=1;
returnout;
}
voidmain()
{
inti,x,Q6,Q5,Q4,Q3,Q2,Q1,Q;
x=110111;
printf("
%d\n"
x);
for(i=1;
;
i++)
{
if(i!
=1&
&
x==110111)
break;
else{
Q6=x/100000;
Q5=x%100000/10000;
Q4=x%10000/1000;
Q3=x%1000/100;
Q2=x%100/10;
Q1=x%10;
Q=(n(Q1)*Q6+Q1*n(Q6)+n(Q6)*n(Q5)*Q4*Q3*n(Q2)*n(Q1)+n(Q6)*n(Q5)*n(Q4)*n(Q3)*n(Q2)*n(Q1))%2;
x=Q5*100000+Q4*10000+Q3*1000+Q2*100+Q1*10+Q;
charstr[7];
itoa(x,str,10);
for(intj=strlen(str);
j<
6;
j++){
chartmp=str[j-1];
for(intp=0;
p<
j;
p++){
str[j-p]=tmp;
tmp=str[j-p-2];
}
str[0]='
0'
}
printf("
%s\n"
str);
}
图2-4
如图2-4所示,本文正确地实现了序列码长为33的m序列设计。
m序列发生器的硬件设计
本文采用可编程逻辑器件GAL16V8完成了m序列发生器硬件部分的设计。
GAL器件简介
可编程逻辑器件PLD(ProgrammableLogicDevice)是一种专用集成电路,具有结构灵活,集成度高、处理速度快、可靠性好的特点。
PLD的器件类型很多,通用阵列逻辑GAL(GenericArrayLogic)器件是其中的一种高性能的PLD产品。
GAL器件采用灵活的可编程I/O结构,在几十纳秒内可完成芯片的编程或擦除,可反复改写数据100次,数据可保持20年[3,4]。
GAL美国Lattice半导体公司生产的E2CMOS可编程器件的专用商标。
GAL产品分类
GAL产品分为普通型、通用型、异步型、FPLA型和在线可编程型5个系列:
(1)普通型GAL器件:
包括输入缓冲器,输出三态缓冲器,输出反馈/输入缓冲器,输出逻辑宏单元和时钟及输出使能信号缓冲器。
(2)通用型GAL器件:
通用型GAL器件采用的工艺和基本结构与普通型GAL器件相同,通用型器件在普通型器件基础上,简化了输出逻辑宏单元的结构,增加了阵列的规模,还向用户提供了两个专用乘积项(异步复位AR乘积项和同步置位SP乘积项),因此在设计组合逻辑和时序逻辑时,使用通用型GAL器件带来了更强的灵活性。
(3)异步型GAL器件:
不论是普通型还是通用型GAL器件,都只有一个时钟输入脚,所有输出寄存器都在同一时钟下工作。
这类器件难以实现在不同时钟下工作的异步时序逻辑,异步型GAL器件就是针对这一问题特别研制出来的。
(4)FPLA型器件:
这类器件在芯片内部集成了两个可编程的门阵列——与门阵列和或门阵列。
由于有两个可编程的门阵列,在设计状态机时就非常灵活了。
(5)在线可编程GAL器件:
这类器件具有在线可编程和诊断能力,其内部集成了一个功能模块,这一模块只需要应用系统中+5V电源电压,就能够提供编程,诊断所必须的电压和控制信号,因此,它可以不用专门的编程器即可完成在线编程,使用更加灵活方便。
硬件设计工作
本文使用的设计硬件为普通型GAL器件GAL16V8。
如图2-5所示,它包括输入缓冲器、输出三态缓冲器、与门阵列、输出反馈/输入缓冲器、输出逻辑宏单元OLMC等。
与门阵列由8×
8个与门构成,共形成64个乘积项。
每个与门有32个输入端。
GAL16V8用双列直插封装,共20个引脚,其中引脚2-9固定作输入引脚,引脚1在时序逻辑时作时钟输入,引脚11作使能控制,引脚12-19作输出引脚,其中15和16脚为专用输出引脚,而引脚1,11,12,13,14,17,18,19也可以配置为输入引脚。
因此输入最多可达16个,输出最多可达8个,这就是命名中的16和8的含意。
引脚10接地,引脚20接电源VCC[3]。
图2-5GAL16V8的逻辑电路图
在图2-5中,输入缓冲器和输出缓冲器都采用互补输出结构,其中其表示方法和真值表如图2-6所示。
图2-6
在图2-5中,可编程的部分是与门阵列,共有8组与门,每组中含8个与门,每个与门有16个输入线,如果全部画出,显得很繁琐,因此与门采用简化表示法,如图2-6所示,为了与传统的表示法对比,图中以3个输入(A,B,C)的“与”门为例,分别画出两种图形。
PLD简化画法似乎有三个相同的输入,但这种画法实际上代表了传统画法的三个不同输入。
多输入与门的输出D,称为“乘积项”。
在图2-7中的与门阵列中三种连接法:
固定连接、编程连接和被擦除(断开),也在图2-7中表示。
图2-7
作为一种通用结构的PLD器件,GAL的设计依然仍遵循典型的PLD程序设计流程,如图2-8所示。
从编写设计说明书开始到反复设计、调整逻辑关系直到达到设计要求,最后形成标准JEDEC文件装入编程器,完成对器件的编程工作。
另外,如果采用手工方法对GAL进行编程,不仅需要对器件的可编程单元非常清楚,而且必须保证据文件绝对正确,会使得设计过程非常繁琐且极易出错。
因此,在设计过程中通常会借助软件工具帮助设计,而软件工具又有汇编型和高级语言型两种。
本文采用的是汇编型软件工具,如图2-9所示的FM软件(Fast-Map)。
图2-8
图2-9
实验结果
1.本文采用可编程逻辑器件GAL16V8在FM环境下对m序列发生器进行设计,编写设计说明书如下:
GAL16V8;
DEVICENAME
F(x)=1+x+x6_33;
33LENGTHMSEQUENCE
tuyuliang.112014;
DESIGNER
M_33;
SIGNATURE
CLKNCNCNCNCNCNCNCNCGND;
PINNAME
OESQ6Q5Q4Q3Q2Q1NCVCC
Q6:
=Q5;
LOGICEQUATIONS
Q5:
=Q4
Q4:
=Q3
Q3:
=Q2
Q2:
=Q1
Q1:
=/Q1*Q6+Q1*/Q6+/Q6*/Q5*Q4*Q3*/Q2*/Q1+/Q6*/Q5*/Q4*/Q3*/Q2*/Q1
S.OE=VCC
S=Q6
DESCRIPTION
Thisprogramism_sequenceswhichis33_length.
2.文档文件M_33.LST:
GAL16V8
F(x)=1+x+x6_33
tuyuliang.112014
M_33
CLKNCNCNCNCNCNCNCNCGND
=Q5
____________________
|\__/|
||
CLK|0120|VCC
NC|0219|NC
NC|0318|Q1
NC|0417|Q2
NC|0516|Q3
NC|0615|Q4
NC|0714|Q5
NC|0813|Q6
NC|0912|S
GND|1011|OE
|______________________|
3.熔丝图文件M_33.PLT:
ArrayInputpin11111111
2938475665748392
PolarityFuseX
AC1Fuse-
OutputPin19Row0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin19Row7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PolarityFuse-
AC1FuseX
OutputPin18Row0-------X------------------X-----
OutputPin18Row1------X--------------------X----
OutputPin18Row2-------X---X--X---X----X---X----
OutputPin18Row3-------X---X---X---X---X---X----
OutputPin18Row4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin18Row5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin18Row6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin18Row7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row0------X-------------------------
OutputPin17Row1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin17Row7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row0----------X---------------------
OutputPin16Row1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin16Row7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ArrayInputpin11111111
OutputPin15Row0--------------X-----------------
OutputPin15Row1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin15Row2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OutputPin15Row3XXXXXXXXXXXXXXXXXXXXXXXXXX