高速异步时分交换电路的制作方法

文档序号:7615145阅读:256来源:国知局
专利名称:高速异步时分交换电路的制作方法
技术领域
本发明涉及到SDH系统用交叉连接设备中交换网络的高速异步时分交换电路,主要适应于SDH系统中集成电路芯片内部交换网络结构设计范围。属于SDH宽带通信技术领域。

背景技术
SDH作为一种全新的网络传输体制,自从20世纪80年代出现以来,SDH网络以其灵活性和方便性等各个方面的优越性,迅速成为通信网络的骨干网络。随着超大规模集成电路和SDH技术的不断发展,SDH系统正朝着大容量、高速率、高集成度方向发展,SDH系统的集成化发展为集成电路芯片设计提出了更高要求。
SDH数字交叉连接设备(SDXC)是一种重要的SDH网络设备。它完成不同高速信号支路信号间的交换,可提供按G.707构成的VC之间端口的透明连接和再连接。SDH数字交叉连接设备的核心是交叉连接芯片。
SDH系统中,可有高阶交叉和低阶交叉,通常是以字节为基本单位进行的,在此我们主要讨论2.5G/s的SDH接口信号的高阶交叉电路。对于接口为2.5G/s的SDH串行信号,其串并转换后SDH帧字节方式的速率是311.04Mbyte/s,该速率属于高速率信号。在集成电路设计中为了降低工作速率,可以采用16位并行字方式速率,即155.520Mword/s速率。
SDH数字交叉连接目前多采用电路交换技术,现代的数字交换网络的组成方式分为空间分割方式和时间分割方式,利用这两种技术可构成时分交换、空分交换和组合交换等多种电路交换形式。
传统的时分交换电路通常是由一块数据存储器和一块控制存储器构成。在时钟信号控制下,输入数据按顺序写入数据存储器,控制存储器的存储数据按顺序被读出。控制存储器的输出作为数据存储器的读地址来选择数据存储器的输出。通过改变控制存储器内的存储数据,从而达到对数据存储器内部时隙数据的控制读出,由此完成时分数据交换功能。
对于异步时分交换电路,除需要上述电路结构外,还需增加一个数据fifo缓存器,首先完成数据的同步桥接,然后才能进行时分交换操作。通常fifo缓存器用存储器来实现,所以在一个异步时分交换电路中,存在有三块不同的存储器。
对于高速大容量的交换网络,需要使用多路的异步时分交换电路,所以存在大量的存储器块数目,因而造成电路设计复杂,芯片面积增大,功耗增高等问题。为了解决如此问题,所以需要研究如何减少使用存储器块数目。


发明内容
本发明的目的是提供一种高速异步时分交换电路。
本发明的基本功能是对按字方式输入的2.5G/s的SDH帧字节数据(高8位是奇时隙字节数据,低8位是偶时隙字节数据,构成1个字),依照数据输出格式要求,电路完成对输入的每个时隙数据的重新排列(即时隙交换),并将重新排列后的数据输出。数据输出格式要求可以通过接口进行修改。
本发明技术解决方案高速异步时分交换电路包括组合存储器(fifo_dmem)、fifo写地址产生(fifo_addr)、cmem读地址产生(cmem_addr)、交换控制电路(ctrl_cmem)和时隙交换数据输出(ts_out),组合存储器(fifo_dmem)选用一个输入端口和两个独立输出端口的通用存储器;输入端口的输入数据帧头指示信号frhd_pulse和输入数据同步时钟信号clk_wrfifo连接到fifo写地址产生(fifo_addr)的输入端;输入端口的输入数据同步时钟信号clk_wrfifo、输入数据data_in和fifo写地址产生(fifo_addr)的输出信号wr1_addr分别连接到组合存储器(fifo_dmem)的输入端口的时钟信号、数据线和地址线;输入端口的输出数据同步时钟信号clk_core和fifo读帧头指示信号frrd_ind连接到cmem读地址产生(cmem_addr)的输入端;输入端口的控制存储器片选信号cmem_cs,控制存储器写操作信号cpu_wr,控制存储写地址信号cpu_addr,控制存储器写数据信号d_from_cpu,输出数据同步时钟信号clk_core,fifo读帧头指示信号frrd_ind和cmem读地址产生(cmem_addr)的输出信号ts_cnt_cm分别连接到交换控制电路(ctrl_cmem)的输入端;输入端口的输出数据同步时钟信号clk_core和交换控制电路(ctrl_cmem)的输出信号rd1_addr分别连接到组合存储器(fifo_dmem)的一个输出端口的时钟信号和地址线;输入端口的输出数据同步时钟信号clk_core和交换控制电路(ctrl_cmem)的输出信号rd2_addr分别连接到组合存储器(fifo_dmem)的另一个输出端口的时钟信号和地址线;组合存储器(fifo_dmem)的两个输出数据rd1_data和rd2_data和交换控制电路(ctrl_cmem)的输出信号odd_sel和even_sel分别连接到时隙交换数据输出(ts_out)的输入端;时隙交换数据输出(ts_out)的输出数据data_out连接到输出端口;输入端口信号rstb是电路的共用输入信号。
本发明通过对存储器读写访问的特殊结构处理将时分交换电路中的异步数据fifo缓冲器和交换数据存储器两块功能独立的存储器合并为一块且能够完成两块存储器的功能,从而简化电路设计复杂度,减小芯片使用面积,降低系统电路功耗和提高系统工作的可靠性。



附图是高速异步时分交换电路结构框图。

具体实施例方式 传统的硬件电路设计通常采用电路图方式来详细描述电路的设计结构。用电路图方式描述硬件电路的结构是硬件设计的第二代设计工具,随着科学技术的迅猛发展,硬件描述语言(HDL)已经成为第三代硬件设计工具。所以该电路采用verilog硬件描述语言加以实施。
1.电路端口说明 表1电路端口信号说明 端口信号名称端口方向信号描述rstbIN电路复位信号,低电平有效。clk_coreIN输出数据同步时钟信号。cmem_csIN控制存储器片选信号,低电平有效。cpu_wrINCPU写操作信号,低电平有效。cpu_addr[2:0]INCPU地址信号。d_from_cpu[7:0]INCPU写操作数据。clk_wrfifoIN输入数据同步时钟信号。frhd_pulseIN输入数据帧头指示信号,高电平有效。data_in[15:0]IN16位并行输入数据。frrd_indINfifo读帧头指示信号,高电平有效。data_out[15:0]OUT16位并行输出数据。
2.电路的verilog硬件描述语言 //---------------------verilog HDL--------------------//  module timeslots_switch(rstb,clk_core,  cmem_cs,cpu_wr,cpu_addr,d_from_cpu,  clk_wrfifo,frhd_pulse,data_in,  frrd_ind,  data_out);<!-- SIPO <DP n="4"> --><dp n="d4"/>  inputrstb,clk_core;  inputcmem_cs,cpu_wr;  input[2:0]cpu_addr;  input[7:0]d_from_cpu;  inputclk_wrfifo,frhd_pulse;  input[15:0]data_in;  inputfrrd_ind;  output [15:0]data_out;  //--------------fifo写地址产生(fifo_addr)-------------//  reg [7:0]wr1_addr;  always@(negedge rstb or posedge clk_wrfifo)   begin  if(~rstb)wr1_addr<=8′d000;  else if(frhd_pulse) wr1_addr<=8′d001;  else wr1_addr<=wr1_addr+1′b1;   end  //---------------cmem读地址产生(cmem_addr)-------------//  reg[2:0]ts_cnt_cm;  always@(posedge clk_core or negedge rstb)   begin  if(~rstb)ts_cnt_cm<=3′h0;  else if(frrd_ind)ts_cnt_cm<=3′h0;  else ts_cnt_cm<=(ts_cnt_cm+1′b1);   end<!-- SIPO <DP n="5"> --><dp n="d5"/>  //--------------交换控制电路(ctrl_cmem)--------------//  reg[7:0]cmem_block[7:0];  reg[4:0]ffdmem_rd_field;  regeven_sel,odd_sel;  wire [3:0]d_cm2dm_addr1,d_cm2dm_addr2;  wire [7:0]rd1_addr,rd2_addr;  always@(posedge cpu_wr)   begin  if(~cmem_cs)   cmem_block[cpu_addr]<=d_from_cpu;   end  assign{d_cm2dm_addr1,d_cm2dm_addr2}=cmem_block[ts_cnt_cm];  always@(negedge rstb or posedge clk_core)   begin  if(~rstb) odd_sel<=1′b0;  else odd_sel<=d_cm2dm_addr1
;   end  always@(negedge rstb or posedge clk_core)   begin  if(~rstb)even_sel<=1′b0;  else even_sel<=d_cm2dm_addr2
;   end  always@(posedge clk_core or negedge rstb)   begin  if(~rstb)<!-- SIPO <DP n="6"> --><dp n="d6"/>   ffdmem_rd_field<=5′h0;  else if(frrd_ind)   ffdmem_rd_field<=5′h0;  else if(ts_cnt_cm==3′h7)   ffdmem_rd_field<=(ffdmem_rd_field+1′b1);   end   assign rd1_addr={ffdmem_rd_field,d_cm2dm_addr1[3:1]};   assign rd2_addr={ffdmem_rd_field,d_cm2dm_addr2[3:1]};  //----------------组合存储器(fifo_dmem)-----------------//  wirewr1_en,rd1_en,rd2_en;  wire[15:0]wr1_data,rd1_data,rd2_data;   assign wr1_en=1′b0;   assign rd1_en=1′b0;   assign rd2_en=1′b0;   assign wr1_data=data_in;  fifo_dmem muxmem_block(clk_wrfifo,wr1_en,wr1_addr,wr1_data,  clk_core,rd1_en,rd1_addr,rd1_data,  clk_core,rd2_en,rd2_addr,rd2_data);  //---------------时隙交换数据输出(ts_out)----------------//  wire[7:0]d_even_out,d_odd_out;  assign d_odd_out=(odd_sel)?rd1_data[15:8]rd1_data[7:0];  assign d_even_out=(even_sel)?rd2_data[15:8]rd2_data[7:0];<!-- SIPO <DP n="7"> --><dp n="d7"/>  assign data_out={d_odd_out,d_even_out};  //---------------------fifo溢出处理---------------------//  //  //  endmodule  //-------------------组合存储器模型--------------------//  modulefifo_dmem(wr1_clk,wr1_en,wr1_addr,wr1_data,  rd1_clk,rd1_en,rd1_addr,rd1_data,  rd2_clk,rd2_en,rd2_addr,rd2_data);  input wr1_clk,rd1_clk,rd2_clk;  input wr1_en,rd1_en,rd2_en;  input [7:0]wr1_addr,rd1_addr,rd2_addr;  input [15:0]wr1_data;  output [15:0]rd1_data,rd2_data;  reg [15:0]ram_block[255:0];  reg [15:0]rd1_data,rd2_data;  always@(posedge wr1_clk)   begin  if(~wr1_en)   ram_block[wr1_addr]<=wr1_data;   end  always@(posedge rd1_clk)   begin<!-- SIPO <DP n="8"> --><dp n="d8"/>  if(~rd1_en)   rd1_data<=ram_block[rd1_addr];   end  always@(posedge rd2_clk)   begin  if(~rd2_en)   rd2_data<=ram_block[rd2_addr];   end  endmodule  //-------------------组合存储器模型--------------------//  //---------------------verilog HDL----------------------// 3.电路工作原理说明 由输入帧头指示信号frhd_pulse指明当前输入数据的帧头位置,由fifo写地址产生(fifo_addr)产生输入数据data_in写入组合存储器的地址信号wr1_addr。
由fifo读帧头指示信号frrd_ind指明当前读出fifo帧头数据的位置,由cmem读地址产生(cmem_addr)产生控制存储器的读地址信号ts_cnt_cm连接到交换控制电路(ctr1_cmem)。
交换控制电路(ctr1_cmem)内部包含有一个双端口(单入和单出)的控制存储器,由输入端口的控制存储器片选信号cmem_cs,控制存储器写操作信号cpu_wr,控制存储写地址信号cpu_addr,控制存储器写数据信号d_from_cpu实现对该控制存储器的数据写入操作;由读地址信号ts_cnt_cm实现对该控制存储器的数据读出操作,其输出数据作为fifo数据交换地址。由fifo读帧头指示信号frrd_ind生成fifo数据交换域地址。fifo数据交换域地址和fifo数据交换地址两者构成组合存储器的读地址rd1_addr和rd2_addr。
组合存储器由一个输入端口和两个输出端口的相应控制信号实现对数据的写输入和读输出操作。
时隙交换数据输出(ts_out)的odd_sel和even_sel信号分别控制对输入数据rd1_data和rd2_data选择输出操作。
4.电路应用效果 本发明实际应用在“宽带电路交换核心芯片(DXC160)”项目的电路设计中。此项目通过采用本发明电路代替原来的时分交换电路,使得现在设计电路比原来的设计电路共计减少了64个存储器块数目,明显简化了电路设计复杂度,减小了芯片面积,降低了系统电路功耗和提高了系统工作的可靠性,取得了很好的效果。在40G的SDH交叉设备上进行的实际应用测试,结果表明该设计电路的功能完全正确,各项功能及性能指标均符合要求。该发明可用于解决多路高速SDH时分交换电路结构设计。
权利要求
1、高速异步时分交换电路,其特征在于包括组合存储器(fifo_dmem)、fifo写地址产生(fifo_addr)、cmem读地址产生(cmem_addr)、交换控制电路(ctrl_cmem)和时隙交换数据输出(ts_out),组合存储器(fifo_dmem)选用一个输入端口和两个独立输出端口的通用存储器;输入端口的输入数据帧头指示信号frhd_pulse和输入数据同步时钟信号clk_wrfifo连接到fifo写地址产生(fifo_addr)的输入端;输入端口的输入数据同步时钟信号clk_wrfifo、输入数据data_in和fifo写地址产生(fifo_addr)的输出信号wr1_addr分别连接到组合存储器(fifo_dmem)的输入端口的时钟信号、数据线和地址线;输入端口的输出数据同步时钟信号clk_core和fifo读帧头指示信号frrd_ind连接到cmem读地址产生(cmem_addr)的输入端;输入端口的控制存储器片选信号cmem_cs,控制存储器写操作信号cpu_wr,控制存储写地址信号cpu_addr,控制存储器写数据信号d_from_cpu,输出数据同步时钟信号clk_core,fifo读帧头指示信号frrd_ind和cmem读地址产生(cmem_addr)的输出信号ts_cnt_cm分别连接到交换控制电路(ctrl_cmem)的输入端;输入端口的输出数据同步时钟信号clk_core和交换控制电路(ctrl_cmem)的输出信号rd1_addr分别连接到组合存储器(fifo_dmem)的一个输出端口的时钟信号和地址线;输入端口的输出数据同步时钟信号clk_core和交换控制电路(ctrl_cmem)的输出信号rd2_addr分别连接到组合存储器(fifo_dmem)的另一个输出端口的时钟信号和地址线;组合存储器(fifo_dmem)的两个输出数据rd1_data和rd2_data和交换控制电路(ctrl_cmem)的输出信号odd_sel和even_sel分别连接到时隙交换数据输出(ts_out)的输入端;时隙交换数据输出(ts_out)的输出数据data_out连接到输出端口;输入端口信号rstb是电路的共用输入信号。
全文摘要
高速异步时分交换电路主要适应于SDH系统中集成电路芯片内部交换网络结构设计范围,属于SDH宽带通信技术领域。本发明通过对存储器读写访问的特殊结构处理将时分交换电路中的异步数据fifo缓冲器和交换数据存储器两块功能独立的存储器合并为一块且能够完成两块存储器的功能,从而简化电路设计复杂度,减小芯片使用面积,降低系统电路功耗和提高系统工作的可靠性。该发明可用于解决多路高速SDH时分交换电路结构设计。
文档编号H04J3/08GK1655487SQ20051004172
公开日2005年8月17日 申请日期2005年2月25日 优先权日2005年2月25日
发明者蒋林, 孟李林, 刘钊远, 李宥谋, 曾泽沧, 赵全良, 刘有耀, 袁力行, 韩俊刚 申请人:西安邮电学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1