CPLD上五种密勒码基带码型变换方法.doc_第1页
CPLD上五种密勒码基带码型变换方法.doc_第2页
CPLD上五种密勒码基带码型变换方法.doc_第3页
CPLD上五种密勒码基带码型变换方法.doc_第4页
CPLD上五种密勒码基带码型变换方法.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

基带码型变换设计密勒码码型变换1 技术指标1) 设计密勒码的编译码电路。2) 输入信号为24位的周期NRZ码。3) 编译码延时小于3个码元宽度。2 基本原理我的课程设计选题是基带码型变换设计 密勒码 码型变换,也就是设计电路实现密勒码的编码、解码过程。电路设计的重点在于按照密勒码的编码规则实现基带码,也就是信源码的逻辑变换。为了达到这个过程,我们需要先分析清楚密勒码的特点。故基本原理这一部分我分为两部分进行阐述,分别是2.1 密勒码原理分析;2.2 编、解码设想及思路。2.1密勒码原理分析查阅通信原理(樊昌信著 国防工业出版社第6版)可知密勒码相关信息如下:“M ILLER码又称延迟调制码。其编码规则是二进制信息“1”码用码元间隔中心点出现跃变表示, 即用“10”或“01”表示; 二进制信息“0”码有两种情况: 单个“0”时, 在码元间隔内不出现电平跃变, 且与相邻码元的边界处也不跃变; 在连“0”时, 在两个“0”码的边界处出现电平跃变, 即“00”与“11”交替。M ILLER码最初用于气象卫星和磁记录, 现在也用于低速基带数传机。”分析可知,其编码规则可以整理如下表1:表1. 密勒码的编码规则由编码规则,我们可以绘出密勒码的波形。在此参照教材上给的提示,我们也画出双相BPH码的波形,分析NRZ码,密勒码,BPH码之间的关系。此处的BPH用01表示数字信号0;用10表示数字信号1。绘制波形如图1,原始NRZ码为111001010000。图1. 对应NRZ码的密勒码波形图分析波形我们可以发现,BPH码的下跳沿对应着密勒码的跳变沿。参考教材所给的提示,我们可以用BPH码下跳沿去触发双稳态电路,即可输出密勒码。3设计方案功能分析及其比较结合本次的设计内容为了方便阐述,在整理所有的设计方案后,我将码型转换的原理分为5种。下面分别阐述其原理及设计的想法来源。3.1方案一方案一核心思想史以VHDL的穷举编程实现密勒码的编解码,也是我最早得出的设计。顾名思义,就是在程序中利用各种顺序语句罗列出编码时可能碰到的所有的情形,并给出对应的编码解。所以,找到那几个条件因子是这种方法最核心的地方。分析密勒码的编码规则我们可以发现以下规则:1) 密勒码用10和01表示信号1,用00和11表示信号0。2) 两个信源码之间对应的密勒码没有跳变,也就是说当前码的编码到底是哪一个,需要考虑前一个码的情况。综合以上两条,设计出以下判断逻辑:信号输入为DATA,简称D。信号输入时刻前一位为Sav1简写为S1,对应的密勒码输出为Sav2简写为S2。 输出为Do。程序流程图如图2。图2. VHDL穷举法程序流程图即当前输入信号D有0,1两种可能;前一密勒输出有00,11,01,10四种情况;综合起来就是8种情况,以D及S2为条件因子,作为顺序语句的条件。对应此逻辑以“IF THEN ELSIF” 语句编写了如下程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity 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; begin if(en=0) then encodeout=00; else if(clk event and clk=0)then if(datain=1 and sav1=1 and sav2=01) then encodeout=10; sav2:=10; sav1:=1; elsif(datain=1 and sav1=1 and sav2=10) then encodeout=01; sav2:=01; sav1:=1; elsif(datain=0 and sav1=1 and sav2=01) then encodeout=11; sav2:=11; sav1:=0; elsif(datain=0 and sav1=1 and sav2=10) then encodeout=00; sav2:=00; sav1:=0; elsif(datain=0 and sav1=0 and sav2=00) then encodeout=11; sav2:=11; sav1:=0; elsif(datain=0 and sav1=0 and sav2=11) then encodeout=00; sav2:=11; sav1:=0; elsif(datain=1 and sav1=0 and sav2=00) then encodeout=01; sav2:=01; sav1:=1; elsif(datain=1 and sav1=0 and sav2=11) then encodeout=10; sav2:=10; sav1:=1; end if; end if; end if; end process;end func; 同理,逆向采用穷举法,可以实现解码。以下为方案一的解码VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity miller_decoder isport(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 isbegin process(en,clk,encodein) begin if(en=0) then decodeout=0; else if(clk event and clk=0) then if(encodein=11 or encodein=00) then decodeout=0; elsif(encodein=10 or encodein=01) then decodeout=1; end if; end if; end if; end process;end func;3. 2 方案二方案二的核心是利用数据选择器与移位寄存器实现密勒码的编解码。其设计思路如下:编码时:1) 利用简单门电路和数据选择器实现BPH码编码。2) 使用BPH码触发双稳态电路,生成密勒码。解码时:1) 利用密勒码的性质,01,10表示1,其两位异或得到输出。2) 利用移位寄存器将串行的01,10,00,11,变为并行。3) 再利用BS信号两位异或,即得到译码。电路图如下:图3. 方案二电路原理图3. 3方案三方案三是利用VHDL编程,实现BPH码的编码,然后将其输出接入双稳态电路,触发产生密勒码。BPH码的编码规则取以01表示0,10表示1。因比较简单所以省略了逻辑图,直接给出编码程序。程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY double ISPORT(clk,clr,codein:IN STD_LOGIC; codeout:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); count:buffer STD_LOGIC );END double;ARCHITECTURE behav OF double ISBEGINPROCESS(clk,clr) BEGINIF(RISING_EDGE(clk) THENIF(clr=1) THENcodeout codeout=10; count codeout=01;END CASE;END IF;END IF;END PROCESS ;END behav;对应的双稳态电路,可以采用D触发器、T触发器,锁存器,其原理大同小异,这里给出D触发器双稳态电路的电路图(图4)。图4. D触发器构成的双稳态电路解码同样采用VHDL解码,与方案一种的VHDL解码方式相同,这里不再赘述。本方案的特点是在编码的过程将VHDL文本输入设计与原理图设计结合了起来,避免了复杂的纯VHDL编程,相当于方案一、二的各取所长。3. 4方案四方案四是经搜集、整理、总结所有资料后总结出来的较为可行的方案,其核心是以NRZ码与BS信号异或生成BPH,然后输入以D触发器构成的双稳态电路产生密勒码。解码电路由3个D触发器构成。方案4中原理大致如下:编码时:1) 利用输入数据NRZ码与位同步信号BS异或,得到BPH码。2) BPH码触发双稳态电路,生成密勒码。译码时:1) 将输出的密勒码分为两路M1,M2,分别输入两个D触发器D1,D2的D端。2) 将BS信号送入D1,取反后送入D2。因为D触发器对上升沿有效,而密勒码的无论上跳还是下跳都对应着同步信号及输出信号。如此是为了将密勒码的跳变沿全部采集,D1采集上升跳变,D2采集下降跳变。3) 将D1,D2的输出端异或,这样既可以消除D1,D2在两路反相BS的作用下输出的OUT1,OUT2的重合无效部分,同时也把两路的不同采样整合到了一起。4) 此时将异或后的输出OUT3做为最后一个D触发器的D3输入,其时钟接BS对信号采样,即得到密勒码解调输出。编码、解码电路图如图5(MAX+PLUS2绘制)。图5. 方案四编解码电路图利用方案四中的编码设计,在波形编辑器中仿真得到图6。图6. 方案四波形仿真图其中MMILLER为译码输出,END TIME 设置为15us,时钟周期为200ns。3. 5方案五仔细分析方案四的原理,我们不难发现有很多地方可以修改。在方案四的基础上,分别对编码、译码电路做改动。改动如下:1) 输入处直接改用异或门,替代3个逻辑门,减小延时。2) 方案四中,译码电路采用了3个D触发器。经过分析我们知道,D1,D2是用来分别采样密勒码的上升沿和下跳沿,并经过异或门将两路信号整合。我们分析可以知道,密勒码本身就包含了上跳沿的有效信息,所以D1触发器是不必要。直接保留D2,将D2的输出与密勒码输出两者异或,整合,就可以得到最。终使用D3采样的信号。改进后的实际电路图如图7。图7. 方案五编解码电路图根据方案五,在MAX+PLUS2中的波形编辑器中仿真,得到图8。图8. 方案五波形仿真图其中MMILLER为译码输出,NRZ为信号输入,由图可知电路很好的实现了译码,并且延迟不超过2个码元宽度。3.6 方案比较综合上述五种方案,我们不难发现其各自的特点。对方案一而言,它的优点思考量较少,容易理解,容易设计。但是,由于密勒码编解码中出现的状态不算特别多,只有8种,所以采取穷举法也不是很难。但是如果是一个大型的,逻辑状态比较多的设计,那么再采用穷举就不一定合适了,这是本方案最大缺陷。同时,此种设计还需要设置编码时的初始条件,因此也麻烦了很多。所以作为实际操作方案并不太合适。对于方案二,它的编码译码,理解起来很容易。同样是因为本设计的逻辑关系较为简单,而且使用到的器件也不多。但是可以推想在实际操作中,由于各个器件的延时,时钟的控制是否精准,都对我们的输出会带来很多影响,所以这个系统并不十分可靠。也就是说很可能得不到理想中的波形。而且,方案二的仿真也是比较困难的。对于方案三,可以说是一种比较好的方法,利用VHDL语言根据总结出的编码时逻辑特点编程,利用原理图输入法解决VHDL复杂的器件描述,两者各取其长,颇有编程时模块化设计的思想的应用。当然了,有利也有弊,在思考上省了事就得在操作中多花时间,本方案的一个弊端就是在软件操作时,因为多种设计方法并用于同一个项目,所以要达到设计目的操作就麻烦了很多。为了使数据在编程和器件之间交换,可能还要引入信号,作为两者的中继。另外,在调试的时候如果出错,查明原因也要复杂很多。对于方案四,方案四的逻辑设计是非常巧妙的,参照搜集的资料可以知道方案四及其改进的多种方案就是应用于实际的密勒码编解码方法。该方案采用的器件较为简单,它占用的逻辑单元较少,不易出错,巧妙的设计在理解上自然就要稍微复杂一点,尤其是译码部分。由于采用的器件较少,器件延时不大,时钟信号稳定输入各个D触发器,系统也比较稳定,本方案很适合实际的烧写。对于方案五,大抵的原理与方案四相同,其主要特点时减少了方案四种的冗余,更合理的利用了各种器件。比如减少了门电路数量,减少了D触发器的数量,减少了延时。综上所述,以上五种方案里,方案四、五比较适合实际烧写。4 CPLD时序和功能仿真参照以上五种方案的对比,我初步选定采用方案一、四、五作为实际烧写的实现方案。然后在对三种方案进行编译的过程中,程序设计存在报错较多,所以最终采用的是方案四和方案五。对于方案四和方案五,在选定了设计器件为EPM7128SLC84-15后锁定管脚重新进行编译,编译成功。此时,我们利用MAX+PLUS2软件对两种方案进行时序和功能仿真。4.1实际采用方案一的CPLD时序和功能仿真对于方案四,最终采用的电路图如图9。图9. 方案四实际烧写电路图分析仿真波形,方案四的电路可以成功仿真出密勒码的编码、解码功能。在此设定的码元周期为400ns,仿真时间END TIME = 10us,仿真了3X8=24位的波形。根据方案四的设计思路,以NRZ码与BS码异或得到BPH码,再以BPH码下跳沿触发双稳态电路生成密勒码。解码时对密勒的上下跳变采样,最终还原成NRZ码。在此我们分别采用了3组8位为一循环共24位一周期的输入信号。得到了以下3幅仿真时序波形图(图10-a,10-b,10-c)。图10-a. 时序仿真波形(输入信号1101 0100) 分析波形可知,BPH码编码为:10 10 01 10 01 10 01 01。即BPH码编码正确。对应的密勒码编码为:01 10 00 01 11 10 00 11。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。图10-b. 时序仿真波形(输入信号0010 1011)分析波形可知,BPH码编码为:01 01 10 01 10 01 10 10。即BPH码编码正确。对应的密勒码编码为:00 11 10 00 01 11 10 01。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。图10-c. 时序仿真波形(输入信号0011 1011) 分析波形可知,BPH码编码为:01 01 10 10 10 01 10 10。即BPH码编码正确。对应的密勒码编码为:00 11 10 01 10 00 01 101。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。4.2实际采用方案二的CPLD时序和功能仿真对于方案五,最终采用的电路图如图11。图11. 方案五实际烧写电路图仔细分析方案四的原理,我们不难发现有很多地方可以修改。在方案四的基础上,分别对编码、译码电路做改动即得到方案五。改动如下:1) 输入处直接改用异或门,替代3个逻辑门,减小延时。2) 方案四中,译码电路采用了3个D触发器。经过分析我们知道,D1,D2是用来分别采样密勒码的上升沿和下跳沿,并经过异或门将两路信号整合。我们分析可以知道,密勒码本身就包含了上跳沿的有效信息,所以D1触发器是不必要。直接保留D2,将D2的输出与密勒码输出两者异或,整合,就可以得到最。终使用D3采样的信号。在此设定的码元周期为400ns,仿真时间END TIME = 10us,仿真了3X8=24位的波形。根据方案五的设计思路,以NRZ码与BS码异或得到BPH码,再以BPH码下跳沿触发双稳态电路生成密勒码。解码时对密勒的上下跳变采样,最终还原成NRZ码。在此我们分别采用了3组8位为一循环共24位一周期的输入信号。得到了以下3幅仿真时序波形图(图12-a,12-b.12-c)。图12-a. 时序仿真波形(输入信号1111 0000) 分析波形可知,BPH码编码为:10 10 10 10 01 01 01 01。即BPH码编码正确。对应的密勒码编码为:01 10 01 10 00 11 00 11。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。图12-b. 时序仿真波形(输入信号1101 0100)分析波形可知,BPH码编码为:10 10 01 10 01 10 01 01。即BPH码编码正确。对应的密勒码编码为:01 10 00 01 11 10 00 11。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。图12-c. 时序仿真波形(输入信号0011 1011) 分析波形可知,BPH码编码为:01 01 10 10 10 01 10 10。即BPH码编码正确。对应的密勒码编码为:00 11 10 01 10 00 01 10。密勒码编码正确。观察波形可知,BPH码下跳沿对应着密勒码的跳变沿,故经过仿真验证后本设计符合设计思路。综上可知,以上两种方案都可以成功的实现密勒码的编解码过程,且符合本次课程设计所要求的技术指标。故仿真项目校验成功。5 硬件电路调试对于以上两种实现方案,经过时序仿真后,分别进行了管脚锁定以及编译。之后在通信原理实验箱上成功进行了烧写。烧写成功如图13所示。图13. 烧写成功显示对于实现方案一具体的引脚设定如下:NRZ35,BS33,BPH-39,MILLER-37, MMILLER(解码输出)-41(图14)。图14. 实现方案一管脚锁定图经编译成功后在实验箱上进行测试。将信号源电路打开,烧写用模块打开,确定合适的分频后,将信号源BS,2BS,NRZ,FS分别接入测试模块。用示波器测试各点波形,得到的波形符合理想情况。BPH编码正常,密勒码编码正常,密勒码解码正常,实际的延迟小于2位。可知方案四硬件调试后无误,设计成功。对于实现方案二,具体的管脚锁定如下: NRZ35,BS33,2BS36,BPH-39,MILLER-37,OMILLER-41(图15)。图15. 实现方案二管脚锁定图同样,实现方案二经过编译后在实验箱模块上烧写,再经验证,BPH码,密勒码的生成,密勒码的解码都很理想,实际延迟小于2位。故方案五硬件调试后无误,方案五设计成功。详尽的硬件连接,调试,各点测试波形及其分析参见附录2 安装调试实验报告。6 结论本次课程设计的内容是密勒码的码型变换,对应的有3个方面的技术要求,并且设计既能够在软件中仿真,也能在硬件上实现仿真的电路功能。经过调整修改后,经过实际的功能检测,在合适的基带码元速率下,实现方案一、二的编码电路可以按照密勒码编码规则成功的对密勒码进行编码。同样,两个方案的解码电路也能顺利的完成解码。对应本次的课程设计技术指标,参照由2010年1月25日在实验室烧写后的实际的测试数据。本次课程设计中五种设计方案中有两种得到了实际验证,并且是符合设计要求的。首先,实现方案一、二的电路经仿真以及实际测试可知,都能成功完成密勒码的编解码,故满足技术要求中第一条。其次,经过仿真以及调试,每种电路都给予了输入3种不同的24位周期信号,对应的都得到了理想的解码,故满足技术要求中第二条。最后,两种电路的解码延时都不超过一个码元宽度,满足技术要求中第三条。综上,本次的课程设计成功的达到了技术指标中的各项要求,即本密勒码变换设计是成功的。7 心得体会历经一个星期的准备,两个星期的设计编译烧写调试以及撰写报告,共计三个星期的专业课程设计2(通信原理)终于接近了尾声。想这三个星期,虽然有点累,收获还是不少。首先,我最深的感受是整个设计从无到有的这个过程,以及它带来的面对一个问题,积极的去寻找解决办法的心理体验。我相信很多时候,我们面临的都不是稍微想想就能解决的问题,甚至有些难题是一个人很难完成的。俗话说“多为成功找方法”,这种时候等没有用,急没有用。我们不妨静下来理清思路,把大问题细化,分条梳理,整合自己的时间、精力等资源,搜集信息,然后一步一步的去做。比如这次课程设计,根据要求,我们来找难点。CPLD在数电中学的很简略,几乎就只有个印象,这是第一个大问题。密勒码的编码、解码规则,对其波形做一个深入的分析,这是要分析的第二问题。在设计过程中,我们要用到软件仿真,软件的操作就是第三个问题。这三个问题解决了,基本上我们就可以动手去做了。于是,针对以上三个完成本设计的必备因素,我们先广泛的搜集信息,确定哪些资料比较适合对应这次课程设计进行自学,先选准方向。在此,我最终决定了图书馆借来的两本介绍CPLD器件的参考书。它们一本包含了CPLD器件底层原理,器件类型及特点,VHDL语言,以及一些应用实例。另外一本则重点介绍了MAX+PLUS2的软件操作。同时结合一些网络上搜集的视频资料,那些需要知道的知识我在一个星期内都解决了。同时,在自学的过程中也诞生了不少关于这次课程设计的灵感,而且最终在这些想法之上,也顺利的得出了报告中的五种设计方案。其次,在调试的过程中也出现了意外的情况,比如密勒码的编码1到0之间究竟跳变不跳变,这一点在很多文献上都写得模棱两可,但经过实际测试,发现它是不影响密勒码解码的。在此之前,我在软件中仿真却没有出现这个情况。可知理想情况即使分析的很全面,实际情况仍然可能会有出入,在这里我们努力尝试了去解决这个问题,在这个过程中我们对CPLD的设计也有了更深刻的理解。最后,我想这次的课程设计也是一种锻炼自己学习能力的过程,体现了我们自主学习,自主分析,自我督促的态度。这一过程弥补了被动教学的不足,对我们的个人能力的提升也有很大的作用。好了,课程设计即将告一段落,学到的东西不少,体会也挺深,毕竟这是我进校以来花的时间最多的一次课设。也许技术会过时,会被淘汰,不过我相信我们自主解决问题的精神会带领我们继续攻克下一个生活中的挑战。在此也向指导老师致谢,感谢老师在我有疑问时给予的细心解答,春节将近,祝您身体健康,阖家安泰。8 参考文献1 樊昌信,曹丽娜.通信原地(第6版).国防工业出版社,2009年2月.2 廖裕平,陆瑞强.CPLD数字电路设计.清华大学出版社,2001年10月. 3 朱恭生,胡冬琴,曹丽娜.FPGA/CPLD系统设计与应用案例.中国电力出版社,2009年7月第1版.4 John F.Wakerly.Digital Design Principles and Practices.机械工业出版社,2003年8月第1版.5 刘雁飞,吴进.基于的曼彻斯特编译码实现.西安邮电学院学报,2003年1月第8卷第1期.6 沈春,李释华.曼彻斯特码编码与解码硬件实现.电子测量技术,2002年第6期.7邱祖江,郭亚炜,杨莲兴.一种改进Miller编解码的实现方法.微电子学,2000年6月第30卷第6期.附录:1 安装调试实验报告1.1 安装调试过程记录本部分将详细阐述整个实验过程中我的所有操作过程。在成功完成实验方案的编译后,我得到了两个对应的.pof烧写用文件。在实验室实验箱上进行烧写。整个操作过程如下:1) 首先接好烧写用实验模块的硬件烧写线路,在确认连接无误后(凹凸对准),准备开始烧写。2) 然后操作MAX+PLUS2 软件,在“Hardware Type”下拉框中选择“ByteBlasterMV” 同时检查下载电缆一端插入LPT1(并行口,打印机口),另一端插入目标板,打开目标板电源。3) 从“Max+plusII”菜单下选择“Programmer”,开始烧写。实现方案一烧写成功。4) 关闭实验模块电源,拔掉下载线,将实验箱转移到合适位置后准备开始检测芯片的逻辑功能。在检测时用到了双踪示波器一台,探头线,导线若干。5) 将通信原理实验箱上的信号源模块的BS,FS,2BS,NRZ用导线对应接入测试模块的BS,FS,2BS,NRZ接口,在信号源处选择合适的分频(实际采用分频后约500HZ的码元速率),将24位NRZ码设置为11000000 11000000 11000000,为便于观察和检测采用了简单的周期性波形做初步测试。6) 将探头线接上双踪示波器的X1,X2两路输入。探头部分小夹子接测试模块的GND,减小干扰。7) 两个探头依次接测试模块上的BS,2BS,NRZ,BPH,RZ,ORZ,调整示波器,观察对比其波形并记录。8) 方案一成功测试完毕。9) 重复以上过程,对实验方案二进行测试,同样成功测试完毕。10)对方案一、二进行实践后,再对VHDL语言实现方案进行测试,由于顶层文件编译操作频繁出错,故最终在本次测试中放弃。波形记录参见1.2测试波形记录及分析。1.2 测试波形记录及分析对于实现方案一,实际测得的波形如下,对应图片的内容参见表1实现方案一波形序号表。表1实现方案一波形序号表探头1探头2对应编号探头1探头2对应编号2BSBS1-1BPHRZ1-2NRZBPH1-3NRZRZ1-4NRZORZ1-5BPHORZ1-6RZORZ1-7RZ2BS1-8RZBS1-9BPH2BS1-10ORZ2BS1-11BS1-12 1-1. 2BS-BS 波形对比 1-2. BPH-RZ 波形对比 1-3. NRZ-BPH 波形对比 1-4.NRZ-RZ 波形对比 1-5. NRZ-ORZ 波形对比 1-6. BPH-ORZ 波形对比1-7. RZ-ORZ 波形对比 1-8. RZ-2BS 波形对比1-9. RZ-BS 波形对比 1-10. BPH-2BS 波形对比1-11. ORZ-2BS 波形对比 1-12. ORZ-BS 波形对比 其中RZ引脚对应密勒码编码输出,ORZ引脚对应密勒码解码输出。分析实测波形图可知,由图1-3可知,3个周期24位NRZ码(11000000)对应BPH码编码成功;由图1-2可知,BPH码下降沿触发密勒码跳变沿,即密勒码编码成功(但由1到0存在不影响译码的额外跳变);由图1-5可知,密勒码解码输出对应NRZ输入完全正确,且延时小于2个码元时间。综上,实现方案一成功的实现了密勒码的编码解码过程,且符合技术要求。对于实现方案二,实际测得的波形如下,对应图片的内容参见表2实现方案二波形序号表。表2实现方案二波形序号表探头1探头2对应编号探头1探头2对应编号BSNRZ2-1BSBPH2-2BSRZ2-3NRZBPH2-4NRZRZ2-5BPHRZ2-6BPHORZ2-7RZORZ2-8其中RZ引脚对应密勒码编码输出,ORZ引脚对应密勒码解码输出。 2-1. BS-NRZ 波形对比 2-2. BS-BPH 波形对比2-3. BS-RZ 波形对比 2-4. NRZ-BPH 波形对比2-5.BPH - RZ 波形对比 2-6. NRZ-ORZ 波形对比 2-7. BPH-ORZ 波形对比 2-8. RZ-ORZ 波形对比分析实测波形图可知,由图2-4可知,3个周期24位NRZ码(11000000)对应BPH码编码成功;由图2-5可知,BPH码下降沿触发密勒码跳变沿,即密勒码编码成功(但由1到0存在不影响译码的额外跳变);由图2-6可知,密勒码解码输出对应NRZ输入完全正确,且延时小于2个码元时间。综上,实现方案一成功的实现了密勒码的编码解码过程,且符合技术要求。1.3 调试报告小结 从12:30到4:30,历时4个小时的硬件电路调试终于结束了,在整个调试过程中,由于之前准备比较充分没有出现大的问题,所以说是比较顺利的。本次设计中有我用了其中三种来调试,两种原理图输入的设计方法都基本上成功了,唯一遗憾的是VHDL语言的设计方案没有成功烧写,经分析应该是对语言中的一些细节和软件操作还是不够熟练所造成。可见原理图设计要比语言设计更容易上手,VHDL语言设计虽然没有完成成功但在学习的过程中收获也不小,至少看得懂不是特别复杂的语言了。本次调试中唯一的小波折就是两种设计方案中密勒码的实测波形和仿真有一些小的不同,就是1到0时存在一个额外的跳变,经过分析,调整,测试,发现这个意外和我们的时钟信号时0先还是1先无关,和一些外围的电路的参数无关,和码元速率的大小无关。最终经过检测,发现这个额外跳变是不影响译码的。所以总的来说,两个设计还是成功的。另外通过这次调试,锻炼了我们动手能力,仔细观察的能力,以及针对问题求解的过程体验,其收获不小。2 CPLD设计的原理图以下分别是实现方案一、二的原理大图。2.1 实现方案一原理图2.2 实现方案二原理大图3 思考题1)在利用CPLD进行基带码型变换的过程中,有哪些因素影响延时?应如何减小设计延时?答:经过分析以及搜集资料可知影响延迟的因素有:(1) 各个逻辑器件(如非门,异或门等)由于本身的传输延迟带来的系统延迟。(2)由于在信号提取之前,提取信号上升沿或者下降沿到达之前有一段“空白”,因此带来了一定的延迟。对应的设计改善方案为:(1)在设计电路时精简电路,尽量用最少的元器件实现所要求的功能。(2)方案中可以用频率较高的提取信号,这样可以在一定程度上减少延迟时间。(3)综合考虑整体延时合理分配器件位置,减少延迟时间。2)本设计需要占用多少个CPLD的逻辑单元? 答:由MAX+PLUS2 中自动生成的.rpt文件中有以下报告,实现方案一:Total logic cells used: 6/128 (4%);实现方案二:Total logic cells used:6/128 (4%)。即两种实现方案都占用了CPLD中的6个逻辑单元。3)本设计除了用原理图输入的方式来实现电路外,还可以采用VHDL或者Verilog HDL等其他硬件描述语言来实现,尝试用硬件描述语言完成本设计的功能。 答:VHDL程序实现方案如设计方案一。ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity miller_encoder isport(datain :in std_logic; en :in std_logic; clk :in std_logic; encodeout:out std_logic_vector(1 d

温馨提示

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

评论

0/150

提交评论