微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于VHDL和发接复用器的SDH系统设计及FPGA仿真

基于VHDL和发接复用器的SDH系统设计及FPGA仿真

时间:09-07 来源:互联网 点击:

针对目前国内SDH系统中还没有一个专门的E1分接复用芯征,本文介绍一种用高级硬件描述语言VHDL及状态转移图完成该发接复用器的设计的新型设计方法及其FPGA实现。并给出了用Xilinx FoundaTIon tools EDA软件设计的电路仿真波形及Spartan XCS30XL完成FPGA实现的结果。

1 数字分接复用器结构原理

本数字分接复用器的功能是:在发送端把12Mbps经过编码的有帧结构的Ethernet(以太网)码流分接为7路标准E1接口速率数据流,SDH 设备再把这7路数据映射到155Mbps的速率去通过光纤传输到下一个SDH设备;在接收端由SDH设备从155Mbps的数据流中取出7路标准E1速率数据正确恢复为原来的12Mbps的Ethernet(以太网)码流。

发送端12Mbps有帧结构数据帧间由全1空闲码填充。从数字分接复用器发送输出的7路E1数据由于传输处理过程中路中不同,必然会造成7路E1数据在传输过中的各路时延不一致,这就使得各路数据不同步。在设计中如何在接收端使得7路E1数据同步,从而正确恢复原发送端12Mbps数据就成了一个难题。针对这一问题制定出了如下的解决方案。

1.1 数字分接器原理框图及说明

如图1所示,把数字分接器从总体上划分为:时钟产生、帧头/帧尾检测、串并变换、固定插零、FIFO插入SYNC五个模块。

在发送端,分接器的时钟产生电路把14Mbps系统时钟XCLK转变为12Mbps时钟,用这一时钟对端口来的12Mbps成帧数据DATAIM做帧头(1100010001)/帧尾(1000000001)检测,检测出帧头后再做串/并变换操作,这样就初步完成了分接器的功能。但是,为了使数字复接器能正确复接就需要在分接器输出的7路数据中分别插入同步头SYNC(0111111110)。为了使数据和插入的SYNC区别开来,须要在7路数据中每隔 7bit就固定地插入“0”。这样,就保证了插入的SYNC不会与正常的掌握相混淆,从而也使得分接出的7路数据变为标准的E1数据。

1.2 数字复接器原理框图及说明

数字复接器原理框图如图2所示。与分接器相呼应,可把复接器从总体上划分为:SYNC检测、SYNC扣除、并/串转换、扣除零、帧头/帧尾检测5个模块。

在接收端,复接口的SYNC检测模块在7路E1数据流中分别检测出7个SYNC。通过SYNC扣除模块扣除在分接器中插入的SYNC,并使得7路 E1数据同步。之后,就可以对这7路E1数据进行并/串转换了。对于转换后的14Mbps数据还需要扣除在分接器中固定插入的零。根据要求对于 12Mbps的数据再一次做帧头/帧尾检测以便在两帧数据之间插入全“1”的空闲码。这样的就正确恢复出发送端的12Mbps码流。

在发送端和接收端所有SYNC的处理都用FIFO技术来实现。电路设计采用硬件高级描述语言VHDL和状态机来完成,用FPGA验证实现。为提高电路的可实现性,设计全部采用D触发器和逻辑门来实现,并且综合约束工具来控制FPGA内部电路的路径延时。

2 VHDL语言设计相对于传统设计的优点

(1)采用自顶向上(Top Down)的设计方法

与传统的系统硬件设计从具体的设计单元开始不同,VHDL设计是从系统的总体要求出发,先进行系统建模仿真,仿真通过后再利用VHDL层次化、结构化及行为化的描述方法将各个模块模型用可实现的VHDL电路描述替换。这对于一个非常大的硬件系统设计从总体上把握设计的可行性是非常重要的。

(2)采用系统的早期仿真

通过对系统建模的早期仿真便于在系统设计的早期发现设计中潜在的问题,与传统的自下而上设计的后期仿真相比可大大缩短系统设计的周期。

(3)降低了硬件电路的设计难度

不需要象传统的设计方法在设计前就要写出电路的逻辑表达式、真值表及卡诺图化简,VHDL在设计计数器的时候只关心计数器的状态就可以了。这样也大大缩短系统设计的周期。这对于时间效益的现代社会是非常重要的。

(4)VHDL设计文档的灵活性

用VHDL设计硬件电路,主要的设计文件是用VHDL编写的源程序。如果需要也可以利用EDA软件转化为原理图。另外,它资源量小,便于保存,可以方便地被其它设计所利用,可继承性好,在源文件中可方便地加入注释,可读性好。

3 分接复用器的VHDL及状态转移图设计

3.1 分接复用器顶层VHDL建模(Top level)及系统功能仿真

(1)系统发送顶层建模的VHDL端口描述

Library IEEE;

Use IEEE.std_logic_1164.all;--引用库说明;

EnTIty TRAN_TOP is

Port (RESET : IN STD_LOGIC;--ststem reset signal;

XCLK_IN : IN STD_LOGIC;--14.336MHz input high clock;

DATAIN : IN STD_LOGIC;--12.544MHz input data;

CLK12M :OUT STD_LOGIC;--12.544MHz input clock;

READCLK_OUT:OUT STD_LOGIC;--2.048 MHz output clock;

ROUT:OUT STD_LOGIC_VECTOR(6 dow

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top