数字通信原理课程设计-基于FPGA的HDB3的编译码系统设计_第1页
数字通信原理课程设计-基于FPGA的HDB3的编译码系统设计_第2页
数字通信原理课程设计-基于FPGA的HDB3的编译码系统设计_第3页
数字通信原理课程设计-基于FPGA的HDB3的编译码系统设计_第4页
数字通信原理课程设计-基于FPGA的HDB3的编译码系统设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、数字通信原理课程设计说明书 基于FPGA的HDB3的编译码系统设计学 院: 学生姓名: 指导教师:专 业:班 级: 学 号: 完成时间:摘要一般由信源发出的数字基带信号含有丰富的低频分量, 甚至直流分量, 这些信号往往不 宜直接用于传输, 易产生码间干扰进而直接影响传输的可靠性, 因而要对其进行编码以便传 输。FPGA现场可编程门阵列)作为一种新兴的可编程逻辑器件,具有高集成度、成本低、可 靠性高、开发周期短、可重复编程等特点,能将编解码电路集成在一片芯片上。HDB3码(三阶高密度双极性码 )具有解码规则简单,无直流,低频成份少,可打破长连0 和提取同步方便等优点。基于上述情况,本文提出了基于

2、FPGA的HDB3编译码设计方案。本文先对HDB3码、VHDL语言、FPGA器件和EDA技术进行简述。然后介绍 HDB3码的编译码原理以及其特点。最后,对HDB3码的编译原理进行重点分析,并且以VHDL语言为主,分别对编码器部分和译码器部分的具体实现方法进行说明,给出具体设计的思考方案和程序流程图, 并对设计方案进行软件仿真, 同时给出仿真结果并对其进行分析, 证明设计方 案的正确性。关键词:HDB3码;FPGA EDA; VHDL;编译码目录1 绪论11.1引言11.2EDA技术11.3FPGA芯片 21.4VHDL硬件描述语言22 HDB3码的介绍和编译码规则32.1选择HDB3码的理由

3、32.2HDB3码的介绍 32.2.1单极性不归零码 (NRZ-L)32.2.2双极性不归零码 (Bi-NRZ)32.2.3交替传号极性码 (AMI)32.2.4三阶高密度双极性码 (HDB3) 42.3 HDB3 的编译码规则42.3.1 单极性不归零码(NRZ-L的编码规则42.3.2 AMI 码的编码规则4233 HDB3码的编译码规则53 HDB3编码器的FPGA实现 63.1 HDB3编码的设计思路 63.2 HDB3编码的 VHDL语言设计63.3 HDB3编码的VHDL程序 73.4 HDB3编码的仿真波形 74 HDB3译码器的FPGA实现 94.1 HDB3码译码的设计思路

4、94.2 HDB3译码的VHDL语言设计94.3 HDB3译码的VHDL程序 94.4 HDB3译码的仿真波形 94.5 HDB3编译码器测试 104.5.1 HDB3编码器和译码器在顶层文件连接104.5.2 HDB3编译码器的仿真波形11结束语12参考文献 13致 谢14附 录15附录一HDB3编码程序15附录二HDB3译码程序181 绪论1.1 引言信号在信道的传输过程中, 如何才能保证信号失真最小且可靠的传输是研究人员一致的 目标。一个完整的通讯系统,当信号经过一定距离的传送后,总要受到干扰、移相和衰减, 因而必须要对数字信号进行再生。从信源输出的信号一般是 0、两种状态的单极性 NR

5、Z码, 在进行数字信号传输时, 必须考虑到传输信道的特点, 将信息比特变换为适合于信道传输的 数字信号,即进行线路编码。由模拟信源转换而来的 PCM 信号,或离散信源产生的符号序 列,以及数字源发出的代码,从广义角度,我们均称其为PCM编码.在PCM的基带传输系统中, 存在着平衡电路和不平衡电路的变换, 及远端的供电电路, 这些电路中都存在着变压 器,因而含有丰富的直流和低频的基带信号, 这些信号就不适宜在信道中传输, 否则会造成 正常信号的严重畸变。 为了使得终端机编码输出的由0和I组成的单极性数码流适应于传输信道的特性,还必须经过码型变换,即对信号进行编码。选择码型时一般应该考虑几方面的因

6、素, 比如从线路码流中容易提取时钟, 线路码型中 不宜含有直流分量, 高、低频成分应尽量减少,设备应简单, 易于实现码型变换和码型反变 换的调试等。基于此,人们又在考虑能不能有一种更好的方法来弥补这一不足之处。FPGA具有编程灵活的特点, 能够在不大改动系统平台的情况下具有改变系统特性和行为的灵活性, 因而能完成对实时信号的处理;同时FPGA作为一种新兴的高密度可编程逻辑器件,可以将编码与解码电路集成在一片FPGA芯片上,它的体积小,其结果大大提高了系统的集成度。HDB3码的具有其译码规则简单,便于时钟的提取,无直流分量,实现的电路也远比采用曼FPGA芯片上实现HDB3编译彻斯特编码方式简单等

7、优点。本文主要就是要研究如何在一片 码的设计。1.2 EDA技术EDA(Electronic Design Automation) 即电子设计自动化,它是指利用计算机来完成电子系 统的设计。EDA技术研究的对象是电子设计的全过程,有系统级、电路级和物理级三个层次的设计。其涉及的电子系统是指从低频、高频到微波,从线性到非线性,从模拟到数字,从 通用集成电路到专用集成电路构造的电子系统,因此,EDA技术研究的范畴相当广泛。从专用集成电路(ASIC开发与应用角度看,EDA软件系统应当包含以下子模块:设计输入子模块、 设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块等。在现代电子设计技

8、术领域种, EDA技术已成为主要的设计手段。 EDA技术可把数字通信 技术, 微电子技术和现在电子设计自动技术结合起来, 实现了硬件设计软件化, 加速了数字 通信系统设计的效率,降低了设计成本。1.3 FPGA 芯片典型的 FPGA 它通常包含三类编程资源:可编程逻辑功能块CLB( Configurable LogicBlocks),可编程 I/O 模块 IOB (I nput/Output Block)和可编程内部互连PI( ProgrammableInterconnect )。 CLB 是实现逻辑设计的基本单元,它们排列为阵列,散布于整个芯片。CLB的功能很强,不仅实现了逻辑函数,还可配置

9、为 RAM 等复杂形式。 IOB 作为芯片上逻辑与 外部封装引脚的接口, 通常围绕着阵列芯片的周围。PI包括各种长度的连线和一些可编程连接开关,通过它们把各个 CLB IOB按设计要求连接起来,构成特定功能的电路。FPGA器件的功能由逻辑结构的配置数据决定,工作时,配置数据存放于片内的SRAM或熔丝上。使用 SRAM的FPGA器件,工作前需从芯片外部加载配置数据。配置数据可存储 于片外的EPROM或其他存储体上。用户可控制加载过程,在现场修改器件逻辑功能,即现 场可编程。1.4 VHDL硬件描述语言VHDL 是一种超高速集成电路硬件描述语言 , 它提供了一个标准的 , 从逻辑门级到数字 系统级

10、的各抽象级描述硬件的标准文本 , 提供了精确的语法和语义 , 为集成电路及系统设计 提供了形式化、 层次化和规范化的描述 , 不仅能有效地用于 CAD 进行模拟 , 而且可作为一 种精确的自然语言用于设计者之间的设计交流 , 它允许设计者在语言的基本作用范畴之外 表示信息 ,尽管最初的工具在某些级 ( 例如开关级 ) 不能提供模拟。 由于没有限制设计者必须 拥有特殊的硬件技术或设计方法 , 该语言在工业上有着广泛的用途 , 它被喻为硬件描述语言 中的 FORTRAN, 其性能是其它硬件描述语言无法媲美的。由此,VHSIC 的硬件描述语言(VHSIC HDL即VHDL便诞生了,并很快被美国电气和

11、电子工程师协会所承认。VHDL语言描述电路的行为,具有很强的电路功能描述能力,适用于大规模电子系统的设计。2 HDB3码的介绍和编译码规则2.1选择HDB3码的理由发送信号设计中一个主要的问题是确定信号的线路编码类型,考虑对直流或低频受限信道,线路编码应不含直流分量; 码型变换要保证透明传输,唯一可译, 同时可使两端用户方 便发送并正确接收原编码序列, 而无觉察中间环节的形式转换, 即码型选择仅是传输的中间 过程; 便于从接收码流中提取定时信号; 所选码型以及形成波形, 应有较大能量, 以提高自 身抗噪声及干扰的能力;码型具有一定检错能力,能减少误码扩散。所以选择HDB3码。2.2 HDB3码

12、的介绍HDB3码是由基带信号 NRZ码对应的传输码 AMI码改进而来。为了解 HDB3码的编码规 则,我们需要先了解基带信号NRZ码和传输码AMI码。2.2.1 单极性不归零码 (NRZ-L)单极性不归零码 (UnipolarNonreturn-to-zero) 的 0、l 码与基带信号的 0 电位及正电位对应, 脉冲无间隔,只适于短距离传输。缺点:含有直流(DC分量;接收判决门限为接收电平的一半,门限不稳,判决易错;不 便直接从接收码序列中提取同步信号;传输时信道一端需接地(不平衡传输 )。2.2.2 双极性不归零码 (Bi-NRZ)双极性码的 0、l 码与基带信号的负、正电位对应。与单极性

13、相比,双极性不归零码 (Bipolar-NRZ)优点为:从统计平均看,I、0各半,不含直流分量;两种码元极性相反,接收判决电平为0,稳定性高;可在电缆等线路不接地传送(平衡传输)。因此,Bi-NRZ码比较常用,更适合于速度不高的比特流传输,将单极性转换为双极性也较简单。缺点:不易从中直接提取同步信息;I、 0 不等概率时仍有直流分量。2.2.3 交替传号极性码 (AMI)AMI 码(Alternative Mark In versed En codi ng)又称双极性方式码(Bipolar En codi ng)、平衡对 称码或传号交替反转码, 它属于单极性码的变型, 当遇0码时为0电平,当遇

14、I码时则交替 转换极性,这样成为确保正负极性个数相等的 伪三进制 码。优点:确保无直流,零频附近的低频分量小,便于变量器耦合匹配;有一定检错能力, 当发生1位误码时,可按 AMI规则发现错误,以 ARQ纠错;接收后只要全波整流,则变为单极性码,如果它是 AMI-RZ型,可直接提取同步。缺点:码流中当连 0过多时,同步不易提取。2.2.4 三阶高密度双极性码 (HDB3)这种码型属于伪三进制码。HDB3中3阶”的含义是限制连0个数不超过3位.为减少连0 数,有的做法采取 扰码,按一定规则将多个连 0分散,尽量使码序列随机化。有效 的办法是采用 HDBn(n=l, 2, 3),一般多使用 n=3。

15、优点: 译码规则简单、 无直流、 低频成份少、 频带较窄、 可打破长连 0,提取同步方便、 不受信源统计特性的影响。2.3 HDB3的编译码规则该设计的基带信号码型为单极性不归零码(NRZ-L),传输码型为交替传号极性码 (AMI)改进的三阶高密度双极性码 (HDB3),所以介绍 HDB3的编译码原理前先介绍单极性不归零码 (NRZ-L和传交替传号极性码(AMI)的编译码规则。2.3.1 单极性不归零码(NRZ-L的编码规则单极性NRZ码在表示一个码元时, 二进制符号1和0分别对应基带信号的正电平和零 电平,在整个码元持续时间,电平保持不变。如图 1 所示。图1 单极性NRZ-L码2.3.2

16、AMI 码的编码规则AMI码又称为平衡对称码。这种码的编码规则是:把码元序列中的一1码变为极性交替变化的传输码 1、 -1、 1、 -1、 .,而码元序列中的 0码保持不变。如图 2所示。图 2 AMI 码由 AMI 码的编码规则可以看出,由于 1 和-1 各占一半,因此,这种码中无直流分量, 且其低频和高频分量也较少,信号的能量主要集中在 2Tf 处,其中 Tf 为码元速率。此外, AMI 码编码过程中,将一个二进制符号变成了一个三进制符号,即这种码脉冲有三种电平, 因此我们把这种码称为伪三电平码,也称为 1B/1T 码型。 AMI 码除了上述特点外,还有编译 码电路简单及便于观察误码情况等

17、优点。但是 AMI 码有一个重要的缺陷,就是当码元序列 中出现长连 0 时,会造成提取定时信号的困难, 因而实际系统中常采用 AMI 码的改进型 HDB3 码。2.3.3 HDB3 码的编译码规则HDB3是三阶高密度双极性码,它是为了克服传输波形中出现长连0码情况而设计的AMI码的改进型。HDB3码的编码规则是:1、把码元序列进行 AMI 编码,然后去检查 AMI 码中连 0的个数, 如果没有四个以上 (包 括四个)连0串时,则这时的 AMI码就是HDB3码。2、如果出现四个以上连 0 串时,则将每 4个连 0 小段的第 4个 0 变成与其前一个非 0 码(1或-1 )相同的码。显然,这个码破

18、坏了 +极性交替反转的规则,因而称其为破坏码, 用符号 V 表示。3、为了使附加 V 码后的序列中仍不含直流分量,必须保证相邻的 V 码极性交替。这一 点,当相邻的 V码之间有奇数个非 0码时,是能得到保证的;但当相邻的 V码之间有偶数 个非0码时,则得不到保证。这时再将该连 0小段中的第1个0变成B或-B,B的极性与其 前一个非0码相反,并让后面的非零码从 V码后开始再极性交替变化。NRZ 码: 1000010 0 0 0110 0 0 011AMI 码: -1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1HDB3 码:-1 0 0 0 -V +1 0 0 0

19、+V-1 +1-B 0 0 V +1-1虽然 HDB3 码的编码规则比较复杂, 但译码却比较简单。 从编码过程中可以看出, 每一 个 V 码总是与其前一个非 0 码(包括 B 码在内)同极性,因此从收到的码序列中可以很容 易地找到破坏点 V 码,于是可断定 V 码及其前 3 个码都为 0 码,再将所有的 -1 变为 1 后, 便可恢复原始信息代码。HDB3码的特点是明显的,它既保留AMI码无直流分量,便于直接传输的优点,又克服了长连0串(连0的个数最多3个)的出现,HDB3码的频谱中既消除了直流和甚低频分量, 又消除了方波中的高频分量,非常适合基带传输系统的特性要求。因此,HDB3码是目前实际

20、系统中应用最广泛的码型。3HDB3编码器的FPGA实现3.1 HDB3编码的设计思路在数字基带传输系统中,从信号源输出的信号一般是用0和1两种状态表示的单极性NRZ码。因此看来,HDB3编码器的主要转换对象就是NRZ码。由HDB3码的编码规则可知,编码器的主要工作就是按 AMI码对信号进行编码, 判断是否应该加入破坏符 V,V加入后是 否应该补B,由于需要检查到四位连 0才能进行加V补B的操作,这样用于存放数据的移 位寄存器就不能少。这个设计的难点在于加V和补B的判决。HDB3编码设计框图如图 3所示。图3 HDB3编码设计框图设计思路如下:1、对输入为1码元交替翻转编码,即依次在H+和H-端

21、口输出1。2、对输入为0码元同时在H+和H-端口输出0。3、当连续输入 4个 0 码元 ,且与上一个连续 0 码元之间 1 码元为奇数个时 ,第四个 0 码元 改为 1 码元 ,且与之前 1 码元的最后一个 1 码元同极性 ,即:在同端口输出。4、当连续输入 4个 0 码元 ,且与上一个连续 4个 0 码元之间 1 码元为偶数个时 ,第一个 0 码元改为 1 码元,与之前 1 码元的最后一个 1 码元反极性 ,即:在不同端口输出。由以上设计思路,一列NRZ码经编码后应该产生的H+、H-如下:NRZ 码:10 0 0 01 0 0 0 0110 0 0 00 0 0011HDB3 码:-10 0

22、0 -V +1 00 0+V-1 +1-B 0 0 -V +B 00+V -1+1H+ :00 0 0 01 0 0 0101000 010 0101H- :-10 0 0 -10 0 0 0 0 -10-1 0 0 -10 0 00-103.2HDB3编码的 VHDL语言设计1、 逐位处理输入输出数据,即:每输入一比特数据就判断处理,并在H+和H-端口同时输出 一位比特脉冲。2、 为了能修改含本时钟之前4 个时钟周期的输出比特 ,建立一个 4 位移位寄存器保存输 入数据 temp 。3、 输出 1时,确定下次 1 码元输出端口的确定,即极性是+或-;每输入一个 1,极性 反转一次,记录信息

23、county 。4、检测当前是否为连续 0000,记当前零个数 count0 。5、记录两个连续 0000 之前连续 1 的个数记数 count1 , (即奇偶数 )。6、要记录两个连续 0000 之前连续 1 的个数,需要知道第一个 0000 已经出现,建立 第一个 0000已经出现的标志位 count2 。7、更新 B00V000V 时,更新信息 count0 , count1 , county 。3.3HDB3编码的VHDL程序HDB3编码的VHDL程序见附录一。3.4HDB3编码的仿真波形HDB3编码的仿真波形图如图4所示。图4 HDB3编码的仿真波形如图 4 所示, clkin 为占

24、空比为 50%的取样时钟; clkout 为把输入的 clkin 输出,给下级 的解码做采样时钟; dataouthh 为输出的 H +; dataouthl 为输出的 H-。从datain按采样时钟下降沿读出NRZ码。如下所示:NRZ 码:01010111 0 1 0000 0000 0 11 0000 1 0000NRZ码共30位,前10位(0101011101)目的为了验证程序能否对输入为1码元交替翻转编码 依次在H+和H-端口输出1;对输入为0码元同时在H+和H-端口输出0。第11位 到第14位(0000)是为了验证程序能否判断第一个0000;从NRZ前10位可以读出1的个数为(6偶数

25、),如果程序不能判断第一个 0000,则产生的HDB3码为B00V,而第一个 0000正确产生的HDB3码为000V。第15位到19位(0000)是为了能否判断两个连续 0000之间1的个数为0 (偶数)时,输出的HDB3码是否正确。第22位到25位(0000) 是为了能否判断两个连续 0000之间1的个数为2 (偶数)时,输出的 HDB3码是否正确。 第 26 位到 30 位( 0000)是为了能否判断两个连续 0000之间 1的个数为 1(奇数)时, 输出的HDB3码是否正确。由读出的NRZ,求出理论HDB3码。如下所示:理论 HDB3 码:0+10-10+1-1+1 0 -1 000-1

26、 +100+1 0 -1 + 1 -100-1 +1 000+1从dataouthh按采样时钟下降沿读出H+;从dataouthl按采样时钟下降沿读出H-。如下所示:H+: 01000101 0 00000 1001 0 0 1 0000 1 0001H-: 00010010 0 10001 0000 0 1 0 1001 0 0000H+、H-叠加得出实测 HDB3码。如下所示:实测 HDB3 码:0+10-10+1-1+1 0 -1 000-1 +100+1 0 -1 + 1 -100-1 +1 000+1实测HDB3码和理论HDB3码相同,所以HDB3编码的VHDL语言设计成功。4HDB

27、3译码器的FPGA实现4.1HDB3码译码的设计思路由编码原理可知,只要将 HDB3码中的V、B变成0、1,就可以实现译码。根据前面的 HDB3编码输出”V”码的极性与前面的非”0”码的极性相同,当FPGA检测到相邻2个非0符号极性相同时,就可以判断出前非”0”符号为V符号。再判断与V”码相邻的非零码是”1”还是B码。根据V码与它前面的3位的寄存器的值则可以知道,当3位数据都为”0”时,则V”码前的非零信号为基带信号1,如果与V码相邻的前面2位寄存器的值为”0”,则V码前的非零信号即为补信码 ”B”。HDB3译码设计框图如图 5所示。图5 HDB3译码设计框图4.2HDB3译码的 VHDL语言

28、设计对输入的 H+、H-和HDB3(H+)OR(H-)分别设立一个五级缓存移位寄存器,判断 HDB3(H+)OR(H-)寄存器存在10001或1001X时,H+、H-寄存器是否有且只有一个存在 00000或0000X,如果存在则HDB3(H+)OR(H-)寄存器改成 10000或0000X。再将HDB3(H+)OR(H-)寄存器第5位输出。4.3HDB3译码的VHDL程序HDB3编码的VHDL程序见附录二。4.4HDB3译码的仿真波形HDB3译码的仿真波形图如图6所示。图6 HDB3译码的仿真波形如图 6 所示, clkin 为占空比为 50%的取样时钟; dataoinhh 为输入的 H+;

29、datainthl 为输 入的H-; dataout为输出的NRZ码。从datainhh按采样时钟下降沿读出H+。从datainil按采样时钟下降沿读出H-。如下所示:H+:00100 10000 1 0001 01 0000 1001 01H-:10001 00001 0 0000 10 1001 0000 10H+、H-分别27位,前5位H+(00100)、H-(10001)目的是为了判断当 H+寄存器存在 10001时,程序是否会误判存在 1000V;第6位到第10位H+(10000)、H-(00001)目的 是为了判断当HDB3(H+)OR(H-)寄存器存在10001时,程序是否会误判

30、存在 1000V;第11 位到第15位H+(10001)、H-(00000)目的是为了判断程序能否正确识别1000V;第18位到第 21 位H+(0000)、H-(1001)和第 22 位到第 25 位H+(1001)、H-(0000)目的是为 了判断程序能否正确识别 B00V。由读出的H+、H-,求出测量的HDB3码,再由理论HDB3码计算得出理论 NRZ码。如下 所示:实测 HDB3 码:+10-10+1-1000+1-1000-1+1-1 +100+1 -100-1 +1-1理论 NRZ码:1 0 11 11000 11000 01 1 000 0 000 0 11从dataout按采样

31、时钟下降沿读出NRZ码。如下所示:实测 NRZ码:1 0 11 11000 11000 01 1 000 0 000 0 11实测NRZ码和理论NRZ码相同,所以 HDB3译码的VHDL语言设计成功。4.5HDB3编译码器测试4.5.1 HDB3编码器和译码器在顶层文件连接把HDB3编码器程序和 HDB3译码器程序生成元器件,新建Block Diagram/SChematic File文件,在里面对 HDB3编码器和HDB3译码器进行连接。如图7所示。图 7 HDB3 编译码器原理图4.5.2 HDB3 编译码器的仿真波形HDB3编译码器的仿真波形图如图8所示。图8 HDB3编译码器仿真波形图

32、如图8所示,clkin为占空比为50%的取样时钟;data in为输入的NRZ码;dataout为输出的 NRZ码。从datain按采样时钟下降沿读出NRZ码。如下所示:实测输入 NRZ 码:10101 10001 1 0000 11 0000 0000 11观察图 8 中 dataout 可以发现, dataout 向左移位 5 个取样时钟频率周期,则和 datain 完全相同。实测输出 NRZ码如下所示。实测输出 NRZ码:10101 10001 1 0000 11 0000 0000 11实测输入NRZ码和实测输出NRZ码相同,HDB3编译码器设计成功。结束语本文主要是用FPGA来实现H

33、DB3码的编码和译码器。利用EDA技术进行设计,重点在于实现HDB3的编码过程和译码过程的处理,用VHDL对其功能进行描述。由于HDB3码是双极性码,而FPGA只能处理单极性。因此在实际应用中须外加辅助电路,使单双极性实现 相互转换。本文对此不做介绍,主要对FPGA可实现的程序部分进行详细分析叙述。最后,通过 QuartusII 对其各个功能进行仿真,验证整个设计的正确性。但由于利用EDA对电子系统进行设计的经验不多,本设计只实现对 HDB3码进行简单的编译功能,但整个设计程序显得有点复杂。在这个设计过程中,完整的实现HDB3编译码的功能,令我获益不少。由于受现在所学的知识的限制,对EDA的展

34、望待进一步作深入研究,通过学习与实践, 积累更多的知识与设计经验, 把整个设计再进行功能的完善, 再使逻辑算 法更加简化从而提高整个系统的效率。参考文献1 曹志刚,钱亚生,现代通信原理M,北京:清华大学出版社,19922 樊昌信、张甫翔、徐炳祥,通信原理M, 北京:国防工业出版社,20013 张会生、陈树新,现代通信系统原理M, 北京:高等教育出版社,20024 曹志刚、钱亚生,现代通信原理 M ,北京:清华大学出版社, 19925 张辉、曹丽娜,现代通信原理与技术 M, 西安:西安电子科技大学出版社, 2002刘皖、何道君、谭明,FPGA设计与应用M,北京:清华大学出版社,20067 曾繁泰

35、、李冰,李晓林,EDA工程概论M,北京:清华大学出版社,20028 潘松,王国栋,VHDL实用教程M,成都:电子科技大学出版社,20009 曾繁泰,候亚宁,崔元明,可编程器件应用导论 M ,北京:清华大学出版社, 200110 赵鑫、蒋亮,VHDL与数字电路设计M,北京:机械工业出版社,200511 蒋青、吕翔,一种基于 FPGA技术HDB3译码器的设计J,微电子学,200712段吉还、黄智伟,基于CPLD/FPGA勺数字通信系统与设计M,北京:电子工业出版社,2004致谢感谢老师给予我们此次锻炼自己勺机会, 也感谢老师设计制作过程中给于我们勺无私帮 助,循循善诱,最后衷心感谢老师对我们勺严格

36、要求。感谢等同学对我程序勺指点和修改。在设计调整勺过程中难免会着急会烦躁, 情绪难免会恶化, 感谢三个队友在合作过程中 勺宽容与谅解。 在交流沟通时, 大家难免会急于表达自己勺观点, 感谢在团队意见勺磨合中, 大家都能理性客观勺对待问题, 一起完成了此次课程设计勺任务, 并且也在此次课程设计中 加强了大家勺团队协作能力。附录 附录一 HDB3 编码程序 -HDB3 编码-输入 2.048Mb/s 数据流-占空比为 50%勺取样时钟-输出为两路双极性数据流 library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std;use ieee

37、.std_logic_arith; entity HDB3 is port(clkin:in std_logic;datain:in std_logic; dataouthh:out std_logic; dataouthl:out std_logic;clkout:out std_logic);end HDB3; architecture behavior of HDB3 is begin process(clkin) variable count0,count1,count2:integer:=0 ; variable county:boolean;variable temp:std_lo

38、gic_vector(3 downto 0); beginif clkinevent and clkin=0 thenif datain=1 then- 输入为 1 时处理 4 位寄存器 count0:=0;temp(0):=datain; count1:=count1+1;if temp(3)=0 then- 首位 0 处理 输出 dataouthh=0; dataouthl=0;else if county then- 首位 1 处理 输出 dataouthh=1; dataouthl=0; county:=not county;else dataouthh=0; dataouthl=1;

39、 county:=not county;end if;end if; else temp(0):=datain;- 输入为 0 时处理 4 位寄存器 count0:=count0+1;if count0=4 then- 检测到 0000,处理 4 位寄存器 count0:=0;奇偶count1:=(count1 rem 2);- 两个四连零 间 1 的 奇偶 if (count1=1)OR(count2=0) then- 两个四连零 间 1 的 count1:=0; count2:=1;temp:=0001; dataouthh=0; dataouthl=0; county:=not coun

40、ty;else count1:=0; - 两个四连零 间 1 的 偶 temp:=1001; if county then dataouthh=1; dataouthl=0;else dataouthh=0; dataouthl=1;end if;end if; else if temp(3)=0 then- 未检测到 0000 处理输出 dataouthh=0; dataouthl=0;else if county then dataouthh=1; dataouthl=0; county:=not county; elsedataouthh=0; dataouthl=1; county:=not county;end if; end if;end if;end if;end if;temp(3 downto 1):= temp(2 downto 0);end process;clkout=clkin;end behavior;附录二 HDB3 译码程序-输入为两路双极性数据流,占空比为50%的去取样时钟-输出为一路单极性数据流,libr

温馨提示

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

评论

0/150

提交评论