版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本本 科科 生生 毕毕 业业 论论 文文 题 目: 基于 fpga 的 hdb3 编译码器设计 - i - 摘摘 要要 hdb3 码是基带传输码型之一,其具有无直流分量、低频分量少、连 0 数不超 过 3 个等特点,有利于信号的恢复和检验,因而被广泛得到应用。fpga 具有成本 低、可靠性高、开发周期短、可重复编程等特点。利用 eda 技术,可对其实现硬件 设计软件化,加速了数字系统设计的效率,降低了设计成本。 本文先对 hdb3 码,fpga 器件和 eda 技术的发展背景进行简述。接着阐述 eda 技术中常用的 vhdl 语言的发展与优点,并以 vhdl 为核心,扼要说明硬件 电路设计的方
2、法步骤。然后介绍 hdb3 码的编译码原理以及其特点。最后,对 hdb3 码的编译码原理进行重点分析,并且以 vhdl 语言为主,分别对编码器部分 和译码器部分的具体实现方法进行说明,给出具体设计的思考方案和程序流程图, 并对设计方案进行软件仿真,同时给出仿真结果并对其进行分析,证明设计方案的 正确性。 关键词:关键词:hdb3 码;fpga;eda;vhdl;编译码器 - ii - abstract hdb3 code is one of codes used in the transmission system. it has no dc components and a few of l
3、f components. moreover, it has continuous zeros no more than three. the features of hdb3 code help the signal to be rebuilt and be checked for error easily, so hdb3 code is the commonly used code in the transmission system. low cost, dependability, short design cycle and repeated programmability are
4、 the features of fpga. you can design hardware of digital circuits by using software as a result of using fpga with eda. it will construct the digital system quickly and reduce the cost of design. this paper first introduces the development and background of hdb3, fpga and eda, and then expands vhdl
5、, which is commonly used as a design-entry language for eda. a summary of digital circuits design by using vhdl is provided. moreover, the principle and features of hdb3 code is introduced. according to principle of hdb3 codes, the encoder and decoder is designed by using vhdl. finally, the plan of
6、design, the flow of software design and the simulated waveform of hdb3 encoder and decoder is presented, showing correctness of the design. keywords: hdb3 code;fpga;eda;vhdl;encoder and decoder - iii - 目目 录录 摘摘 要要.i abstract.ii 第一章第一章 前言前言 .1 1.1 hdb3 码的简述.1 1.2 fpga 的简介.2 1.2.1 概述.2 1.2.2 fpga 基本结构
7、及特点.2 1.3 eda 技术.4 1.4 vhdl 硬件描述语言.4 1.4.1 vhdl 简介.4 1.4.2 vhdl 的优点.5 1.4.3 vhdl 设计硬件电路的方法.6 第二章第二章 hdb3 码的编译规则码的编译规则.9 2.1 主要的基带传输码型.9 2.2 hdb3 码的编码规则.9 2.3 hdb3 码的译码规则.10 2.4 hdb3 码的检错能力.10 第三章第三章 hdb3 编码器的编码器的 fpga 实现实现.11 3.1 编码器实现分析.11 3.2 hdb3 编码器的设计思路.11 3.2.14 连0的检出加 v 及判1极性.11 3.2.2取代节选取.11
8、 3.3 设计建模.12 3.3.14 连 0 的检出,ami 编码及插 v .13 3.3.2补 b .14 3.4 软件仿真.15 第四章第四章 hdb3hdb3 译码器的译码器的 fpgafpga 实现实现 .16 4.1 译码器的实现分析.16 4.2 hdb3 编码器的设计思路.16 4.2.1v 的检测.16 4.2.2扣 v 扣 b.16 - iv - 4.3 设计建模.17 4.3.1v 码、误码检测.17 4.3.2扣扣的实现.18 4.4 软件仿真.19 第五章第五章 结论结论 .21 致致 谢谢.22 参考文献参考文献.23 附附 录录.24 a.hdb3 编码器的 vh
9、dl 完整程序.24 b.hdb3 译码器的 vhdl 完整程序.27 - 1 - 第一章第一章前言前言 1.11.1hdb3hdb3 码的简述码的简述 在数字传输系统中,其传输对象通常是二元数字信息。一般使用限的离散的波 形来表示数字信息。这些离散波形可以是未经调制的不同电平信号,也可以是调制 后的信号形式。由于未经调制的电脉冲信号所占据的频带通常从直流和低频开始, 因而称为数字基带信号。数字基带信号是数字信息的电脉冲表示,不同形式的数字 基带信号(又称为码型)具有不同的频谱结构,合理地设计数字基带信号以使数字信 息变换为适合给定信道传输特性的频谱结构,是基带传输首要考虑的问题。1 实际上,
10、在数字设备内部用导线连接起来的各器件之间就是用一些最简单的数 字基带信号来传送定时和信息的。1当数字信号进行长距离传输时,高频分量的衰 减随距离的增大而增大,电缆中线对之间的电磁辐射也随着频率的增高而加剧,从 而限制信号的传输距离和传输质量,同时信道中往往还存在隔直流电容和耦合变压 器,他们不能传输直流分量及对低频分量有较大的衰减,因此对于一般信道高频和 低频部分均是受限的。 对于以上信道,要求所使用传输码型的频谱不含直流分量,并且低频分量和高 频分量都很少。传输码型中应含有定时时钟信息,以利于接收端提取定时时钟,在 基带传输系统中,定时信息是在接收端恢复原始信息所必需的。在一般传输系统中,
11、为了节省频带从而不传输定时信息,必须在接收端从相应的基带信号中加以提取。 实际传输中希望能及时监视误码,如果传输码型有一定的规律性,那么就可以根据 这一规律性来检测传输的质量,以便做到自动监测,因此,传输码型应具有一定的 误码检测能力。当然,对传输码型的选择还需要编码和译码设备尽量简单等要求, 但以上的几点是最主要的考虑因素。 由于 hdb3 码又叫三阶高密度双极性码(high density bipolar of order 3)2具有无 直流分量,低频分量少,而且连“0”电平不会超过三个等特点,有利于信号的恢复 和检验,因而被广泛得到应用,是一种重要的基带传输码型。 - 2 - 1.21.
12、2fpgafpga 的简介的简介 1.2.11.2.1 概述概述 fpga ( field programmable gate array, 现场可编程门阵列),是一种可由用户根 据设计的数字系统要求,在现场由用户配置、定义的高密度专用数字集成电路。起 源于美国的 xilinx 公司,该公司于 1985 年推出了世界上第一块 fpga 芯片。在这二 十年的发展过程中,fpga 的硬件体系结构和软件开发工具都在不断的完善,日趋 成熟。它将 vlsi 逻辑集成的优点和可编程器件设计灵活、制作及上市快速的长处 结合,使设计者在 fpga 开发系统软件的支持下,可在现场直接根据系统要求定义 和修改其逻
13、辑功能,使一个包含数千个、数万个逻辑门的数字系统可在几天之内完 成设计并且实现,将以前由许多 ttl,pld,epld 执行的逻辑功能集成到单一芯 片的 fpga 上。由于芯片数目的减少,印制皮面积缩小,可使系统规模全面缩减, 从而降低成本,还可大大提高系统的可靠性。3 1.2.21.2.2 fpga 基本结构及特点基本结构及特点 基本结构基本结构3 典型的 fpga 结构如图 1-1 所示,它通常包含三类可编程资源:可编程逻辑功 能块 clb(configurable logic blocks),可编程 i/o 模块 iob(input/output block)和可 编程内部互连 pi(p
14、rogrammable interconnect)。clb 是实现逻辑设计的基本单元,它 们排列为阵列,散布于整个芯片。clb 的功能很强,不仅实现逻辑函数,还可配置 为 ram 等复杂形式。iob 作为芯片上逻辑与外部封装引脚的接口,通常围绕着阵 列于芯片的四周。pi 包括各种长度的连线和一些可编程连接开关,通过它们把各个 clb,iob 按设计要求连接起来,构成特定功能的电路。 - 3 - 图 1-1 fpga 器件的基本结构 fpga 器件的功能由逻辑结构的配置数据决定,工作时,配置数据存放于片内 的 sram 或熔丝图上。使用 sram 的 fpga 器件,工作前需从芯片外部加载配置
15、数据。配置数据可存储于片外的 eprom 或其他存储体上。用户可控制加载过程, 在现场修改器件逻辑功能,即现场可编程。 特点特点4 与 cpld 相比,fpga 有以下特点: (1)fpga 的逻辑单元从功能上而言,比 cpld 的组合乘积项及宏单元要简单得多, 但是它可由逻辑单元的级联来创建很大的函数功能。 (2)pld 适合用于复杂组合逻辑。fpga 适合于设计复杂的时序逻辑。 (3)fpga 的制造工艺确定了 fpga 芯片中包含的 lut 和触发器的数量非常多, 可达上万个,而 pld 一般只能做到 512 个逻辑单元,因此 fpga 的平均逻辑单元成 本大大低于 pld。 (4)在
16、cpld 器件内可以通过逻辑阵列将大型函数在一级逻辑中实现,具有较高的 系统运行速度,并且其易于确定的时序参数也有助于逻辑分析工作,但是它的寄存 器资源相对 fpga 较少。 (5)fpga 器件具有较小的基本逻辑单元,适合实现流水线结构的设计,也可以利 - 4 - 用逻辑单元的级连来实现较长的数据通路。 (6)fpga 的逻辑单元阵列可以将设计功能进行更细的划分,可充分地利用单元内 的各种资源,但同时也加大了逻辑优化和时序分析地难度。 1.31.3edaeda 技术技术4 随着社会生产力发展到了新的阶段,各种电子新产品的开发速度越来越快。现 代计算机技术和微电子技术进一步发展和结合使得集成电
17、路的设计出现了两个分支。 一个是传统的更高集成度的集成电路的进一步研究;另一个是利用高层次 vhdl/verilog 等硬件描述语言对新型器件 fpga/cpld 进行专门设计,使之成为专 用集成电路(asic) 。这不仅大大节省了设计和制造时间,而且对设计者,无须考 虑集成电路制造工艺,现已成为系统级产品设计的一项新的技术。 现代通信技术的发展随着 vhdl 等设计语言的出现和 asic 的应用也进入了一 个新的设计阶段,特别是,对数字通信系统的 asic 芯片的研究有着看得见的使用 价值。 eda(electronic design automation)即电子设计自动化,它的定义是指利用
18、计 算机来完成电子系统的设计。它以 eda 软件工具为开发环境,采用硬件描述语言 (hardware description language, hdl) ,以可编程器件为实验载体,实现源代码编 程、自动逻辑编译、逻辑简化、逻辑分割、逻辑综合、布局布线、逻辑优化和仿真 等功能,以 asic、soc 芯片为目标器件,以电子系统设计为应用方向的电子产品 自动化的设计技术。 在现代电子设计技术领域中,eda 技术已成为主要的设计手段。eda 技术可 把数字通信技术,微电子技术和现代电子设计自动技术结合起来,实现了硬件设计 软件化,加速了数字通信系统设计的效率,降低了设计成本。 - 5 - 1.41.
19、4vhdlvhdl 硬件描述语言硬件描述语言 1.4.11.4.1 vhdl 简介简介5 20 世纪 70 年代末,美国国防部电子系统项目拥有很多的承包公司。由于各个公 司的文化背景和技术等方面的原因。导致各公司的很多产品不能兼容,同时由于设 计语言的不同也导致了开发成果不能重复利用,从而造成了各个公司之间信息交换 和产品维护的困难。于是美国国防部提出了 vhsic (very high speed integrated circuit) 计划,目的是采用一种新的描述方法来进行新一代集成电路的设计。 1986 年,工作小组在美国国防部组织上正式成立,不久提出了一种新的硬件描 述语言 vhdl
20、(vhsic hardware description language,甚高速集成电路硬件描述语 言)。提出这个语言的目标只是使电路文本化成标准,目的是为了使文本描述的电路 设计能够为其他人所理解,同时也可以作为一种模型语言并能采用软件进行仿真。 1983 年,ibm、ti 和 intermetrics 公司共同组成开发小组,开发小组的工作任务 就是提出语言版本和软件开发环境。1986 年,ieee 致力于 vhdl 的标准化工作, 同期成立了一个 vhdl 标准化小组。1987 件 12 月,ieee 公布了 vhdl 的第 1 个 工业标准版本并宣布实施,其版本为 ieee1076。19
21、88 年,milstd454 规定所有为美 国国防部设计的 asic 产品必须采用 vhdl 来进行描述。1993 年,经过几年的修订 和扩展,ieee 公布了 vhdl 的新版本 ieee1164。1996 年,ieee1076.3 成为 vhdl 的综合标准。 1995 年,我国国家技术监督局制定的cad 通用技术规范推荐 vhdl 作为 我国电子设计自动化硬件描述语言的国家标准。自此,vhdl 在我国迅速开始普及。 纵观 vhdl 的发展过程,vhdl 不但适应了当今 eda 技术的发展,反过来它还 变革性地促进了 eda 技术的进步。正是因为有了 vhdl 这一功能强大的硬件描述 语言
22、,电子系统的硬件设计软件化才真正成为现实。如今,大多数的 eda 工具都采 用 vhdl 来作为主要的硬件描述语言。 - 6 - 1.4.21.4.2 vhdl 的优点的优点4 vhdl 迅速普及主要源于其强大的自身功能和特点。主要优点如下: 1)覆盖面广,有强大的系统硬件描述能力 vhdl 可以覆盖行为描述、rtl (寄存器传输)级描述、门描述、电路描述 和物理参数描述(包括延时、功耗、频率、几何尺寸等) 。 vhdl 还具有丰富的数据类型。即可以支持预定义的数据类型,也可以自 己定义数据类型。这样便给硬件描述带来了较大的自由度,使设计人员能够 方便地使用 vhdl 创建高层次的系统模型。
23、2)可读性好、易于修改 在硬件电路设计过程中,主要的设计文件是用 vhdl 编写的源代码,因 为 vhdl 易读和结构模块化,所以易于修改设计。 3)独立于器件的设计,与工艺无关 用 vhdl 进行硬件电路设计时,并不需要首先考虑选择完成设计的器件, 也就是说,vhdl 并没有嵌入具体的技术和工艺约定,设计人员可以集中精 力进行设计的优化,不需要考虑其他问题。当一个设计描述完成以后,可以 用多种不同的器件结构来实现其功能。 4)易于移植和设计资源共享 由于 vhdl 是一种国际标准化的硬件描述语言,对于同一个设计描述, 它可以移植到符合相同标准的任意系统或平台上运行。 对于一些较大的通用性硬件
24、电路,目前已经有专门的 ip 核出售,因此, 能实现设计资源的有偿使用,可大大缩短设计周期,加快设计产品的上市速 度。 1.4.31.4.3 vhdl 设计硬件电路的方法设计硬件电路的方法56 vhdl 是 ieee 所确认的一种标准化硬件描述语言,它在设计描述的过程中有一 定的设计流程可以遵循。一般来讲,vhdl 的设计流程主要包括以下几个步骤: - 7 - 1)设计规范的定义 采用 vhdl 进行设计描述之前,设计人员首先要对电子系统的设计目的和设计 要求有一个明确、清晰的认识,然后形成整体设计规范的定义,这一步骤对以后的 设计来说是非常重要的。设计规范的定义将对后面的设计步骤起到提纲挈领
25、的作用, 它相当于系统设计的总体方案。 2)采用 vhdl 进行设计描述 采用 vhdl 进行设计描述主要包括设计规划和程序编写两个步骤。设计规划的 主要任务是进行设计方式的选择以及是否进行模块划分。通常情况下,设计中采用 的设计方式包括直接设计,自顶向下设计和自底向上设计,一般采用自顶向下的设 计方法。模块划分是设计过程中一个非常重要的步骤。模块划分的好坏将会直接影 响到最终的电路设计,因此设计人员在这一步应该花费一定的时间,从而保证模块 划分的最优化。 进行完设计规划后,设计人员就可以按照模块划分来编写各个模块的 vhdl 程 序,然后将各个模块的 vhdl 程序组合在一起,从而完成整个设
26、计的 vhdl 描述。 3)vhdl 程序仿真 在设计流程中,综合、优化和装配(或者布局布线)等后续操作往往需要花费大 量的时间。一旦在后续工作中发现设计错误,设计人员往往需要修改 vhdl 描述, 然后再重新进行综合、化和装配(或者布局布线) 等后续操作,如此反反复复,将会 浪费大量的时间和人力物力。因此,设计人员常常在完成编码后采用仿真器对 vhdl 设计描述进行仿真(有时称作前仿真),这样可以提早发现设计错误,节省时 间,缩短开发周期。 4)综合、优化和装配(或者布局布线) 综合是指将较高层次的抽象描述转化到较低级别抽象的一种方法,简单地说, 就是将设计的描述转化成底层电路表示。通常,综
27、合的结果是一个网表或者是一组 逻辑方程。 优化是指将设计的时延缩到最小和有效利用资源。几乎所有高级 vhdl 综合工 具都可以使用约束条件对设计进优化。约束条件的设置主要包括时间约束和面积约 束。 对设计描述进行完综合和优化操作后,eda 工具需要将综合和优化的逻辑结果 - 8 - 分配到一个逻辑器件中。通常,装配用来描述对一定的 cpld 的资源进行分配的过 程;布局布线则是将综合和优化后生成的逻辑规划到一个 fpga 的逻辑结构中,然 后将各逻辑单元放置到相应优化的位置,最后在逻辑元胞之间、逻辑元胞和 i/o 口 之间进行布线。 5)装配(或布局布线)后的仿真 与 vhdl 程序仿真不同,
28、装配(或布局布线) 后的仿真不仅要对设计描述的逻辑 功能进行验证,而且还要对设计描述的时序功能进行验证。如果时序不能满足,那 么需要回到前面的步骤重新进行操作。通常,装配(或布局布线) 后的仿真有时候被 称为后仿真。 6)器件编程 器件编程就是将设计描述经过编译、综合、优化和装配(或者布局布线) 后的结 果,经过一定的映射转化成器件编程所需要的数据文件格式,然后通过烧片器或者 下载电缆将数据文件下载到器件中的过程。 - 9 - 第二章第二章hdb3 码的编译规则码的编译规则 2.12.1 主要的基带传输码型主要的基带传输码型 要了解 hdb3 码的编码规则,必须了解 nrz 码以及 ami 码
29、。nrz 全称 non- return to zero,即单极性不归零码。即信号 1 有脉冲,信号 0 无脉冲,占空比 100% 。为克服 nrz 信号存在直流分量以及丰富的高频分量,一般采用双极型归零码 ami(alternate mark inversion):0 信号依然无脉冲,1 信号采用两种交替极性的脉冲 传输,占空比为 50% 。这种码型不存在直流分量,且高频分量较 nrz 要少。然而 在实际应用中,人们发现 0 信号占有较大的比重,而连续的 0 信号对系统的同步以 及时钟频率的提取较为不利,而采用 hdb3 码是解决这一问题的方法之一。7 2.22.2 hdb3hdb3 码的编码
30、规则码的编码规则 hdb3 码是 ami 码的改进型。它克服了 ami 码的长连 0 串现象。 hdb3 码的编码规则: 第一步:将消息代码变换成 ami 码; 第二步:检查 ami 码中的连 0 情况,当 4 个或 4 个以上的连 0 串时,则保持 ami 的形式不变;若出现 4 个或 4 个以上连 0 串时,则将 1 后的第 4 个 0 变为 与前一非 0 符号(+1 或-1)同极性的符号,用 v 表示(+1 记为+v,-1 记 为-v) 。 第三步:检查相邻 v 符号间的非 0 符号的个数是否为偶数,若为偶数,则再将当前 的 v 符号的前一非 0 符号后的第 1 个 0 变为+b 或-b
31、 符号,且 b 的极性与 前一非 0 符号的极性相反,并使后面的非 0 符号从 v 符号开始再交替变化。 例如,如表 2-1 所示的例子。 表 2-1 hdb3 编码举例 代码10110000011000001 - 10 - hdb3+10-1+1000+v0-1+1-b00-v0+1 2.32.3 hdb3hdb3 码的译码规则码的译码规则 hdb3 码的译码是编码的逆过程,其译码相对于编码较简单。从其编码原理可 知,每一个破坏符号 v 总是与前一非 0 符号同极性8,因此,从收到的 hdb3 码序 列中,容易识别 v 符号,同时也肯定 v 符号及其前面的 3 个符号必是连 0 符号,于 是
32、可恢复成 4 个连 0 码,然后再将所有的-1 变成+1 后便得到原消息代码。 举例如表 2-1 所示。 表 2-1 hdb3 译码举例 hdb3+10-10+1-1000-1+100+1-10+1 破坏符 v,b -v+b+v 译码10101100000000101 2.42.4 hdb3hdb3 码的检错能力码的检错能力 hdb3 码具有检错能力,当传输过程中出现单个误码时,破环点序列的极性交替 规律将受到破坏,因而可以在使用过程中监测传输质量。但单个误码有时会在接收 端译码后产生多个误码。hdb3 码的平均误增殖系数在 1.1-1.7 之间,有时高逹 2, 这取决于译码方案。1 - 11
33、 - 第三章第三章hdb3 编码器的编码器的 fpga 实现实现 3.1编码器实现分析编码器实现分析 在数字基带传输系统中,从信源输出的信号一般是用“0” 、 “1”两种状态表示 的单极性(nrz)码。9因此,hdb3 编码器的主要转换对象就是 nrz 码。由 hdb3 码的编码规则可知,编码器的工作主要是是按 ami 码对信号进行编码,判断 是否应该加入破坏符 v,v 加入后是否该补 b。由于需要检查到四位连0才能进行 加 v 补 b 的操作,用于存放数据的移位寄存器就不能少。设计难点在于加 v, b 的 判决。 3.2hdb3hdb3 编码器的设计思编码器的设计思路路 3.2.1 4 连连
34、0的检出加的检出加 v 及判及判1极性极性 当输入遇到 4 连0时,按编码规则,须以 000v 或 b00v 取代。因此需要先 有一个 4 连0检出模块10 10。该模块检出 4 连0时,产生一个加 v 信号,把 v 取代最后一个0 ,同时根据前一个 v 的极性判断当次 v 的极性。当输入为1时, 就按 ami 码判其极性。 3.2.2 取代节选取取代节选取 当检出 4 连0时,除了加 v 外,还须要考虑用 b 取代第一个0 ,还是保 持第一个0不变地输出。可以在加 v 的时候根据前一个 v 和 4 连0码前一脉 冲的极性,去判断加 b,还是保持0码。若须要加 b,则进行加 b 的操作,同时
35、判断 b 的极性。其极性可根据 b00v 来决定,因为 b00v 中 b 跟 v 是同极性的。 整体思路原理如图 3-1 所示。 - 12 - 图 3-1 hdb3 编码器实现原理图 加 b00v 还是加 000v,可根据如表 3-1 中相关的极性关系进行判断。 表 3-1 取代节极性判决 前一破坏点的极性 4 连 0 码前一脉冲的极性 0000000000 取代节 b00v000v 3.3设计建模设计建模 由于 hdb3 码是双极性的,而 cpld/fpga 只能进行单极性处理。因此须把 hdb3 码的双极性变换为单极性,以便 fpga 器件对其进行处理。将 hdb 码的 +1 , 0 ,
36、-1用数字信号 1,0 重新编码,用 01 编码+1 ,用 00 编码0 , 用 11 编码-1 。如表 3-2 所示,其中低位与其本来数值相符,高位则以 0 来标识 +,用 1 来标识- 。 表 3-2 hdb3 的码元重新编码 hdb3 码元自定单极性标识 +101 000 -111 因此在最后,须加接外部电路,把单极性转换为双极性输出。如利用一个四选 一的数据选择器 cc4052(其功能表如表 3-3 所示) ,二维数组作为 cc4052 的选择 地址,在输出端 out 可以得到符合规则的“+1”、 “-1”、 “0”变化波形。 表 3-3 cc4052 功能表 输入 inha1a0 导
37、通通道 llli0/o0-o/i llhi1/o1-o/i lhli2/o2-o/i - 13 - lhhi3/o3-o/i hxx无 把得到两个输出的分别接到 a1,a0 作地址控制端,便可使其输出相应电平。 3.3.1 4 连连 0 的检出,的检出,ami 编码及插编码及插 v 先进行 4 连 0 的检出,再把输入的 nrz 按 ami 编码,用 cnt0 记录连 0 的情况, 若检出 4 连 0 ( cnt0=3) 就进行加 v 的操作,整个过程都须记录前一个 v 的极性和 前一非 v 脉冲的极性,分别用 flagv,flag1 标识。flag1=1 表示前一非 v 脉冲的极 性为正,f
38、lag1=0 则为负。flagv 极性标识同理。程序设计流程图如图 3-2 所示。其 输出的前两位是经插 v 后的 ami 码,最低位是给下一流程补 b 作判决。 - 14 - 图 3-2 ami 编码及插 v 的程序设计流程图 3.3.2 补补 b 在加入破坏符 v 后,为了不破坏“极性交替规律” ,须补上 b,使任意两个 v 之间的脉冲数为奇数。这样就可以使相邻脉冲的极性也满足交替规律,保持整个信 号无直流分量。补 b 的操作要读入 4 连 0 才能判决是否该执行,这是以现在事件状 - 15 - 态去改变过去事件的状态的问题。因此,须要 4 位移位寄存器,把之前的码元先存 起,产生时延,使
39、补 b 操作能在正式输出前执行。由于前面模块执行操作时会产生 一定的时延,为了确保补 b 操作能准确执行,这里的时钟应有相应时延,可以取前 一模块的时钟取反作为移位寄存器的时钟使用。程序执行流程如图 3-3 所示。 图 3-3 补 b 程序的流程 图 3-3 中,s1(4) use ieee.std_logic_1164.all; entity hdb3enc is port(clk: in std_logic; rst: in std_logic; codein: in std_logic; codeout: out std_logic_vector(1 downto 0); end hdb
40、3enc; architecture bhv of hdb3enc is signal cnt0: integer :=0; signal flagv: std_logic :=0; signal flag1: std_logic :=0; signal codeoutv: std_logic_vector(1 downto 0) :=00; signal codeoutb: std_logic :=0; signal codeouta: std_logic_vector(2 downto 0); signal reg1: std_logic_vector(3 downto 0) :=0000
41、; signal reg2: std_logic_vector(3 downto 0) :=0000; signal add_b : std_logic; signal clk_b : std_logic; begin process(clk,rst) variable vflag: std_logic; begin if rising_edge(clk) then if rst=1 then codeoutv=00; codeoutb=0; cnt0 cnt0=0; codeoutb=0; if (flag1=1) then codeoutv=11; flag1=0; - 26 - else
42、 codeoutv=01; flag1 if (cnt0=3) then cnt0=0; if flagv=1 then codeoutv=11; flagv=0; vflag:=0; else codeoutv=01; flagv=1; vflag:=1; end if; if flag1=vflag then codeoutb=0; else flag1=vflag; codeoutb=1; end if; else cnt0=cnt0+1; codeoutv=00; codeoutb codeoutv=00; codeoutb=0; cnt0=0; end case; end if; e
43、nd if; codeouta=codeoutv end process; clk_b=not clk; process(clk_b) begin if rising_edge(clk_b) then if rst=1 then codeout=00; reg1=0000; reg2=0000; - 27 - else if codeouta(0)=1 then reg1(3)=codeouta(1); reg2(3)=codeouta(2); else reg1(3)=reg1(2); reg2(3)=reg2(2); end if; reg1(2)=reg1(1); reg2(2)=reg
44、2(1); reg1(1)=reg1(0); reg2(1)=reg2(0); reg1(0)=codeouta(1); reg2(0)=codeouta(2); codeout=reg2(3) end if; end if; end process; end bhv; - 28 - b. hdb3 译码器的译码器的 vhdl 完整程序完整程序 library ieee; use ieee.std_logic_1164.all; entity hdb3dec is port(clk: in std_logic; clr: in std_logic; zp: in std_logic; fp:
45、in std_logic; codeout: out std_logic; coderror: out std_logic); end hdb3dec; architecture behv of hdb3dec is signal cnt0:integer:=0; signal zf:std_logic:=0; signal flagzf:std_logic; signal codeoutv:std_logic_vector(1 downto 0); signal reg: std_logic_vector(4 downto 0) :=00000; signal clk_b:std_logic
46、; begin process(clk,clr) variable codein: std_logic_vector(1 downto 0); begin codein:=fp if rising_edge(clk) then if clr=1then codeoutv=00; cnt0=0; zf=0; coderror if zf=1 then if cnt0=3 then coderror=1; else cnt0=cnt0+1; codeoutv=00; end if; else codeoutv if zf=0 then zf=1; flagzf=0; codeoutv1 then cnt0=0; codeoutv=10; else coderror=1; end if; else flagzf=0; cnt0=0; codeoutv if zf=0then zf=1; flagzf=1; codeoutv1 then cnt0=0; codeoutv=10; else coderror=1; end if; else flagzf=1; cnt0=0; codeoutv coderror=1; end case; end if; end if; - 30 - end process; reg(0)=codeoutv(0); clk_b=not cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省中山一中等七校2026届高二上化学期中学业质量监测模拟试题含解析
- 2026届山东省泰安市新泰市第二中学高一化学第一学期期中调研试题含解析
- 2026届河南省安阳市林州第一中学化学高一第一学期期末检测模拟试题含解析
- 2025中国教育地产行业发展模式与投资价值研究报告
- 2025中国教育制造市场发展现状及未来趋势分析报告
- 2025中国教育保险市场发展趋势及机会评估研究报告
- 2025中国教育云计算行业市场格局及未来发展方向报告
- 2025中国户外运动装备市场增长驱动与竞争格局报告
- 2025中国工业软件市场发展现状及未来增长潜力分析报告
- 超高分子量碳纳米管-洞察及研究
- 客服经理资质考前练习题库(327道)
- SL-T+62-2020水工建筑物水泥灌浆施工技术规范
- HYT 251-2018 宗海图编绘技术规范(正式版)
- 民用建筑可靠性鉴定标准
- 中医馆社区义诊活动方案策划
- 宗教活动场所安全工作台账
- 信贷业务风险防范培训课件
- 2023急性中耳炎多学科团队救治中国专家共识(全文)
- 人工智能在新材料合成中的应用
- 设备管理基础知识
- 名扬传奇策划方案
评论
0/150
提交评论