课程设计(论文)基于VHDL的时分复接器设计.doc

上传人:文库蛋蛋多 文档编号:3034663 上传时间:2023-03-09 格式:DOC 页数:24 大小:670.50KB
返回 下载 相关 举报
课程设计(论文)基于VHDL的时分复接器设计.doc_第1页
第1页 / 共24页
课程设计(论文)基于VHDL的时分复接器设计.doc_第2页
第2页 / 共24页
课程设计(论文)基于VHDL的时分复接器设计.doc_第3页
第3页 / 共24页
课程设计(论文)基于VHDL的时分复接器设计.doc_第4页
第4页 / 共24页
课程设计(论文)基于VHDL的时分复接器设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计(论文)基于VHDL的时分复接器设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于VHDL的时分复接器设计.doc(24页珍藏版)》请在三一办公上搜索。

1、创新学分设计说明书创新学分设计题目: 基于VHDL的时分复接器设计 学 院 名 称: 信息工程学院 专业: 通信工程 班级: 090421 学号: 09042130 姓名: 评分: 指导教师: 20 12 年 5 月 17 日目 录一、时分多路复用(TDM)原理4二、时分多路复用信号的产生模型6三、各功能模块的VHDL建模与程序设计 71、分频器及分频器的VHDL源程序 72、内码控制器93、译码器及其VHDL描述 94、时序发生器及其VHDL描述105、count32计数器的VHDL描述 126、nand0_1非门的VHDL描述 137、内码产生器和内码控制器及其VHDL描述 138、输出电

2、路及三态门VHDL描述16三四路复用器系统的VHDL总程序及仿真17四心得体会21五、附录(子模块仿真图)22六、参考文献24引 言在数字通信中,为了扩大传输容量和提高传输效率,通常需要将若干个低速数字码流按一定格式合并成一个高速数据码流,以便在高速宽带信道中传输。数字复接就是依据时分复用基本原理完成数码合并的一种技术,并且是数字通信中的一项基础技术。当今社会是数字话的社会,数字集成电路应用广泛。而在以往的PDH 复接电路中,系统的许多部分采用的是模拟电路,依次有很大的局限性。随着微电子技术的发展,出现了现场可编辑逻辑器件(PLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程

3、逻辑器件(CPLD)。本文就是用硬件描述语言等软件与技术来实现一个基于CPLD/FPGA 的简单数字同步复接系统的设计。在通信系统中,为了提高信道的利用率,使多路信号在同一条信道上传输时互相不产生干扰的方式叫做多路复用。在数字通信系统中主要采用时分多路复用(TDM)方式,把时间划分为若干时隙,让多路数字信号的每一路占用不同的时隙,即多路信号在不同的时间内被传送,各路信号在时域中互不重叠。关键词:数码合并 时分多路 CPLA/FPGA 复用 设计 一时分多路复用(TDM)原理时分多路复用(TDM)是按传输信号的时间进行分割的,它使不同的信号在不同的时间内传送,将整个传输时间分为许多时间间隔,每个

4、时间片被一路信号占用。TDM就是通过在时间上交叉发送每一路信号的一部分来实现一条电路传送多路信号的。电路上的每一短暂时刻只有一路信号存在。因数字信号是有限个离散值,所以TDM技术广泛应用于数字通信系统。图1.1是时分多路复用的原理框图,发送端的各路话音信号经低通滤波器将带宽限制在3400Hz 以内,然后加到匀速旋转的电子开关k1上,依次接通各路信号,它相当于对各路信号按一定的时间间隙进行抽样。k1旋转一周的时间为一个抽样周期T,这样就做到了对每一路信号每隔周期T时间抽样一次,此时间周期称为1帧长。发送端电子开关k1不仅起到抽样作用,同时还起到复用和合路的作用。合路后的抽样信号送到编码器进行量化

5、和编码,然后,将信号码流送往信道。在接收端,将各分路信号码进行统一译码,还原后的信号由分路开关k2依次接通各分路,在各分路中经低通滤波器将重建的话音信号送往收端用户。时分多路复用的关键是同步,为了保证正常通信,必须确保收发旋转开关严格同频同相,同频是指旋转开关的旋转速度要完全相同,同相是指当发端旋转开关K1连接第一路信号时,收端旋转开关K2也必须连接在第一路信号上。根据国际电报电话咨询委员会(CCITT)建议,目前TDM采用两种标准系列:一种是欧洲和我们国家所采用的30路系列,即由32个话路组成一个PCM基群,如图1.2所示;另一种是北美和日本等国所采用的24路体系,即由24个话路组成一个PC

6、M基群。S3(t)S1(t)Si(t)S2(t)S3(t)S2(t)S1(t)N21K1K2N21低通滤 波 器PCM编码信道PCM解码低通滤 波 器低通滤 波 器低通滤 波 器低通滤 波 器Si(t)低通滤 波 器图1.1时分多路复用原理框图f0TS0TS1f00tfTS2TS16TS30TS31125us 图1.2 PCM30/ 32 路基群系统的帧结构在PCM30/32系统中,抽样频率为8kHz,抽样周期Ts=1/8000=125us,被称为一个帧周期。每个抽样值用8比特表示,所占用的时间tc=125/32=3.9us,被称为一个路时隙。每个比特所占用的时间为tb=3.9/8=0.488

7、us,总码速率为fb=1/0.488=2048kb/s。图1.3给出了PCM30/ 32 路(基群)路制式帧结构,从图中可以看出1 个复帧中有16 个子帧( 编号为F0,F1, ,F15) ,其中F0,F2,,F14 为偶帧,F1,F3, ,F15 为奇帧,一帧分为32个路时隙,分别用TS0 TS31 表示,其中TS0 作为帧同步时隙,用来传送帧同步码组和帧失步对告码,TS16 用来传送复帧同步信号,复帧失步对告及各路信道信号,另外30 路时隙用来传送30 路话音信号,每个时隙可以插入8 位二进制信息码( 即每时隙含8 b 信息码,由PCM 编码器完成),以上的帧构成PCM30/ 32 路基群

8、系统。 图1.3 PCM30/ 32 路(基群)路制式帧结构二时分多路复用信号的产生模型1、模型 多路复用信号的产生模型如图2.1所示.它包括了分频器、内码控制器、内码产生器、时序信号发生器及复用输出电路等功能模块。晶振输出信号送给分频器分频后得到低频信号作为内码产生器的时钟信号;每个内码产生器用于产生8位数据码且为串行输出,作为内部分路数据信号,其串行数据码输出受到时序信号的控制;时序发生器的功能是产生四路宽度为8位数据码宽度的时序信号,每路时序信号的相对相位延迟按规定顺序为8位数据码宽度:输出电路的功能是将四路分路码组合成一路完整的复用信号。复用信号输出时钟分频器内码控制器内码产生器内码产

9、生器内码产生器内码产生器输出电路时序发生器 图2.1 四路复用器的VHDL建模框图三、各功能模块的VHDL建模与程序设计1、分频器及分频器的VHDL源程序:分频器实际是一个4位二进制计数器,其作用是将晶体振荡电路产生的方波信号进行分频,其16分颇输出端作为内码控制器的控制输入端,其VHDL建模符号如图3.1所示。图中,clk为时钟信号输入:A- D为四位二进制分频输出.分别表示16,8,4,2分频输出。图3.1 分频器的VHDL建模符号分频器的VHDL源程序:library IEEE; use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigne

10、d.all; entity count16 is -实体名 port(clk:in std_logic; D,C,B,A:out std_logic); -端口设置end count16;architecture rtl of count16 is signal count_4:std_logic_vector(3 downto 0);beginprocess(clk) -进程敏感信号begin if(clkevent and clk=1) then -时钟上升沿触发 if(count_4=1111) then count_4=0000;elsecount_4=count_4+1;end if

11、;end if;end process;D=count_4(0); -最低位从D输出C=count_4(1); -次低位从C输出B=count_4(2); -此高位从B输出A=count_4(3); -最高位从A输出end rtl;上述程序在quartusii7.2的时序仿真波形如图3.2所示 图3.2分频器的时序仿真波形图中A表示16分频输出,B表示8分频输出,C表示4分频输出,D表示2分频输出。2、内码控制器内码控制器实际也是一个分频器,一个输出端口输出三位并行信号(图2.1中只画出信号走向)作为内码产生器的地址控制端(选择输入端),另一输出端作为时序产生器的控制端.内码控制器对内码产生器

12、的控制表现为内码控制器的内码产生器应循环并依次输出从“000, 001”一直到“111。这样,内码产生器每个时钟节拍输出一位码,通过输出电路送到合路信道上,最终形成路串行码流。3、译码器及其VHDL描述 时序发生器用于产生四路宽度为8位数据码宽度的时序信号。具体实现是将内码控制器的二分频端(即128kHz时钟输出端)通过一个32分频器,其二分频和四分频输出端作为2/4译码器的控制端,2/4译码器的四个输出端,经过反相器后便得出本设计所要求的四路时序译码器的建模流程图如图3.3所示。分频器的两位输出 F2&F1F2&F1=00F2&F1=01F2&F1=10F2&F1=11输出=1110输出=1

13、101输出=1011输出=0111 图3.3 译码器的VHDL建模流程图其VHDL的描述程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yimaqi is -译码器实体名port(F2,F1:in std_logic; Y3,Y2,Y1,Y0:out std_logic);end yimaqi;architecture rtl of yimaqi issignal indata:std_logic_vector(1 downto 0);signal Y:std_logic_

14、vector(3 downto 0); beginindataYYYYY=XXXX;end case;end process;Y3=Y(3); -第4路译码输出Y2=Y(2); -第3路译码输出Y1=Y(1); -第2路译码输出Y0B,out2=in1); -例化u2:count32 port map(X1=in1,D=in2,E=in3); -例化u3:yimaqi port map(F1=in2,F2=in3,Y0=in4,Y1=in5,Y2=in6,Y3=in7); -例化u4:nand0_1 port map(X2=in4,out2=S0); -例化u5:nand0_1 port ma

15、p(X2=in5,out2=S1); -例化u6:nand0_1 port map(X2=in6,out2=S2); -例化u7:nand0_1 port map(X2=in7,out2=S3); -例化end architecture sx1;时序发生器的仿真波形及相位关系如图3.6所示图3.6时序发生器的仿真波形及相位关系5、count32计数器的VHDL描述程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count32 is -计数器实体名port(X1:in std_l

16、ogic;E,D,C,B,A:out std_logic);end count32;architecture rtl of count32 issignal count_5:std_logic_vector(4 downto 0); beginprocess(X1)beginif(X1event and X1=1) thenif(count_5=11111)thencount_5=00000;elsecount_5=count_5+1;end if;end if;end process;A=count_5(0); -取第1位输出B=count_5(1); -取第2位输出C=count_5(2)

17、; -取第3位输出D=count_5(3); -取第4位输出E=count_5(4); -取第5位输出end rtl;6、nand0_1非门的VHDL描述程序:library ieee;use ieee.std_logic_1164.all;entity nand0_1 isport(X2:in std_logic;out2:out std_logic);end nand0_1;architecture nand_0 of nand0_1 is beginout2in0_8,D6=in0_7,D5=in0_6,D4=in0_5,D3=in0_4, -例化D2=in0_3,D1=in0_2,D0

18、=in0_1,D=K3,C=K2,B=K1,Y=I0); -例化u2:tri_gate0 port map(din0=I0,en=sx0,dout0=out0); -例化end architecture nm0;内码控制器VHDL描述:library ieee;use ieee.std_logic_1164.all;entity mux8_0 is -8位并行转一路串行码控制器实体名port(D7,D6,D5,D4,D3,D2,D1,D0:in std_logic;D,C,B:in std_logic;y:out std_logic);end mux8_0;architecture rtl o

19、f mux8_0 is signal sel:std_logic_vector(2 downto 0);beginsel=D&C&B;with sel selecty=D0 when 000, D1 when 001, D2 when 010, D3 when 011, D4 when 100, D5 when 101, D6 when 110, D7 when 111, 0 when others;end rtl;8、输出电路及三态门VHDL描述在时序发生器产生的四路时序信号的控制下(时序与内码相与),按顺序依次将四路数据码接入同一通道,形成了一路串行码,从而完成了四路数据码的复用。实现的关

20、键是三态与门的利用,就是当时序信号的上升沿到来,并且在高电平持续时间内。相应的八位码以Y0, Y1,Y2, Y3, Y4, Y5, Y6, Y7的顺序依次输出,而在其他情况下则以高阻的形态出现,当经过一个时序周期(即32个码元)后,就输出了一帧串行码.从而实现了四路数据码元的复用。其中三态门的建模如图3.8所示图3.8 三态门的VHDL建模符号三态门的VHDL描述程序如下: library ieee;use ieee.std_logic_1164.all;entity tri_gate0 is -三态门实体名port(din0,en:in std_logic; dout0:out std_lo

21、gic);end tri_gate0;architecture zas of tri_gate0 isbegindout0a0,in0_2=a1,in0_3=a2, -以下为例化语句 in0_4=a3,in0_5=a4,in0_6=a5,in0_7=a6,in0_8=a7, K3=w3,K2=w2,K1=w1,sx0=w4,out0=w15);m2:neimacs0 port map(in0_1=b0,in0_2=b1,in0_3=b2,in0_4=b3,in0_5=b4, in0_6=b5,in0_7=b6,in0_8=b7,K3=w3,K2=w2,K1=w1, sx0=w5,out0=w1

22、4);m3:neimacs0 port map(in0_1=c0,in0_2=c1,in0_3=c2,in0_4=c3,in0_5=c4, in0_6=c5,in0_7=c6,in0_8=c7,K3=w3,K2=w2,K1=w1, sx0=w6,out0=w13);m4:neimacs0 port map(in0_1=d0,in0_2=d1,in0_3=d2,in0_4=d3,in0_5=d4, in0_6=d5,in0_7=d6,in0_8=d7,K3=w3,K2=w2,K1=w1, sx0=w7,out0=w12);m5:shixusuccessful port map(b=clk,S3=

23、w7,S2=w6,S1=w5,S0=w4);m6:count16 port map(clk=clk,D=W1,C=W2,B=W3);m7:men port map(in1=w7,out1=s3);m8:men port map(in1=w6,out1=s2);m9:men port map(in1=w5,out1=s1);m10:men port map(in1=w4,out1=s0);m11:andmen port map(in1=w12,in2=w13,in3=w14,in4=w15,outp=w16);m12:djhlatch port map(D=w16,ena=ena,q1=fuji

24、out);end ff;以下为部分子模块程序library ieee;use ieee.std_logic_1164.all;entity men is -实体“men”port(in1:in std_logic; out1:out std_logic);end men;architecture one of men isbeginout1=in1; -输入信号直接送给输出端end one;为了既能实现三态门功能,又能便于驱动后续电路,将三态.“Z”改为“1,再在后面加一个四与门.则可将四路分路信号合成一路信号。library ieee;use ieee.std_logic_1164.all;

25、entity andmen is -四与门实体名port(in1,in2,in3,in4:in std_logic; outp:out std_logic);end andmen;architecture one of andmen isbeginoutp=in1 and in2 and in3 and in4; -“与”运算end one;在仿真波形中可能出现毛刺,所以我们增加了一个D触发器,将前面输出的合路信号经过D触发器后,就能消除毛刺。library ieee;use ieee.std_logic_1164.all;entity djhlatch is -D触发器实体名port(d,e

26、na:in std_logic; q1:out std_logic);end entity djhlatch;architecture one of djhlatch issignal sig_save:std_logic;beginprocess(d,ena) -进程敏感信号beginif ena=1 then sig_save=d;end if;q1=sig_save;end process;end architecture one; 四路同步复接器系统模块的时序仿真波形如图3.1所示。图中的S0, S1, S2, S3分别表示不同相位的四路时序信号,每路时序信号的高电平持续时间刚好包含8

27、个clk(时钟)周期,且在信号时序控制过程中。时序信号的高电平有效。在图3.1的波形示例中,第1, 2,3, 4路分路码在时间上分别对应第1, 2, 3, 4路时序信号的高电平持续时间,从图可看出第1路分路码为11110010,第2路分路码为10101010,第3路分路码为00000000,第4路分路码为111111111.一帧复用信号序列为11110010101010100000000011111111.则其时序仿真可以说明,该复接器示例的建模与程序设计是正确的。仿真结果:图3.10四路同步复接器输出信号的时序仿真波形图四心得体会经过将近两周多的时间,我们终于完成了这次创新学分设计;从起初的

28、查阅资料、重新学习使用quartus软件,到编辑各个模块的子程序并进行仿真调试,每一个细节的成功都会给我们带来一番欣喜。通过本次做基于VHDL的时分复接器的设计,进一步熟悉了VHDL的语法结构及其编程的流程,学会了自己设计简单的元器件并加载到元器件库中(在设计过程中没有找到8选1数字选择器于是自己编程设计了一个并加载到了library当中);掌握了数码合并提高效率形成复接器的原理;更加熟悉的掌握了原件例化语句,通过原件例化语句将各个硬件实现结合,通过调用各个程序子模块进行模块连接最后实现复接器的编译及仿真。在实现复接器各个子模块的连接过程当中出现没把总程序要调用的模块添加到当前工程导致错误,后

29、经老师指导改正过来,完成了此次设计。五、附录5.1分频器时序仿真图5.2译码器时序仿真图5.3时序产生器仿真图5.4 Counter_32仿真图5.5 nando_1非门仿真图5.6内码产生器仿真图5.6内码控制器仿真图 5.8 三态门的仿真图59 四路同步复接器输出信号的时序仿真波形图六参考文献1 黄智伟.FPGA系统设计与实践M.电子工业出版社,20052 廖日坤.CPLD/FPGA嵌入式应用开发技术白金手册M.中国电力出版社3 叶淦华.FPGA嵌入式应用系统开发典型实例M.中国电力出版社;20054 求是科技.VHDL应用开发技术与工程实践M.人民邮电出版社,20055 康华光.电子技术

30、基础(第四版)M. 北京:高等教育出版社,20006 曹昕燕等.EDA技术实验与课程设计M. 北京:清华大学出版社,20067 潘松、黄继业.EDA技术实用教程M. 北京:科学出版社,20068 康华光.电子技术基础(第五版)M.北京:高等教育出版社,19989 柴明刚.集成电路设计与运用实验J.南昌航空大学,200810 海霞.集成电路应用J.南昌航空大学,200811 谭会生,张昌凡.EDA技术应用M.西安:西安电子科技大学出版社,200112 王振红.VHDL数字电路设计与应用实践教程M.北京:机械工业出版社13 徐光辉,徐志军.CPLD/FPGA的开发与应用M.北京:电子工业出版社,14 张凯,林伟.VHDL实例剖析M.北京:国防工业出版社,200415 段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计M16 樊昌信,曹丽娜.通信原理M.北京:国防工业出版社,2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号