帧同步信号提取电路功能模块的设计与建模创新.docx
- 文档编号:29106062
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:23
- 大小:195.73KB
帧同步信号提取电路功能模块的设计与建模创新.docx
《帧同步信号提取电路功能模块的设计与建模创新.docx》由会员分享,可在线阅读,更多相关《帧同步信号提取电路功能模块的设计与建模创新.docx(23页珍藏版)》请在冰豆网上搜索。
帧同步信号提取电路功能模块的设计与建模创新
学号:
课程设计
题目
帧同步信号提取电路功能模块的设计与建模
学院
信息工程学院
专业
电子信息工程
班级
姓名
指导教师
阙大顺
2016年1月8日
课程设计任务书
学生姓名:
专业班级:
指导教师:
阙大顺工作单位:
信息工程学院
题目:
帧同步信号提取电路功能模块的设计与建模
初始条件:
(1)MAXPLUSII、QuartusII、ISE等软件;
(2)课程设计辅导书:
《通信原理课程设计指导》
(3)先修课程:
数字电子技术、模拟电子技术、电子设计EDA、通信原理。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)课程设计时间:
周;
(2)课程设计题目:
帧同步信号提取电路功能模块的设计与建模;
(3)本课程设计统一技术要求:
按照要求题目进行逻辑分析,掌握实现插入式帧同步的方法,画出实现电路原理图,设计出各模块逻辑功能,编写VHDL语言程序,上机调试、仿真,记录实验结果波形,对实验结果进行分析;
(4)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献至少5篇;
(5)写出本次课程设计的心得体会(至少500字)。
时间安排:
第19周
参考文献:
段吉海.数字通信系统建模与设计.北京:
电子工业出版社,2004
江国强.EDA技术与应用.北京:
电子工业出版社,2010
JohnG.Proakis.DigitalCommunications.北京:
电子工业出版社,2011
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
帧同步技术是通信系统中的关键技术。
数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此帧同步信号的频率很容易由位同步信号经分频得出,但每个帧的开头和末尾时刻却无法由分频器的输出决定。
为此,帧同步的任务就是要给出这个“开头”和“末尾”的时刻。
文中探讨了完整帧同步电路的实现方法,以VHDL语言描述了巴克码识别器,给出了时序仿真波形,并且生成了内部各个模块电路图。
本次设计采用的是ISE软件。
常用的设计输入方法是硬件描述语言(HDL)和原理图设计输入方法。
目前在大型工程设计中,在ISE软件中常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和VerilogHDL。
它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化。
同时ISE包含综合后仿真和功能仿真(Simulation)等。
关键词:
帧同步、巴克码组、VHDL语言
目录
1.ISE简要介绍1
1.1主要特点1
1.2ISE功能简介1
2.设计原理2
2.1帧同步2
2.2实现帧同步的方法2
2.3帧同步码的识别3
3.帧同步信号提取的电路设计思想4
4.实验程序及结果7
4.1移位寄存器7
4.1.1移位寄存器的VHDL代码7
4.1.2实验结果8
4.2译码器8
4.2.1的VHDL程序代码8
4.2.2实验结果10
4.3判决器11
4.3.1判决器的VHDL代码11
4.3.2实验结果11
4.4顶层模块设计12
4.4.1顶层模块设计的VHDL代码12
4.4.2实验结果14
4.5原理图16
5.设计小结16
6.心得体会17
7.参考文献18
1.ISE简要介绍
Xilinx是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(IntellectualProperty)核,长期以来一直推动着FPGA技术的发展。
Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE14.7系列,集成了FPGA开发需要的所有功能。
1.1主要特点
(1)包含了Xilinx新型SmartCompile技术,可以将实现时间缩减2.5倍,能在最短的时间内提供最高的性能,提供了一个功能强大的设计收敛环境;
(2)全面支持Virtex-5系列器件(业界首款65nmFPGA);
(3)集成式的时序收敛环境有助于快速、轻松地识别FPGA设计的瓶颈;可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本。
(4)FoundationSeriesISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA芯片占有很大的市场,使其成为非常通用的FPGA工具软件。
ISE作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。
1.2ISE功能简介
ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。
(1)设计输入:
ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(TheISETextEditor),用于原理图编辑的工具ECS(TheEngineeringCaptureSystem),用于生成IPCore的CoreGenerator,用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor等。
(2)综合:
ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。
(3)仿真:
ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDLBencher,同时又提供了使用ModelTech公司的Modelsim进行仿真的接口。
(4)实现:
此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。
验证(Verification)包含综合后仿真和功能仿真(Simulation)等。
功能仿真就是对设计电路的逻辑功能进行模拟测试,看其是否满足设计要求,通常是通过波形图直观地显示输入信号与输出信号之间的关系。
综合后仿真在针对目标器件进行适配之后进行,综合后仿真接近真实器件的特性进行,能精确给出输入与输出之间的信号延时数据。
(5)下载:
下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了ImPACT,功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。
2.设计原理
2.1帧同步
数字通信系统接收到的是码元序列,这个序列需要用标志码去进行帧起始的定位,这个标志码即帧同步码,也称为群同步码。
帧同步码需要有特殊的性质,以区别于所传输的信息序列。
帧同步是指帧同步码的插入和提取功能的实现,帧同步是保证数字通信系统正常工作的必要的环节。
2.2实现帧同步的方法
实现帧同步的方法主要有两类:
一类是插入特殊码法,即插入式帧同步法,它在数字信息码序列中插入一些特殊码组作为每帧的帧头标志,而在接收端则根据这些码组的位置来实现帧同步。
另一类是利用数据组本身之间彼此不同的特性来实现自同步,不需要专门的帧同步码。
在本课程设计中主要研究插入式帧同步法。
所谓连贯式插入法是指在每帧的开头集中插入帧同步码组的方法。
用做帧同步码组的特殊码组要求具有尖锐单峰性的局部自相关函数。
这个特殊码组是非周期序列或有限序列,在求它的自相关函数时,除了在时延的情况下,序列中只有部分元素参加相关运算,其表达式为:
(2.2.1)
我们把这种非周期序列的自相关函数称为局部自相关函数。
下面就目前的一种常用的帧同步码组——巴克码,做简单介绍。
所谓巴克码是一种具有特殊规律的非周期序列。
设一个n位的巴克码组为
。
则其自相关如下:
(2.2.2)
目前已找到的巴克码组如下表所示:
n
巴克码组
2
++(11),+-(10)
3
++-(110)
4
+++-(1110),++-+(1101)
5
+++-+(11101)
7
+++--+-(1110010)
11
+++---+--+-(11100010010)
13
+++++--++-+-+(1111100110101)
表2.1巴克码组
巴克码在j=0时出现尖锐的自相关性,其他j则为0或为
1,非常容易识别。
2.3帧同步码的识别
帧同步码识别器由移位寄存器、相加器和判决器组成,原理图如下所示,以基群帧同步码“0011011”位例说明其工作原理。
图2.1帧同步识别器原理
基群帧同步码识别器的移位寄存器包含个D触发器,Q端还是
端输出取决于相应的同步码位,“1”对应Q,“0”对应
。
当帧同步码“0011011”从左至右全部移入寄存器,相加器输入7个“1”,只要判决器门限小于7,例如设为5,则识别出帧同步码,输出一个正脉冲。
输出波形如下图所示:
图2.2基群帧同步码识别识别器输入和输出波形
若信息序列中正好有若干个连续信息位和正同步码相同,如基群序列中,非同步码的位置也出现连续的“0011011”,则识别器也会输出正脉冲,这种现象称为假同步。
可采取多种措施防止假同步的产生,例如要求连续检测多个帧周期,重复识别出帧同步码,才确定是真正的帧同步信号。
还有一种现象叫做漏同步。
若识别器判决门限设为n,则当同步码中有错码时,就不能被识别。
判决门限高有利于防止假同步,但不利于防止漏同步;反之。
降低判决门限有利于减少漏同步,但会导致假同步概率增大,需要综合去确定判决门限。
3.帧同步信号提取的电路设计思想
提取连贯式插入法的帧同步信号的关键是要把特殊码组从信号流中识别出来。
假如一帧信号是基于32位的信息码组,而巴克码是七位的,由于巴克码作为一帧信号的帧头识别码,所以只需要把巴克码识别出来,就可以把帧同步信号提取出来,这里,在外界提供自动门限信号出来的前提下,我们只是研究简单的提取电路。
具体帧同步信号提取电路设计框图如下:
图3.1帧同步信号提取电路设计框图
如上图所示,帧同步信号提取电路主要是由七位移位寄存器、译码器和判决器三部分组成。
其中帧同步系统的工作状态分为捕捉态和维持态。
首先假设在同步未建立时,系统处于捕捉态,此时从信道而来的位同步信号由移位寄存器输入端输入,由于七位的巴克码是1110010,所以对D1、D3和D4进行反相输出,这样,移位寄存器完成数据的串行输入,七位并口输出,然后经过3—8线译码器,当D7—D1是1111111时,输出是111;当传输过程中存在一位错码时,即D7—D1中有一位是0,其余是1时,输出是110;译码器的输出即到判决器的输入,当自动门限是7时,则输入是111时,判决输出是1(高电平);若输入为其他(小于7)时,判决输出是0(低电平);当自动门限是6时,则输入是110或111时,则判决输出是1(高电平);若输入为其他(小于7)时,判决输出是0(低电平)。
此时,输出的两个高电平脉冲之间的数据即为所传输的一帧数据。
因此,帧同步信号被提取出来。
其中,译码器能实现当七位寄存器输出的是“1111111”时,译码器输出就是“111”;有一位错码输出即七位输出中只有一位是“0”的时候,译码器输出就是“110”,其他情况输出就为“000”。
译码器的流程图如下所示:
图3.2译码器流程图模型
判决器的功能相当于一个比较器,即当巴克码识别器的输出大于等于自动门
限的输出时,就输出一个“1”脉冲,否则就输出“0”脉冲。
根据这样的要求,
可以建立如下所示的流程图:
图3.3判决器建模流程图
4.实验程序及结果
4.1移位寄存器
4.1.1移位寄存器的VHDL代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityywjcqis
port(datain,clked:
instd_logic;
qout6,qout5,qout4,qout3,qout2,qout1,qout0:
outstd_logic);
endywjcq;
architectureBehavioralofywjcqis
signaltem:
std_logic_vector(6downto0);
begin
process(clked)
begin
if(clked'eventandclked='1')then
tem(6)<=datain;
foriin1to6loop
tem(6-i)<=tem(7-i);
endloop;
endif;
endprocess;
qout6<=nottem(6);
qout5<=tem(5);
qout4<=nottem(4);
qout3<=nottem(3);
qout2<=tem
(2);
qout1<=tem
(1);
qout0<=tem(0);
endBehavioral;
4.1.2实验结果
图4.1移位寄存器实验结果图
分析:
移位寄存器部分电路完成将串行传输的数据转化为并行输出的数据。
4.2译码器
4.2.1的VHDL程序代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityymqis
port(ain,bin,cin,din,ein,fin,gin:
instd_logic;
sout:
outstd_logic_vector(2downto0));
endymq;
architectureBehavioralofymqis
signalq:
std_logic_vector(6downto0);
begin
q<=ain&bin&cin&din&ein&fin&gin;
process(q)
begin
caseqis
when"0111111"=>sout<="110";
when"1011111"=>sout<="110";
when"1101111"=>sout<="110";
when"1110111"=>sout<="110";
when"1111011"=>sout<="110";
when"1111101"=>sout<="110";
when"1111110"=>sout<="110";
when"1111111"=>sout<="111";
whenothers=>sout<="000";
endcase;
endprocess;
endBehavioral;
4.2.2实验结果
图4.2译码器实验结果图
分析:
译码器电路部分完成将移位寄存器输出的七位并行数据译码为三位二进制数据,如将“1111111”译码为“111”,如果七位输出码中含有一位“0”码,那么译为“110”,其他输出码,如包含2个或2个“0”以上的,则译为“000”,目的是考虑到门限信号只是设置为“111”和“110”这两种状态,减小假同步出现的概率。
4.3判决器
4.3.1判决器的VHDL代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitypjqis
port(a:
instd_logic_vector(2downto0);
b:
instd_logic_vector(2downto0);
c:
outstd_logic);
endpjq;
architectureBehavioralofpjqis
signald:
std_logic;
begin
process(a,b)
begin
ifa>=bthend<='1';
else
d<='0';
endif;
endprocess;
c<=d;
endBehavioral;
4.3.2实验结果
图4.3判决器实验结果图
分析:
由仿真图可以看出判决器的功能和其流程图过程一致,对于输入的a[2:
0]和b[2:
0],若a[2:
0]大于等于b[2:
0],则输出为‘1’即高电平;否则输出‘0’即低电平。
4.4顶层模块设计
4.4.1顶层模块设计的VHDL代码
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitytongyuanis
Port(data_in:
inSTD_LOGIC;
clk:
inSTD_LOGIC;
dian:
inSTD_LOGIC_VECTOR(2downto0);
uout:
outSTD_LOGIC);
endtongyuan;
architectureBehavioraloftongyuanis
componentywjcq
port(datain,clked:
instd_logic;
qout6,qout5,qout4,qout3,qout2,qout1,qout0:
outstd_logic);
endcomponent;
componentymq
port(ain,bin,cin,din,ein,fin,gin:
instd_logic;
sout:
outstd_logic_vector(2downto0));
endcomponent;
componentpjq
port(a:
instd_logic_vector(2downto0);
b:
instd_logic_vector(2downto0);
c:
outstd_logic);
endcomponent;
signala1,b1,c1,d1,e1,f1,g1:
STD_LOGIC;
signalabin:
std_logic_vector(2downto0);
begin
u0:
ywjcqportmap(data_in,clk,a1,b1,c1,d1,e1,f1,g1);
u1:
ymqportmap(a1,b1,c1,d1,e1,f1,g1,abin);
u2:
pjqportmap(abin,dian,uout);
endBehavioral;
4.4.2实验结果
图4.4最后输出仿真波形1
分析:
由图4.4的仿真结果可知,门限信号dian[2:
0]为111,当输入信号data_in是“00000001110010101010101110010011000”时,仅当其中的“1110010”巴克码序列被寄存器和译码器处理后为“111”与门限信号“111”相等,所以,帧同步信号输出端输出高电平脉冲,即帧同步信号被提取出来;其他时候则为低电平,两个高电平之间则为传输的32位帧信号。
图4.5最后输出仿真波形2
分析:
由图4.5的仿真结果可知,门限信号dian[2:
0]为110,当输入信号data_in是“0011100101100110011100101000000111”时,仅当其中的“1110010”巴克码序列被寄存器和译码器处理后为“111”比门限信号“110”大,所以,帧同步信号输出端输出高电平脉冲,即帧同步信号被提取出来;其他时候则为低电平,两个高电平之间则为传输的32位帧信号。
4.5原理图
图4.6顶层模块生成图
图4.7内部各个模块生成图
5.设计小结
在本次课题设计中,我们采用连贯式插入法来提取通信系统中的帧同步信号,研究对象是PCM30/32信号,识别的特殊码是七位巴克码“1110010”,帧同步信号提取系统其实应该包括32分频器、巴克码识别器、自动门限电路、RS触发器和其他门电路,这里我们只是围绕巴克码识别器研究简单的帧同步信号提取方法,并没有研究后面的自动门限和保护电路。
所以,在这里,我们详细分析了巴克码识别器电路,对其进行VHDL建模设计,设计出程序并进行时序仿真,如上仿真结果可知,仿真结果符合设计要求,能够顺利的把帧同步信号从PCM传输的编码中提取出来,达到设计的目的。
在本次设计中,我们把门限信号设置了110或111,预防发送方在发送巴克码时存在发错一位误码时依然能够把帧同步信号检测出来,保证数据的准确性。
6.心得体会
经历了一个星期的查阅资料和理论分析,终于完成了课程设计的仿真和报告。
经历了这次课程设计,大大的提高了我的动手能力,分析问题的能力以及语言表达能力,从中也学到了很多书面上所没有搞清楚的问题,也熟悉了应用ISE这个软件来进行VHDL程序输入和仿真波形输出。
这次课程设计主要是自己去查看资料,自学后再去设计。
培养了自己遇到问题独立思考的能力,也需要我们在遇到某些自己难以一个人解决问题时,与同学之间互相交流,培养了我们的沟通合作能力。
这次帧同步信号提取的课程设计让我受益匪浅,让我学会怎样去接触和学习一项新的知识,怎样克服困难去完成一项任务。
在这次课程设计中,由于安装的ISE是最新版本的,和之前EDA实验所使用软件的最大区别在于初始值的设置。
之前实验时设置初始值即需设置波形矢量,而这次课程设计需要在TestBench文件中添加初始值设置代码。
刚开始并不知道怎么添加,通过查阅资料和不断地实践才渐渐熟悉其步骤和编写方式。
其次,在用ISE设计顶层模块原理图和内部各个模块原理图时,也是查阅资料按照别人的步骤一步一步进行操作,原理图虽然成功出来,但是在进行逻辑检测的时候出现了一些问题,经过自己不懈的努力,终于使其能成功运行,在加上合适的初始值设置代码,内部模块电路图仿真波形和程序仿真波形一致。
并且这次让我懂得课本知识与实践的区别,在学习课本知识之余,要多锻炼自己的动手能力。
其次,以前对于通信原理的一些知识点还处于一知半解的状态上,但是经过这次课程设计,我对于与帧同步相关的一些知识等都有了更进一步的掌握。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能有更大的进步。
在设计的过程中遇到问题时,要有足够的耐心去思考和解决问题。
7.参考文献
[1]王虹.通信系统原理.北京:
国防工业出版社,2014
[2]潘松,黄继业.EDA技术实用教程[第五版].北京:
科学出版社,2013
[3]谈世哲,李建.基于xilinxISE的fpga设计与应用.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同步 信号 提取 电路 功能模块 设计 建模 创新