同步数字复接器的设计.docx
- 文档编号:6965655
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:19
- 大小:492.67KB
同步数字复接器的设计.docx
《同步数字复接器的设计.docx》由会员分享,可在线阅读,更多相关《同步数字复接器的设计.docx(19页珍藏版)》请在冰豆网上搜索。
同步数字复接器的设计
湖南文理学院课程设计报告
课程名称:
通信系统课程设计
系部:
电气与信息工程学院
专业班级:
通信08102班
学号:
200816020229
学生姓名:
王恒一
指导教师:
王立
完成时间:
2011-12-26
报告成绩:
评阅意见:
评阅教师日期
摘要
本文主要介绍了基于CPLD/FPGA可编程逻辑器件的同步数字复接器设计。
在现代数字通信网中,我们经常为了提高传输效率,需要将若干路低速数字信号合并成一路高速数字信号,以便通过高速信道进行数据传输。
实现此功能的数字设备成为数字复接系统。
在数字复接系统中,发送端主要由时钟产生、码速调整、复接三部分组成,接收端主要由定时脉冲形成、分接、码速恢复三部分组成。
本文在深入了解可编程逻辑器件及硬件描述语言的基础上,完成了同步数字复接器的分块建模,包括分频器、内码控制器、内码产生器、时序产生器和输出电路五大模块,以及相应的VHDL实现过程,对在设计过程中遇到的毛刺现象等问题进行了讨论,并在信号提取方面有了进一步的认识。
【关键词】CPLD/FPGAVHDL数字复接数字分接
Abstract
Inthispaper,basedonCPLD/FPGAprogrammablelogicdevicesandhardwaredescriptionlanguageVHDL,toachievesynchronousdigitalmultiplexerdesign.Inmoderndigitalcommunicationnetworks,weoftenordertoimprovethetransmissionefficiency,theneedforanumberoflow-speeddigitalsignalpathallthewayintohigh-speeddigitalsignals,inordertocarryouthigh-speeddatachannel.Achievethisfunctiondigitaldevicesknownasdigitalmultiplexersystem.Multiplexerinthedigitalsystem,thesendingendbytheclockgeneration,codespeedadjustmentmultiplexeriscomposedofthreeparts,thereceivingendfromtimetotimebythepulseshape,tap,codespeedtherestorationofthreeparts.
TheblockmodelingofSynchronousDigitalMultiplexerisbasedonin-depthunderstandingofprogrammablelogicdevicesandhardwaredescriptionlanguage,includingthefrequencydivider、Codecontroller、Codegenerator、timeprogramcontrollerandoutputcircuit,aswellastherealizationofthecorrespondingVHDLprocessesencounteredinthedesignofglitchesandotherissueswerediscussed,andsignalextractioninafurtherunderstandingofaspects.
【Keywords】CPLD/FPGAVHDLdigitalmultiplexingdigitaldemulplexing
第一章设计简介及方案论述
1.1数字复接概述
在时分制的PCM通信系统中,为了扩大传输容量,必须提高传输速率。
传输路数越多,每路样值8比特码占用的时间就越小,每个比特的时宽就越小,对应的频宽(传输速率)就越大。
一个样值(8比特)占用的时宽
基群:
3.9us 二次群:
0.997us 三次群:
0.23us 四次群:
0.057us
高次群的轮流采样在技术上不可能实现,只能采用数字复接方式实现高次群的传输。
我们把这种两路或两路以上的低速数字信号合并成一路高速数字信号的过程称为数字复接。
在时分制的PCM通信系统中,为了扩大传输容量,提高传输效率,必须提高传输速率。
也就是说想办法把较低传输速率的数据码流变换成高速码流。
数字复接终端就是这种把低速率码流变换成高速率码流的设备。
数字复接系统由数字复接器和数字分接器两部分构成。
把两个或两个以上的支路数字信号按时分复用方式合并成单一的合路数字信号的过程称为数字复接,把完成数字复接功能的设备称为数字复接器。
在接收端把一路复合数字信号分离成各支路信号的过程称为数字分接,把完成这种数字分接功能的设备称为数字分接器。
数字复接器和数字分接器和传输信道共同构成了数字复接系统
1.2设计目的和设计要求:
1.2.1设计目的
通过对同步复接器的建模和设计,掌握同步复接的原理以及应用。
1.2.2设计要求
(1)阐述同步复接原理;
(2)进行同步复接器的建模和设计;
(3)写出详细的设计报告。
第二章同步数字复接器的总体设计
2.1四路同步复接器的原理框图模型
简单的思路同步复接器组成框图如图6。
为了简单和容易实现,坚定设计任务要求为:
同步时钟为256kHz,每个时隙为8位,四路支路信码可通过拨码开关预置;四路支路信码以同步复接方式合成一路帧长为32位复用串行码。
其中一个时隙(一路支路信号)作为帧同步码并去为x1110010(巴克码),因此数据码实际为三路共24位码。
框图说明
(1)分频器1:
4.096MHZ的晶体振荡器方波信号经分频后,得到256KHZ的时钟信号。
(2)八选一数据选择器:
在硬件功能上相当于74LS151数据选择器,其功能表如表5-2所示。
(3)分频器2、译码器:
其功能是产生四路时序信号,以控制选通开关,依次按路(每路八位)选通四路支路码,并合并成一路复用串行码。
译码器的功能表如表5-2所示。
(4)计数器:
由于在每个数据选择器中有八位数据需要选择,即有八种状态,因此需要八种控制信号,依次选择每路支路信号的每一位,并按位以时钟节拍送入支路选通开关,等待时序信号控制。
(5)拨码器:
每路的拨码器为八位开关,往上拨,则对应的那一位为高电平,往下拨则为低电平。
采用拨码器的好处,在此相当于提供了一个任意置数的四路数字信源,特别适合检验系统的设计结果。
时序信号与对应的合路信号及其帧结构
依照原理框图和上述功能表,用波形表示各类信号产生过程和同步复用信号的产生,如图7所示。
2.2系统的设计与实现
本设计采用VHDL语言作为硬件功能的描述,硬件采用Altera公司的FPGA芯片,以四路同步复接器为例运用模块化设计方法分别设计了分频器、内码控制器、时序产生器、内码产生器以及输出电路。
.在QUARTUSII软环境下进行设计、编译和仿真,并结合FPGA(现场可编程门阵列)的特点,实现了一个可编程的四路同步复接器模块[10]。
2.2.1系统顶层设计
2.2.1.1四路同步复接器的VHDL建模
根据上述的四路复接器的原理图以及尽可能节省资源,在建模的时候,本设计采用了将整个系统分为硬件和软件两部分来实现,并且尽可能用软件来实现更多的单元电路,其框图如图10所示。
文件名:
FUJIEQILL
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFUJIEQILLIS
PORT(CLK,ENA,A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,
B2,B3,B4,B5,B6,B7,C0,C1,C2,C3,C4,C5,
C6,C7,D0,D1,D2,D3,D4,D5,D6,D7:
INSTD_LOGIC;
S0,S1,S2,S3,FUJIOUT:
OUTSTD_LOGIC);
ENDFUJIEQILL;
ARCHITECTUREFFOFFUJIEQILLIS
COMPONENTCOUNT16-----调用计数器
PORT(CLK:
INSTD_LOGIC;
D,C,B,A:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTNEIMACS0------调用内码产生器
PORT(IN0_8,IN0_7,IN0_6,IN0_5,IN0_4,IN0_3,IN0_2,IN0_1,
K3,K2,K1,SX0:
INSTD_LOGIC;
OUT0:
OUTSTD_LOGIC);
ENDCOMPONENT;
;
COMPONENTSHIXUSUCCESSFUL------调用时序发生器
PORT(B:
INSTD_LOGIC;
S3,S2,S1,S0:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTMEN------调用门器件
PORT(IN1:
INSTD_LOGIC;
OUT1:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTANDMEN------调用四与门
PORT(IN1,IN2,IN3,IN4:
INSTD_LOGIC;
OUTP:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTDJHLATCH------调用D触发器
PORT(D,ENA:
INSTD_LOGIC;
Q1:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALW1,W2,W3,W4,W5,W6,W7,W8,W9,W10,W11,
W12,W13,W14,W15,W16:
STD_LOGIC;-----信号赋值语句
BEGIN
M1:
NEIMACS0PORTMAP(IN0_1=>A0,IN0_2=>A1,
IN0_3=>A2,IN0_4=>A3,IN0_5=>A4,IN0_3=>A5,
IN0_7=>A6,IN0_8=>A7,K3=>W3,K2=>W2,K1=>W1,SX0=>W4,OUT0=>W15);
M2:
NEIMACS0PORTMAP(IN0_1=>B0,IN0_2=>B1,
IN0_3=>B2,IN0_4=>B3,IN0_5=>B4,IN0_3=>B5,
IN0_7=>B6,IN0_8=>B7,K3=>W3,K2=>W2,K1=>W1,SX0=>W5,OUT0=>W14);
M3:
NEIMACS0PORTMAP(IN0_1=>C0,IN0_2=>C1,
IN0_3=>C2,IN0_4=>C3,IN0_5=>C4,IN0_3=>C5,
IN0_7=>C6,IN0_8=>C7,K3=>W3,K2=>W2,K1=>W1,SX0=>W6,OUT0=>W13);
M4:
NEIMACS0PORTMAP(IN0_1=>D0,IN0_2=>D1,
IN0_3=>D2,IN0_4=>D3,IN0_5=>D4,IN0_3=>D5,
IN0_7=>D6,IN0_8=>D7,K3=>W3,K2=>W2,K1=>W1,SX0=>W7,OUT0=>W12);
M5:
SHIXUSUCCESSFULPORTMAP(B=>CLK,S3=>W7,S2=>W6,S1=>W5,S0=>W4);
M6:
COUNT16PORTMAP(CLK=>CLK,D=>W1,C=>W2,B=>W3);
M7:
MENPORTMAP(IN1=>W7,OUT1=>S3);
M8:
MENPORTMAP(IN1=>W6,OUT1=>S2);
M9:
MENPORTMAP(IN1=>W5,OUT1=>S1);
M10:
MENPORTMAP(IN1=>W4,OUT1=>S0);
M11:
ANDMENPORTMAP(IN1=>W12,IN2=>W13,IN3=>W14,IN4=>W15,OUTP=>W16);
M12:
DJHLATCHPORTMAP(D=>W16,ENA=>ENA,Q1=>FUJIOUT);
ENDFF;
-----部分子程序模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMENIS-----实体”MEN”
PORT(IN1:
INSTD_LOGIC;
OUT1:
OUTSTD_LOGIC);
ENDMEN;
ARCHITECTUREONEOFMENIS
BEGIN
OUT1<=IN1;------输入信号直接送给输出端
ENDONE;
A:
第一路分路码
B:
第一路分路码
C:
第一路分路码
D:
第一路分路码
ENA:
D触发器使能信号
CLK:
系统时钟信号
S3:
相位1的时序信号
S2:
相位2的时序信号
S1:
相位3的时序信号
S0:
相位4的时序信号
FUJIOUT:
复用信号序列
2.2.2系统的底层设计
系统的VHDL设计根据所划分的几大模块,分别用VHDL语言去描述,最后用元件调用和元件例化语句将它们连接起来。
[15]四路同步复接器由时钟、分频器、内码控制器、时序产生器、四路32位内码(每路8位)产生器及输出电路等几部分组成。
在此,考虑用内码产生器产生四路内码作为四路信号源。
若实际从外部输入四路信号,只需在内码产生器模块中加入一个选择开关即可,此时,当开关接外码时,则输入四路外码信号;若做电路仿真时,可将开关接至内码,此时由四路内码作为四路支路信号源。
2.2.2.1分频器的建模与VHDL程序设计
分频器实际是一个计数器。
在本例中,其作用是将晶体振荡电路产生的4096kHz方波信号进行分频,其16分频(256kHz时钟)输出端作为内码控制器的输入端。
其建模程如图所示。
分频器的VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCOUNT16IS
PORT(CLK:
INSTD_LOGIC;
D,C,B,A:
OUTSTD_LOGIC);
ENDCOUNT16;
ARCHITECTURERTLOFCOUNT16IS
SIGNALCOUNT_4:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK’EVENTANDCLK=’1’)THEN
IF(COUNT_4=”1111”)THEN
COUNT_4<=”0000”;
ELSE
COUNT_4<=COUNT_4+1;
ENDIF;
ENDIF;
ENDPROCESS;
D<=COUNT_4(0);
C<=COUNT_4
(1);
B<=COUNT_4
(2);
A<=COUNT_4(3);
ENDRTL;
CLK:
系统时钟信号
D:
2分频输出
C:
4分频输出
B:
8分频输出
A:
16分频输出
2.2.2.2内码产生器
内码产生器的建模符号如图14所示。
每个内码产生器受分频器和时序信号发生器的控制产生一路8位数据码,并且具有三态串行输出功能。
图中,in0_1~in0_8为8位数据码输入,可通过输入高、低电平设定;K3~K1为对8位数据进行选择控制的控制码,有8种状态选择;sx0接时序信号;out0为内码串行数据输出。
内码产生器源程序如下
文件名:
NEIMACS0,vhd
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYNEIMACS0IS
PORT(IN0_8,IN0_7,IN0_6,IN0_5,IN0_4,IN0_3,IN0_2,IN0_1,
K3,K2,K1,SX0:
INSTD_LOGIC;
OUT0:
OUTSTD_LOGIC);
ENDENTITYNEIMACS0;
ARCHITECTURENM0OFNEIMACS0IS
COMPONENTMUX8_0
PORT(D7,D6,D5,D4,D3,D2,D1,D0,D,C,B:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTTRI_GATE0
PORT(DIN0,EN:
INSTD_LOGIC;
DOUT0:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNAL10:
STD_LOGIC;
BEGIN
U1:
MUX8_0PORTMAP(D7=>IN0_8,D6=>IN0_7,D5=>IN0_6,D4=>IN0_5,D3=>IN0_4,D2=>IN0_3,D1=>IN0_2,D0=>IN0_1,D=>K3,C=>K2,B=>K1,Y=>10);
U2:
TRI_GATE0PORTMAP(DIN0=>10,EN=>SX0,DOUT0=>OUT);
ENDARCHITECTURENM0;
IN0:
八路码依次输入
K:
八路码输入地址选通端
OUT0:
八路码的串行输出端
SX0:
时钟信号
2.2.2.3内码控制器
内码控制器,实际也是一个分频器,一个输出端口输出三位并行信号作为内码产生器的地址控制端(选择输入端),另一输出端作为时序产生器的控制端。
[18]内码控制器对内码产生器的控制功能表如下。
内码控制器的3路输出信号(A2A1A0)
内码产生器输出信号位(Y0Y1Y2Y3Y4Y5Y6Y7中选1)
A2
A1
A0
Y
0
0
0
Y0
0
0
1
Y1
0
1
0
Y2
0
1
1
Y3
1
0
0
Y4
1
0
1
Y5
1
1
0
Y6
1
1
1
Y7
表1中的A2、A1、A0分别表示内码控制器的二进制分频器的8、4、2分频信号。
[19]内码产生器应循环并依次输出从“000”、“001’’一直到“111”。
这样,内码发生器每个时钟节拍,输出一位码,通过输出电路送到合路信道上,最终形成一路串行码流。
2.2.2.4时序产生器的建模与程序设计
时序信号产生器建模符号如图16所示。
其功能是产生四路时序信号。
图中,B为输入时钟信号;S3~S0为四路时序信号。
时序产生器课产生脉冲为8个时钟周期的四路时序信号。
具体实现是:
将内码控制器的分频端(即128Khz时钟输出端)通过一个32分频器,其二分频和四分频输出端作为2/4译码器的控制端,2/4译码器的四个输出端,在经过反相器后,便得出本设计所要求的四路时序。
译码器的建模流程如图17所示。
译码器的VHDL描述程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYIMAQIIS---译码器实体名
PORT(F2,F1:
INSTD_LOGIC;
Y3,Y2,Y1,Y0:
OUTSTD_LOGIC);
ENDYIMAQI;
ARCHITECTURERTLOFYIMAQIIS
SIGNALINDATA:
STD_LOGIC_VECTOR(1DOWNTO0);
SIGNALY:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
INDATA<=F2&F1;
PROCESS(INDATA)
BEGIN
CASEINDATAIS
WHEN“00”=>Y<=”1110”;--2/4译码
WHEN“01”=>Y<=”1101”;--2/4译码
WHEN“10”=>Y<=”1011”;--2/4译码
WHEN“11”=>Y<=”0111”;--2/4译码
WHENOTHERS=>Y<=”XXXX”;
ENDCASE;
ENDPROCESS;
Y3<=Y(3);--第4路译码输出
Y2<=Y
(2);--第4路译码输出
Y1<=Y
(1);--第4路译码输出
Y0<=Y(0);--第4路译码输出
ENDRTL;
F1:
二分频时钟输入端
F2:
四分频时钟输入端
Y0~Y4:
四路时序信号输出端
时序产生器的VHDL描述程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSHIXUSUCCESSFULIS
PORT(B:
INSTD_LOGIC;
S3,S2,S1,S0:
OUTSTD_LOGIC);
ENDENTITYSHIXUSUCCESSFUL;
ARCHITECTURESX1OFSHIXUSUCCESSFULIS
COMPONENTCOUNT32
PORT(X1:
INSTD_LOGIC;
E,D,C,B,A:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTYIMAQIIS
PORT(F2,F1:
INSTD_LOGIC;
Y3,Y2,Y1,Y0:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTNAND0_1IS
PORT(X2:
INSTD_LOGIC;
OUT2:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALIN1,IN2,IN3,IN4,IN5,IN6,IN7:
STD_LOGIC;
BEGIN
U1:
NAND0_1PORTMAP(X2=>B,OUT2=>IN1);
U2:
COUNT32PORTMAP(X1=>IN1,D=>IN2,E=>IN3);
U3:
YIMAQI
PORTMAP(F1=>IN2,F2=>IN3,Y0=>IN4,Y1=>IN5,Y2=>IN6,Y3=>IN7);
U4:
NAND0_1PORTMAP(X2=>IN4,OUT2=>S0);
U1:
NAND0_1PORTMAP(X2=>IN5,OUT2=>S1);
U1:
NAND0_1PORTMAP(X2=>IN6,OUT2=>S2);
U1:
NAND0_1PORTMAP(X2=>IN7,OUT2=>S3);
ENDARCHITECTURESX1;
B:
时钟输入端
S1~S4:
反相后四路时序输出端
2.2.2.5输出模块
建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同步 数字 复接器 设计