欢迎来到天天文库
浏览记录
ID:2227308
大小:108.63 KB
页数:6页
时间:2017-11-15
《通信原理课程设计-cmi编码器设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计题目:CMI编码器设计一、概述1.1quartus介绍QuartusII是著名FPGA厂商Altera公司提供的FPGA/CPLD开发集成环境,属于平台化设计工具。用户可以在QuartusII中实现整个数字集成电路的FPGA设计流程。QuartusII在21世纪初推出,是Altera前一代的FPGA/CPLD集成的开发环境MAX+plusII的更新换代产品,其界面友好,使用便捷。在QuartusII上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环
2、境,使设计者能方便地进行设计输入、快速处理和器件编程。1.2CMI的简介CMI码是传号反转码的简称,它是一种应用于PCM四次群和光纤传输系统中的常用线路码型,具有码变换设备简单、有较多的电平跃变,含有丰富的定时信息,便于时钟提取,有一定的纠错能力等优点。在高次脉冲编码调制终端设备中广泛应用作接口码型,在速率低于8448Kb/s的光纤数字传输系统中也被建议作为线路传输码型。在CMI编码中,输入码字0直接输出01码型,较为简单。对于输入为1的码字,其输出CMI码字存在两种结果00或11码,因而对输入1的状态必须记忆。
3、同时,编码后的速率增加一倍,因而整形输出必须有2倍的输入码流时钟。在CMI解码端,存在同步和不同步两种状态,因而需进行同步。同步过程的设计可根据码字的状态进行:因为在输入码字中不存在10码型,如果出现10码,则必须调整同步状态。在该功能模块中,可以观测到CMI在译码过程中的同步过程。1.3CMI码的优点1、不存在直流分量,并且具有很强的时钟分量,有利于在接收端对时钟信号进行恢复;2、具有检错能力,这是因为1码用00或11表示,而0码用01码表示,因而CMI码流中不存在10码,且无00与11码组连续出现,这个特点可
4、用于检测CMI的部分错码。二、实验目的掌握FPGA中实现CMI编码的方法。三、实验仪器1.LTE-TX-02E型通信原理实验箱一台2.计算机(带quartusII开发环境)一台3.JTAG下载电缆一根4.6号板一块5.8号板一块6.信号源板一块7.示波器一台四、实验原理CMI编码规则见如下表所示:输入码字编码结果001100/11交替表示在CMI编码中,输入码字0直接输出01码型,较为简单。对于输入为1的码字,其输出不仅与当前码字有关,还与前一个“1”码的输出有关,输出存在两种结果00或11码,交替出现。在同步情
5、况下,输出只对应三种有效码型,10码型无效,因此可以根据这个特点进行检错。同时,编码后的速率增加一倍。五、设计要求与方法1.设计要求从信号源接8K的PN序列和8K时钟到8号板,对8号板的FPGA进行编程完成PN序列的CMI编码。在程序中定义的端口是:输入:CLK_ENCODE:时钟输入端,由信号源CLK1引入8k的时钟信号。RST:复位信号,高电平有效。NRZ_IN:NRZ码信号输入。输出:CMI_OUT:CMI编码输出。说明:CLK_ENCODE:8号板的FPGA的16脚,插座的名称为“CLK”。RST:8号板
6、FPGA39脚,复位信号,S2pn1往上拨时,复位信号有效。NRZ_IN:8号板的FPGA的10脚,插座的名称为“COMRXA”。CMI_OUT:8号板的FPGA的77脚,插座的名称为“PCMOUTB”。2.设计方法首先将输入数据依据编码要求编成相应码字,0码编成“01”,1码交替成“00”或“11”,然后在原时钟上升沿和下降沿分别取高位和低位进行并串转换输出,就达到倍频输出的目的。六、实验步骤及过程记录1.在quartus中新建或打开工程文件CMI_ENCODE.qpf。注意,工程设置不要随便改动,特别是管脚定
7、义、器件定义,否则会损坏器件。ØQUARTUSII建立工程项目器件选择对话框Summary对话框管脚配置图2.在CMI_ENCODE.V中添加代码。然后,编译仿真后。经检查后方可下载(确认管脚分配正常)。原理图l模块介绍模块一代码编码模块moduleCMI1(CLK_ENCODE,RST,NRZ_IN,OUTA);inputCLK_ENCODE,NRZ_IN;//定义输入时钟信号及初始信号NRZ_INinputRST;//定义输入清零端output[1:0]OUTA;//编码输出2位二进制regflag;//定义
8、flag作为取反信号进行输入为一译码为0011的切换reg[1:0]OUTA;//定义存储类型进行数据存储always@(posedgeCLK_ENCODEornegedgeRST)//当CLK_ENCODE上升沿或置零信号下降沿来临执行beginif(!RST)//当清零为0清零端有效编码输出置零beginOUTA<=0;endelseif(NRZ_IN==1)begi
此文档下载收益归作者所有