课程设计--基带码型变换设计-密勒码码型变换

上传人:飞*** 文档编号:43463831 上传时间:2018-06-06 格式:DOCX 页数:15 大小:788.48KB
返回 下载 相关 举报
课程设计--基带码型变换设计-密勒码码型变换_第1页
第1页 / 共15页
课程设计--基带码型变换设计-密勒码码型变换_第2页
第2页 / 共15页
课程设计--基带码型变换设计-密勒码码型变换_第3页
第3页 / 共15页
课程设计--基带码型变换设计-密勒码码型变换_第4页
第4页 / 共15页
课程设计--基带码型变换设计-密勒码码型变换_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《课程设计--基带码型变换设计-密勒码码型变换》由会员分享,可在线阅读,更多相关《课程设计--基带码型变换设计-密勒码码型变换(15页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学专业课程设计 3(通信原理) 课程设计说明书1基带码型变换设计-密勒码码型变换1.技术指标(1)设计密勒码的编译码电路;(2)输入信号为 24 位的周期 NRZ 码(3)编译码延时小于 3 个码元宽度2.基本原理基带码型变换设计 密勒码码型变换 ,也就是利用仿真软件 MAXPLUS II 设计密勒码型变换的编码和译码电路,实现密勒码的编码、解码过程。该电路设计的中心问题在于按照密勒码的编码规则实现信源码的逻辑变换,我们先分析密勒码的编译码原理。查阅通信原理可知,M ILLER 码又称延迟调制码。其编码规则是二进制信息“1”码用码元间隔中心点出现跃变表示, 即用“10”或“01”表示

2、; 二进制信息“0”码有两种情况: 单个“0”时, 在码元间隔内不出现电平跃变, 且与相邻码元的边界处也不跃变; 在连“0”时, 在两个“0”码的边界处出现电平跃变, 即“00”与“11”交替。至于译码部分,根据教材资料可知,其译码可借助于密勒码与 BPH 码的关系求得。观察图 1 波形,此处 NRZ 码为0101001,密勒码为00011110001110,BPH 码为01100110010110。可知,BPH 码的下跳沿对应着密勒码的跳变沿。所以,我们可以用BPH 码下跳沿去触发双稳态电路,即可输出密勒码。武汉理工大学专业课程设计 3(通信原理) 课程设计说明书2图 1 对应 NRZ 码的

3、密勒码波形图3.设计方案及功能分析分析密勒码的编译码原理后,我做出了以下两种设计方案。3.1 方案一方案一,是以 VHDL 的穷举编程实现密勒码的编解码。分析密勒码的编码规则我们可以发现以下规则:1) 密勒码用10和01表示信号1,用00和11表示信号0;2) 两个信源码之间对应的密勒码没有跳变,即当前码的编码受到前一个码的影响。综合以上两条,我们可以在程序中利用各种顺序语句罗列出编码时可能碰到的所有的情形,并给出对应的编码解。在下表 1 中,列出了所得的米勒码编码情况。其中,信号输入为 DATA,信号输入时刻前一位为 Sav1,对应的密勒码输出为 Sav2,输出为 Do。DATASav1Sa

4、v2Do000011001100010111011000100001101110110110111001表 1 各种情况下的密勒码编码输出武汉理工大学专业课程设计 3(通信原理) 课程设计说明书3即当前输入信号 DATA 有 0,1 两种可能;前一密勒输出有 00,11,01,10 四种情况;综合起来就是 8 种情况,以 DATA 及 Sav2 为条件因子,作为顺序语句的条件。对应此逻辑以“IF THEN ELSIF” 语句编写了如下程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entit

5、y miller_encoder isport(datain :in std_logic;en :in std_logic;clk :in std_logic; encodeout:out std_logic_vector(1 downto 0);end ;architecture func of miller_encoder isbegin process(en,clk,datain)variable sav1 :std_logic:=1;variable sav2 :std_logic_vector(1 downto 0):=“01“;beginif(en=0) thenencodeout

6、=“00“;else if(clk event and clk=0)thenif(datain=1 and sav1=1 and sav2=“01“) thenencodeout=“10“;sav2:=“10“;sav1:=1;elsif(datain=1 and sav1=1 and sav2=“10“) then武汉理工大学专业课程设计 3(通信原理) 课程设计说明书4encodeout=“01“;sav2:=“01“;sav1:=1;elsif(datain=0 and sav1=1 and sav2=“01“) thenencodeout=“11“;sav2:=“11“;sav1:=0

7、;elsif(datain=0 and sav1=1 and sav2=“10“) thenencodeout=“00“;sav2:=“00“;sav1:=0;elsif(datain=0 and sav1=0 and sav2=“00“) thenencodeout=“11“;sav2:=“11“;sav1:=0;elsif(datain=0 and sav1=0 and sav2=“11“) thenencodeout=“00“;sav2:=“11“;sav1:=0;elsif(datain=1 and sav1=0 and sav2=“00“) thenencodeout=“01“;sa

8、v2:=“01“;sav1:=1;elsif(datain=1 and sav1=0 and sav2=“11“) thenencodeout=“10“;sav2:=“10“;sav1:=1;end if; end if;武汉理工大学专业课程设计 3(通信原理) 课程设计说明书5end if;end process;end func; 同样的逆向采用穷举法实现米勒码解码,解码 VHDL 程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity miller_decoder ispor

9、t(encodein :in std_logic_vector(1 downto 0);en :in std_logic;clk :in std_logic;decodeout:out std_logic);end ;architecture func of miller_decoder isbeginprocess(en,clk,encodein)beginif(en=0) thendecodeout=0;elseif(clk event and clk=0) thenif(encodein=“11“ or encodein=“00“) thendecodeout=0;elsif(encod

10、ein=“10“ or encodein=“01“) thendecodeout=1;end if;end if;武汉理工大学专业课程设计 3(通信原理) 课程设计说明书6end if;end process;end func;3.2 方案二方案二,是使用硬件电路实现米勒码的编译码。其编码原理是以 NRZ 码与 BS 信号异或生成 BPH 码,然后输入以 D1 触发器构成的双稳态电路产生密勒码。解码原理是通过 D3 触发器获得密勒码的下跳沿的有效信息与密勒码(密勒码本身包括上跳沿有效信息)相异或,整合,再使用 D4 触发器采样,最终获得解码输出。其编译码过程如下:编码:1) 输入数据 NRZ

11、码与位同步信号 BS 取反后相异或,生成 BPH 码;2) BPH 码输入 D1 触发双稳态电路,生成密勒码。译码:1) 将输出的密勒码输入触发器 D2 的 D 端,将 2BS 信号延迟后送入 D2;2) D2 生成信号 OUT3 输入 D3;3) 将 2BS 信号延迟后送入 D3,将 D3 生成信号 OUT2 与密勒码相与,生成信号OUT1 输入触发器 D4;4) 将 BS 信号取反后延迟送入触发器 D4,即可输出密勒码解调输出。编码、解码电路图如图 2(MAX+PLUS2 绘制)。图 2 方案二编解码电路图根据方案二,在 MAX+PLUS2 中的波形编辑器中仿真,得到图 3。武汉理工大学专

12、业课程设计 3(通信原理) 课程设计说明书7图 3 方案二波形仿真图其中 NRZ 为信号输入,miller 为编码输出,OUTmiller 为译码输出,由图可知电路很好的实现了译码,并且延迟不超过 2 个码元宽度。END TIME 设置为 10us,时钟周期为 100ns。3.33.3 方案比较上述两种方案,其各有各的特点。对于方案一,它的优点是纯编程实现,难度小,容易理解,容易设计。而且,密勒码编解码中出现的状态仅仅只有 8 种,所以采取穷举法很合适。但本方案也有其缺陷,如果该设计是一个大型的,逻辑状态比较多的设计,那么,穷举法编程很不合适了。同时,在此设计中还需要设置编码时的初始条件,由此

13、带来了些许麻烦。所以把方案一作为实际操作方案并不太合适。对于方案二,方案二的逻辑设计比较完善,多方参照资料可知方案二及其改进方案便是应用于实际的密勒码编译码方法。方案二中,采用器件较少较简单,占用逻辑单元少,不易出错,而且在设计原理上的理解也不是很难。其中,器件使用少使得器件延时小,时钟信号能稳定输入各个 D 触发器,这样系统稳定性得到提高。综上所述,以上两种方案里,方案二比较适合实际烧写。4.CPLD 时序和功能仿真参照以上两种方案的对比,我选定采用方案二作为实际烧写的实现方案。对于方案二,在选定了设计器件为 EPM7128SLC84-15 后锁定管脚重新进行编译,编译成功。此时,我们利用

14、MAX+PLUS2 软件对该方案进行时序和功能仿真。对于方案二,最终采用的电路图如图 4。武汉理工大学专业课程设计 3(通信原理) 课程设计说明书8图 4 方案二实际烧写电路图分析仿真波形,方案二的电路可以成功仿真出密勒码的编码、解码功能。在此设定的码元周期为 100ns,仿真时间 END TIME = 3.2us,仿真了 3X8=24 位的波形。根据方案二的设计思路,以 NRZ 码与 BS 码异或得到 BPH 码,再以 BPH 码下跳沿触发双稳态电路生成密勒码。解码时对密勒的上下跳变采样,最终还原成 NRZ 码。图 5 时序仿真波形分析波形可知,NRZ 码输入为:0101 0011,BPH

15、编码输出为:01 10 01 10 01 01 10 10,密勒码编码输出为:00 01 11 10 00 11 10 01。图 6 时序仿真波形分析波形可知,NRZ 码输入为:0101 0101,BPH 编码输出为:01 10 01 10 01 10 01 10,密勒码编码输出为:00 01 11 10 00 01 11 10。武汉理工大学专业课程设计 3(通信原理) 课程设计说明书9图 7 时序仿真波形分析波形可知,NRZ 码输入为:0001 1001,BPH 编码输出为:01 01 01 10 10 01 01 10,密勒码编码输出为:00 11 00 01 10 00 11 10。综合

16、以上三图,两处仿真编码输出与理论编码输出完全相同,可知编码正确。观察BPH 码与 miller 码波形,可知 BPH 码下跳沿对应着密勒码的跳变沿,符合本方案的设计思路。再观察 NRZ 输入码与 OUTmiller 输出码波形,OUTmiller 的波形相对 NRZ 码波形有两个码元的延迟,满足“编译码延时小于 3 个码元宽度”的设计要求。5.硬件电路调试及结论5.1 硬件电路调试对于以上实现方案,经过时序仿真后,进行了管脚锁定以及编译。对于实现方案具体的引脚设定如下:NRZ35,BS33,2BS36,BPH-39, MILLER-37,OMILLER-41。引脚锁定如图 6。图 8 实现方案二管脚锁定图管脚锁定之后在通信原理实验箱上成功进行了烧写。烧写成功后在实验箱上进行测试。将信号源电路打开,烧写用模块打开,使用默认

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号