ASIC课程设计报告交换网络复用与解复用模块设计_第1页
ASIC课程设计报告交换网络复用与解复用模块设计_第2页
ASIC课程设计报告交换网络复用与解复用模块设计_第3页
ASIC课程设计报告交换网络复用与解复用模块设计_第4页
ASIC课程设计报告交换网络复用与解复用模块设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电 子 科 技 大 学专用集成电路(asic)课程设计报告学号: 290130xxxx 学生姓名: xx x 课题名称: 交换网络复用与解复用模块设计 无线通信与嵌入式系统实验室通信集成电路与系统工程中心2011年12月- 27 -1、 设计原理我国公用电话交换网(pstn)是我国发展最早的电信网,主要为刚户提供电话业务。就目前来看,pstn仍然是规模最大、业务量最高的电信业务网。u 交换系统在电话网中的作用电信交换的基本含义是在公用网大量的终端用户之间,按所需目的地相互传递信息,也就是说,任何一个主叫用户的信息,可以通过电信网中的交换节点发送到所需的任何一个或多个被叫用户。电话交换是电信交换

2、中最基本的一种交换方式。一个交换系统应具有下述的三个功能:l、为两个用户通过话音信号进行会话临时提供一条双向传输的媒介,其通频带应在300-3400hz之间。2、提供并传输用户线和网内各种信号。这些信号包括摘挂机信号、电话号码以及为呼叫的建立、监视和释放所必须的控制信号。这些控制信号要在网络内的相关节点予以执行。3、为了提高电话网络的运行和管理效率,网内还需要互相和处理一些命令和信息(如话务餐测量、计费、设备故障检测、故障诊断、故障应急处理和故障排除后的重新运行组织等)。u 程控数字交换系统是由硬件和软件两大部分组成的。1 硬件程控数字交换系统的硬件可以分为三个系统:话路系统、控制系统和输入输

3、出系统,如图1-1所示。图1-1 程控数字交换机的基本组成话路系统是指与话音接续有关的设备,它又包括用户级、远端用户级、各种中继接口、信号部件和选组级,其中选组级为交换系统的核心设备。控制系统的功能包括两个方面:一方面是对呼叫进行处理:另一方面对整个交换系统的运行进行管理、监测和维护。控制系统的硬件由两部分构成:一个是处理机(cpu),另一个是存储器。其中处理机是控制系统的核心。输入输l出系统一般包括打字机、显示器、打印机、以及磁盘和磁带机等外存储器。打字机是用来输入维护、测试、运转管理等方面的人机命令、显示器和打印机是交换机的输出设备。外存储器中存放了交换机的全部程序和数据。2 软件程控交换

4、机的软件是用来实现交换机的各种控制,是交换机必不可少的一个重要组成部分。软件又分成程序和数据两大部分。u 一个简单的交换控制系统主要由线路复用部分、控制部分、以及解复用部分组成,其原理框图如图1-2所示。图1-2 一个简单的交换控制系统组成本次设计的主要内容为交换网络复用与解复用模块,在下文做出详细设计,包括设计规格书、设计框图、仿真波形和设计结论。2、 设计规格书1 设计目标实现交换网络中复用与解复用的两个模块。2 设计参数模块输入端口为32路并行8位信号,每一路输入的系统时钟周期为3904ns;模块输出端口为32路并行8位信号,每一路输出的系统时钟周期为3904ns;3 系统输入32路数据

5、的接入,每个用户输入为8位的并行信号,输入时钟为周期为3904ns。复位信号,低电平有效。一旦检测到复位信号,整个模块内部控制寄存器和状态寄存器立即清零。帧同步信号,用于指示每一帧的起始位置。系统检测到帧同步信号一次读入每个用户的数据,通过复用模块将起读入模块内部。时钟信号,用于同步内部寄存器。4 系统输出32路数据的输出,每个用户输入为8位的并行信号,输入时钟为周期为3904ns。3、 设计框图整个系统由5个模块组成,其原理框图如图3-1所示:控制模块:用于对整个系统的控制,包括复用控制,串并转换控制,并串转换控制和解复用控制。复用模块:对32路输入数据进行复用,依次输入系统。并串转换模块:

6、将8bit的并行数据转换为串行数据。串并转换模块:将对应的串行数据转换为并行数据。解复用模块:对32路数据进行复用输出,依次输出系统。图3-1 系统框图顶层图系统顶层图代码如下所示:timescale 1 ns/ 1 psmodule pcm(input7:0d_in0,input7:0d_in1,input7:0d_in2,input7:0d_in3,input7:0d_in4,input7:0d_in5,input7:0d_in6,input7:0d_in7,input7:0d_in8,input7:0d_in9,input7:0d_in10,input7:0d_in11,input7:0

7、d_in12,input7:0d_in13,input7:0d_in14,input7:0d_in15,input7:0d_in16,input7:0d_in17,input7:0d_in18,input7:0d_in19,input7:0d_in20,input7:0d_in21,input7:0d_in22,input7:0d_in23,input7:0d_in24,input7:0d_in25,input7:0d_in26,input7:0d_in27,input7:0d_in28,input7:0d_in29,input7:0d_in30,input7:0d_in31,input cl

8、k,inputreset,inputframe_synch,output7:0d_out0,output7:0d_out1,output7:0d_out2,output7:0d_out3,output7:0d_out4,output7:0d_out5,output7:0d_out6,output7:0d_out7,output7:0d_out8,output7:0d_out9,output7:0d_out10,output7:0d_out11,output7:0d_out12,output7:0d_out13,output7:0d_out14,output7:0d_out15,output7:

9、0d_out16,output7:0d_out17,output7:0d_out18,output7:0d_out19,output7:0d_out20,output7:0d_out21,output7:0d_out22,output7:0d_out23,output7:0d_out24,output7:0d_out25,output7:0d_out26,output7:0d_out27,output7:0d_out28,output7:0d_out29,output7:0d_out30,output7:0d_out31);/clk period is 488nswire 7:0 par1,p

10、ar2;wire serial_out;wire serial_start_flag;wire4:0sel_mux,sel_demux;wire load_data_register;control_unit u1(.frame_synch(frame_synch),.reset(reset),.clk(clk),.sel_mux(sel_mux),.load_data_register(load_data_register),.sel_demux(sel_demux);switch_mux u2(.d_in0(d_in0),.d_in1(d_in1),.d_in2(d_in2),.d_in3

11、(d_in3),.d_in4(d_in4),.d_in5(d_in5),.d_in6(d_in6),.d_in7(d_in7),.d_in8(d_in8),.d_in9(d_in9),.d_in10(d_in10),.d_in11(d_in11),.d_in12(d_in12),.d_in13(d_in13),.d_in14(d_in14),.d_in15(d_in15),.d_in16(d_in16),.d_in17(d_in17),.d_in18(d_in18),.d_in19(d_in19),.d_in20(d_in20),.d_in21(d_in21),.d_in22(d_in22),

12、.d_in23(d_in23),.d_in24(d_in24),.d_in25(d_in25),.d_in26(d_in26),.d_in27(d_in27),.d_in28(d_in28),.d_in29(d_in29),.d_in30(d_in30),.d_in31(d_in31),.sel_mux(sel_mux),.par1(par1);/d_in can only be wireparallel_2_seriel u3(.par1(par1),.clk(clk),.reset(reset),.load_data_register(load_data_register),.serial

13、_out(serial_out),.start_flag(serial_start_flag);seriel_2_parallel u4(.ser(serial_out),.clk(clk),.start_flag(serial_start_flag),.reset(reset),.par2(par2);switch_demux u5(.par2(par2),.sel_demux(sel_demux),.clk(clk),.d_out0(d_out0),.d_out1(d_out1),.d_out2(d_out2),.d_out3(d_out3),.d_out4(d_out4),.d_out5

14、(d_out5),.d_out6(d_out6),.d_out7(d_out7),.d_out8(d_out8),.d_out9(d_out9),.d_out10(d_out10),.d_out11(d_out11),.d_out12(d_out12),.d_out13(d_out13),.d_out14(d_out14),.d_out15(d_out15),.d_out16(d_out16),.d_out17(d_out17),.d_out18(d_out18),.d_out19(d_out19),.d_out20(d_out20),.d_out21(d_out21),.d_out22(d_

15、out22),.d_out23(d_out23),.d_out24(d_out24),.d_out25(d_out25),.d_out26(d_out26),.d_out27(d_out27),.d_out28(d_out28),.d_out29(d_out29),.d_out30(d_out30),.d_out31(d_out31);endmodulev 子模块1为控制模块:用于对整个系统的控制,包括复用控制,串并转换控制,并串转换控制和解复用控制,其原理框图如图3-2所示。图3-2 控制模块原理图verilog代码如下所示:module control_unit(input frame_s

16、ynch,inputreset,inputclk,output reg4:0 sel_mux,output reg4:0 sel_demux,output reg load_data_register);reg count_frame;reg 2:0count;reg4:0 sel_demux_tmp,sel_demux_tmp1,sel_demux_tmp2,sel_demux_tmp3,sel_demux_tmp4,sel_demux_tmp5;/always(posedge clk)if(reset)/reset is negetivecount=0;elsecount=count+1;

17、/always(posedge clk)if(reset)/reset is negetivecount_frame=0;elseif(frame_synch)count_frame=0;elsecount_frame=count_frame+1;/always(posedge clk)if(reset)/reset is negetivebeginsel_mux=0;sel_demux_tmp=0;endelseif(count=7)beginsel_mux=sel_mux+1;/be the selet port of the switch_muxsel_demux_tmp=sel_dem

18、ux_tmp+1;/be the selet port of the switch_demuxendelse beginsel_mux=sel_mux;sel_demux_tmp=sel_demux_tmp;end/always(posedge clk)if(reset)/reset is negetiveload_data_register=0;elseif(frame_synch & count_frame=0)load_data_register=1;/the enable signal of parallel_2_serielelseload_data_register=0;/alwa

19、ys(posedge clk)if(reset)/reset is negetivebeginsel_demux_tmp1=0;sel_demux_tmp2=0;sel_demux_tmp3=0;sel_demux_tmp4=0;sel_demux_tmp5=0;sel_demux=0;endelsebeginsel_demux_tmp1=sel_demux_tmp;sel_demux_tmp2=sel_demux_tmp1;sel_demux_tmp3=sel_demux_tmp2;sel_demux_tmp4=sel_demux_tmp3;sel_demux_tmp5=sel_demux_

20、tmp4;sel_demux=sel_demux_tmp5;endendmodule复用模块:对32路输入数据进行复用,依次输入系统,其原理框图部分截图如图3-3所示。图3-3 复用模块原理框图部分截图其verilog代码如下所示:module switch_mux(input7:0 d_in0,d_in1,d_in2,d_in3,d_in4,d_in5,d_in6,d_in7,d_in8,d_in9,input7:0 d_in10,d_in11,d_in12,d_in13,d_in14,d_in15,d_in16,d_in17,d_in18,d_in19,input7:0 d_in20,d_

21、in21,d_in22,d_in23,d_in24,d_in25,d_in26,d_in27,d_in28,d_in29,input7:0 d_in30,d_in31,input4:0sel_mux,output reg7:0par1);always(sel_mux or d_in0 or d_in1 or d_in2 or d_in3 or d_in4 or d_in5 or d_in6 or d_in7 or d_in8 or d_in9or d_in10 or d_in11 or d_in12 or d_in13 or d_in14 or d_in15 or d_in16 or d_in

22、17 or d_in18 or d_in19or d_in20 or d_in21 or d_in22 or d_in23 or d_in24 or d_in25 or d_in26 or d_in27 or d_in28 or d_in29or d_in30 or d_in31)begincase(sel_mux)5d0:par1=d_in0;5d1:par1=d_in1;5d2:par1=d_in2;5d3:par1=d_in3;5d4:par1=d_in4;5d5:par1=d_in5;5d6:par1=d_in6;5d7:par1=d_in7;5d8:par1=d_in8;5d9:pa

23、r1=d_in9;5d10:par1=d_in10;5d11:par1=d_in11;5d12:par1=d_in12;5d13:par1=d_in13;5d14:par1=d_in14;5d15:par1=d_in15;5d16:par1=d_in16;5d17:par1=d_in17;5d18:par1=d_in18;5d19:par1=d_in19;5d20:par1=d_in20;5d21:par1=d_in21;5d22:par1=d_in22;5d23:par1=d_in23;5d24:par1=d_in24;5d25:par1=d_in25;5d26:par1=d_in26;5d

24、27:par1=d_in27;5d28:par1=d_in28;5d29:par1=d_in29;5d30:par1=d_in30;5d31:par1=d_in31;default:par1=0;endcaseendendmodule并串转换模块:将8bit的并行数据转换为串行数据其原理框图如图3-4所示。图3-4并串转换模块原理框图其verilog代码如下所示:module parallel_2_seriel(input 7:0 par1,input clk,input reset,input load_data_register,output reg serial_out,output r

25、eg start_flag);reg en;reg ser;reg 7:0count_main;reg 2:0count8;always(posedge clk)if(reset)ser=0;else if(en=1)case(count8)3d0: ser=par10;3d1: ser=par11;3d2: ser=par12;3d3: ser=par13;3d4: ser=par14;3d5: ser=par15;3d6: ser=par16;3d7: ser=par17;default:ser=0;endcasealways(posedge clk)if(reset)count_main

26、=0;else if(en)count_main=count_main+1;elsecount_main=0;always(posedge clk)if(reset)en=0;else if(load_data_register)en=1;else if(count_main=255)en=0;always(posedge clk)if(reset)count8=0;else count8=count_main%8;always(posedge clk)if(reset)start_flag=0;else if(count8=1)start_flag=1;elsestart_flag=0;al

27、ways(posedge clk)if(reset)serial_out=0;elseserial_out=ser;endmodule串并转换模块:将对应的串行数据转换为并行数据,其原理框图如图3-5所示。图3-5串并转换模块原理框图其verilog代码如下所示:module seriel_2_parallel(input ser,input clk,input reset,input start_flag,output reg0:7 par2);reg 7:0par,par0;reg en;reg 2:0count8;always(posedge clk)if(reset)en=0;else

28、 if(start_flag)en=1;else if(count8=7)en=0;always(posedge clk)if(reset)begincount8=0;endelse if(en)count8=count8+1;elsecount8=0;always(negedge clk)if(reset)par=7b0;elsecase(count8)3d0:par0=ser;3d1:par1=ser;3d2:par2=ser;3d3:par3=ser;3d4:par4=ser;3d5:par5=ser;3d6:par6=ser;3d7:par7=ser;default: par=0;en

29、dcasealways(posedge clk)if(reset)beginpar2=7b0;par0=7b0;endelse if(count8=7)par0=par;else if(count8=0)par2=par0;endmodule解复用模块:对32路数据进行复用输出,依次输出系统,其原理框图部分截图如图3-6所示。图3-6 解复用模块原理框图部分截图其verilog代码如下所示:module switch_demux(input 7:0 par2,input4:0 sel_demux,inputclk,output reg7:0d_out0,d_out1,d_out2,d_out3

30、,d_out4,d_out5,d_out6,d_out7,d_out8,d_out9,output reg7:0d_out10,d_out11,d_out12,d_out13,d_out14,d_out15,d_out16,d_out17,d_out18,d_out19,output reg7:0d_out20,d_out21,d_out22,d_out23,d_out24,d_out25,d_out26,d_out27,d_out28,d_out29,output reg7:0d_out30,d_out31);always(posedge clk)case(sel_demux )5d0:d_

31、out0=par2;5d1:d_out1=par2;5d2:d_out2=par2;5d3:d_out3=par2;5d4:d_out4=par2;5d5:d_out5=par2;5d6:d_out6=par2;5d7:d_out7=par2;5d8:d_out8=par2;5d9:d_out9=par2;5d10:d_out10=par2;5d11:d_out11=par2;5d12:d_out12=par2;5d13:d_out13=par2;5d14:d_out14=par2;5d15:d_out15=par2;5d16:d_out16=par2;5d17:d_out17=par2;5d

32、18:d_out18=par2;5d19:d_out19=par2;5d20:d_out20=par2;5d21:d_out21=par2;5d22:d_out22=par2;5d23:d_out23=par2;5d24:d_out24=par2;5d25:d_out25=par2;5d26:d_out26=par2;5d27:d_out27=par2;5d28:d_out28=par2;5d29:d_out29=par2;5d30:d_out30=par2;5d31:d_out31=par2;default:begind_out0=0;d_out1=0;d_out2=0;d_out3=0;d

33、_out4=0;d_out5=0;d_out6=0;d_out7=0;d_out8=0;d_out9=0;d_out10=0;d_out11=0;d_out12=0;d_out13=0;d_out14=0;d_out15=0;d_out16=0;d_out17=0;d_out18=0;d_out19=0;d_out20=0;d_out21=0;d_out22=0;d_out23=0;d_out24=0;d_out25=0;d_out26=0;d_out27=0;d_out28=0;d_out29=0;d_out30=0;d_out31=0;endendcaseendmodule4、 仿真波形通

34、过testbench模块产生测试输入,对各个模块依次测试,最后将各个模块添加到顶层图中联合测试,最终实现所需要的功能。其源代码如下所示:timescale 1 ns/ 1 psmodule pcm_vlg_tst();reg clk;reg 7:0 d_in0,d_in1,d_in2,d_in3,d_in4,d_in5,d_in6,d_in7,d_in8,d_in9;reg 7:0 d_in10,d_in11,d_in12,d_in13,d_in14,d_in15,d_in16,d_in17,d_in18,d_in19;reg 7:0 d_in20,d_in21,d_in22,d_in23,d

35、_in24,d_in25,d_in26,d_in27,d_in28,d_in29;reg 7:0 d_in30,d_in31;reg frame_synch;reg reset;/ wires wire7:0d_out0,d_out1,d_out2,d_out3,d_out4,d_out5,d_out6,d_out7,d_out8,d_out9;wire7:0d_out10,d_out11,d_out12,d_out13,d_out14,d_out15,d_out16,d_out17,d_out18,d_out19;wire7:0d_out20,d_out21,d_out22,d_out23,

36、d_out24,d_out25,d_out26,d_out27,d_out28,d_out29;wire7:0d_out30,d_out31;/ assign statements (if any) pcm i1 (/ port map - connection between master ports and signals/registers .clk(clk),.d_in0(d_in0),.d_in1(d_in1),.d_in2(d_in2),.d_in3(d_in3),.d_in4(d_in4),.d_in5(d_in5),.d_in6(d_in6),.d_in7(d_in7),.d_

37、in8(d_in8),.d_in9(d_in9),.d_in10(d_in10),.d_in11(d_in11),.d_in12(d_in12),.d_in13(d_in13),.d_in14(d_in14),.d_in15(d_in15),.d_in16(d_in16),.d_in17(d_in17),.d_in18(d_in18),.d_in19(d_in19),.d_in20(d_in20),.d_in21(d_in21),.d_in22(d_in22),.d_in23(d_in23),.d_in24(d_in24),.d_in25(d_in25),.d_in26(d_in26),.d_

38、in27(d_in27),.d_in28(d_in28),.d_in29(d_in29),.d_in30(d_in30),.d_in31(d_in31),.d_out0(d_out0),.d_out1(d_out1),.d_out2(d_out2),.d_out3(d_out3),.d_out4(d_out4),.d_out5(d_out5),.d_out6(d_out6),.d_out7(d_out7),.d_out8(d_out8),.d_out9(d_out9),.d_out10(d_out10),.d_out11(d_out11),.d_out12(d_out12),.d_out13(

39、d_out13),.d_out14(d_out14),.d_out15(d_out15),.d_out16(d_out16),.d_out17(d_out17),.d_out18(d_out18),.d_out19(d_out19),.d_out20(d_out20),.d_out21(d_out21),.d_out22(d_out22),.d_out23(d_out23),.d_out24(d_out24),.d_out25(d_out25),.d_out26(d_out26),.d_out27(d_out27),.d_out28(d_out28),.d_out29(d_out29),.d_

40、out30(d_out30),.d_out31(d_out31),.frame_synch(frame_synch),.reset(reset);initial begin clk=0;forever #244 clk=clk;end initial begin d_in0=1bz;d_in1=0;d_in2=0;d_in3=0;d_in4=0;d_in5=0;d_in6=0;d_in7=0;d_in8=0;d_in9=0;d_in10=0;d_in11=0;d_in12=0;d_in13=0;d_in14=0;d_in15=0;d_in16=0;d_in17=0;d_in18=0;d_in1

41、9=0;d_in20=0;d_in21=0;d_in22=0;d_in23=0;d_in24=0;d_in25=0;d_in26=0;d_in27=0;d_in28=0;d_in29=0;d_in30=0;d_in31=0; begin#244d_in0=0;#3416d_in1=1;#3904d_in2=2;#3904d_in3=3;#3904d_in4=4;#3904d_in5=5;#3904d_in6=6;#3904d_in7=7;#3904d_in8=8;#3904d_in9=9;#3904d_in10=10;#3904d_in11=11;#3904d_in12=12;#3904d_i

42、n13=13;#3904d_in14=14;#3904d_in15=15;#3904d_in16=16;#3904d_in17=17;#3904d_in18=18;#3904d_in19=19;#3904d_in20=20;#3904d_in21=21;#3904d_in22=22;#3904d_in23=23;#3904d_in24=24;#3904d_in25=25;#3904d_in26=26;#3904d_in27=27;#3904d_in28=28;#3904d_in29=29;#3904d_in30=30;#3904d_in31=31;endforever begin#(3904)d_in0=d_in0+41;#(3904)d_in1=d_in1+41;#(3904)d_in2=d_in2+41;#(3904)d_in3=d_in3+41;#(3904)d_in4=d_in4+41;#(3904)d_in5=d_in5+41;#(3904)d_in6=d_in6+41;#(3904)d_in7=d_in7+41;#(3904)d_in8=d_in8+41;#(3904)d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论