SDH中E1接口数字分接复用器的VHDL设计及FPGA实现
在接收端,复接口的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 downto 0)-2.048 MHz 7 route -output data;
);
end TRAN_TOP;
(2)系统发送顶层建模的VHDL仿真波形
如图3所示,送来的10M二进制的一帧数据(DATAIN)为“1100010001(帧头)1111111111,1111111111,1111111111,11111111,1000000001 (帧尾)”。把分接为7路2M的数据如下:
ROUT0:0,0111111110(插入的SYNC)1011111,0(每7bit固定插入‘0’)10,111…(空闲码)
ROUT1:0,0111111110(插入的SYNC)1011111,0(每7bit固定插入‘0’)10,111…(空闲码)
ROUT2:0,0111111110(插入的SYNC)0111111,0(每7bit固定插入‘0’)10,111…(空闲码)
ROUT3:0,0111111110(插入的SYNC)0111111,0(每7bit固定插入‘0’)10,111…(空闲码)
ROUT4:0,0111111110(插入的SYNC)0111111,0(每7bit固定插入‘0’)00,111…(空闲码)
ROUT5:0,0111111110(插入的SYNC)1111111,0(每7bit固定插入‘0’)01,111…(空闲码)
ROUT6:0,0111111110(插入的SYNC)0111111,0(每7bit固定插入‘0’)0,1111…(空闲码)
这样,从仿真波形可知电路完成了每帧二进制10M数据分接为7路2M数据时在每路2M数据中插入SYNC(0111111110)、每7bit固定插入‘0’以及在10M数据每帧分接完后插入全1空闲码的操作。
评论