基于verilog的CMI编码实现.docx

基于verilog的CMI编码实现.docx

ID:59827321

大小:133.10 KB

页数:5页

时间:2020-11-25

基于verilog的CMI编码实现.docx_第1页
基于verilog的CMI编码实现.docx_第2页
基于verilog的CMI编码实现.docx_第3页
基于verilog的CMI编码实现.docx_第4页
基于verilog的CMI编码实现.docx_第5页
资源描述:

《基于verilog的CMI编码实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于verilog的CMI码型变换1、实验目的²掌握CMI的编码规则²用cpld实现m序列的CMI码型变换2、实验仪器²JH5001(Ⅲ)通信原理基础实验箱²电脑3、实验原理3.1CMI编码规则CMI码一般作为PCM四次群数字中继接口的码型。它具有检错能力,并且不具有直流分量,是一种很重要的码型。它的编码规则如下:表格1CMI编码规则输入码字编码结果001100/11交替表示当输入码字为0时,输出为01码型;对于输入为1的码字,输出有两种情况:输出不仅与当前码字有关,还与前一个1码的输出有关,1码对应的00或11码型,交替出现。由此可以看出,在同

2、步的情况下,输出只对应三种有效码型,10码型无效,因此可以根据这个特点进行检错。3.2程序流程要求根据输入的时钟信号(14.336MHz)产生一个m序列(256KHz),并对该m序列进行CMI码型变换,最后将CMI码型输出。因为1位输入码元对应2位编码输出,所以输出CMI码频率是输入m序列的2倍,即512KHz。1、m序列产生m序列是最长线性反馈移存器序列的简称,它具有均衡性,无直流分量,能够起到载频抑制的作用。m序列可以通过一个带反馈的线性移存器产生,移存器的原理图如下所示:图表1带反馈的线性移存器原理图c0~cn表示反馈系数,其中c0和cn需

3、为1,其他反馈系数可以为0或1,寄存器初值(不能全部为0)an-1~a0共n位,通过反馈相加之后将结果存入an-1,整体移动,如此循环,所以m序列是一个周期序列,它的周期为2n-1.在本实验中,我们产生一个n为4的m序列,并且反馈系数满足如下条件:c0=c1=c3=1c2=0框图如下所示:图表2n=4的m序列原理图a3a2a1a0所以,易知寄存器各位算式和输出表达式如下:a32=a31+a01a22=a31a12=a21a02=a11m=aout2=a01当初始状态an-1~a0=1000时,根据上式可以计算出输出m序列的值为10012、CMI的

4、1状态记忆根据CMI编码规则可以看出,1码对应的输出与前一个1码的状态有关,所以在程序中,需要对1码进行记忆,根据上一个1码来判断下一个1码的输出码型。4、quartus编程及仿真1码型变换源程序分析/*================================================================*

5、cmi编码程序,由一个源时钟生成一个m序列和它对应的cmi码。

6、*================================================================*/moduleCMI

7、(clk_main,mout,cmi_coded);inputclk_main;outputregmout;outputregcmi_coded;/*输入一个时钟信号clk_main(14.336MHz),输出产生的m序列和它的cmi编码reg[5:0]divider1,divider2,origin1,origin2;//divider1,origin1formsequence,计数,来产生m序列的时钟//divider2,origin2forcmisequence,计数,来产生cmi序列的时钟reg[3:0]m;reg[1:0]cmi_reg

8、;/*cmi码型存储,在cmi时钟的触发下输出regcount,mstate;/*count和mstate用来对m序列中的1码进行记忆regcarry1,carry2;//carry1:256khz,是m序列的时钟信号,由divider1产生//carry2:512khz,是cmi序列的时钟信号,由divider2产生initialbeginorigin1=8;/*origin1是产生m序列时钟的计数初值。divider1从origin1开始计数/*当divider1从origin1增加到63(计数器为6位,2^6=64)的时候/*m序列时钟ca

9、rry1翻转,divider1重新从origin1计数/*14.336M/256K=56,所以计数初值为63-56=8origin2=35;/*原理同上,14.336M/512K=28,计数初值为63-28=35divider1=63;divider2=63;count='b0;m=4'b1000;/*m序列移位寄存器初始值为1000carry1=0;carry2=0;mstate=0;end//dividefrequency,carry1andcarry2always@(posedgeclk_main)beginif(divider1==63)

10、begin/*当divider1从origin1增加到63(计数器为6位,2^6=64)的时候carry1=1;divider1=ori

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。