基于fpga的hdb3译码器实现内容摘要:
988 年, Milstd454 规定所有为美国国防部设计的 ASIC 产品必须采用 VHDL 来进行描述。 1993 年,经过几年的修订 和扩展,IEEE 公布了 VHDL 的新版本 IEEE1164。 1996 年, 成为 VHDL 的综合标准。 1995 年,我国国家技术监督局制定的《 CAD 通用技术规范》推荐 VHDL 作为我国电子设计自动化硬件描述语言的国家标准。 自此, VHDL 在我国迅速开始普及。 纵观 VHDL 的发展过程, VHDL 不但适应了当今 EDA 技术的发展,反过来它还变革性地促进了 EDA 技术的进步。 正是因为有了 VHDL 这一功能强大的硬件描述语言,电子系统的硬件设计软件化才真正成为现实。 如今,大多数的 EDA 工具都采用VHDL 来作为主要的硬 件描述语言。 VHDL 的优点 [4] VHDL 迅速普及主要源于其强大的自身功能和特点。 主要优点如下: 1)覆盖面广,有强大的系统硬件描述能力 • VHDL 可以覆盖行为描述、 RTL (寄存器传输 )级描述、门描述、电路描述和物理参数描述(包括延时、功耗、频率、几何尺寸等)。 • VHDL 还具有丰富的数据类型。 即可以支持预定义的数据类型,也可以自己定义数据类型。 这样便给硬件描述带来了较大的自由度,使设计人员能够方 6 便地使用 VHDL 创建高层次的系统模型。 2)可读性好、易于修改 在硬件电路设计过程中,主 要的设计文件是用 VHDL 编写的源代码,因为VHDL 易读和结构模块化,所以易于修改设计。 3)独立于器件的设计,与工艺无关 用 VHDL 进行硬件电路设计时,并不需要首先考虑选择完成设计的器件,也就是说, VHDL 并没有嵌入具体的技术和工艺约定,设计人员可以集中精力进行设计的优化,不需要考虑其他问题。 当一个设计描述完成以后,可以用多种不同的器件结构来实现其功能。 4)易于移植和设计资源共享 由于 VHDL 是一种国际标准化的硬件描述语言,对于同一个设计描述,它可以移植到符合相同标准的任意系统或 平台上运行。 对于一些较大的通用性硬件电路,目前已经有专门的 IP 核出售,因此,能实现设计资源的有偿使用,可大大缩短设计周期,加快设计产品的上市速度。 VHDL 设计硬件电路的方法 [5][6] VHDL 是 IEEE 所确认的一种标准化硬件描述语言,它在设计描述的过程中有一定的设计流程可以遵循。 一般来讲, VHDL 的设计流程主要包括以下几个步骤: 1) 设计规范的定义 采用 VHDL 进行设计描述之前,设计人员首先要对电子系统的设计目的和设计要求有一个明确、清晰的认识,然后形成 整 体设计规范的定义,这一步骤对以后的设计来说是非常重要的。 设计规范的定义将对后面的设计步骤起到提纲挈领的作用,它相当于系统设计的总体方案。 2) 采用 VHDL 进行设计描述 采用 VHDL 进行设计描述主要包括设计规划和程序编写两个步骤。 设计规划的主要任务是进行设计方式的选择以及是否进行模块划分。 通常情况下,设计中采用的设计方式包括直接设计,自顶向下设计和自底向上设计,一般采用自顶向下的设计方法。 模块划分是设计过程中一个非常重要的步骤。 模块划分的好坏将会直接影响到最 7 终的电路设计,因此设计人员在这一步应该花费一定的时间,从而保证模块划分的最优化。 进行完设计规 划后,设计人员就可以按照模块划分来编写各个模块的 VHDL 程序,然后将各个模块的 VHDL 程序组合在一起,从而完成整个设计的 VHDL 描述。 3) VHDL 程序仿真 在设计流程中,综合、优化和装配 (或者布局布线 )等后续操作往往需要花费大量的时间。 一旦在后续工作中发现设计错误,设计人员往往需要修改 VHDL 描述,然后再重新进行综合、化和装配 (或者布局布线 ) 等后续操作,如此反反复复,将会浪费大量的时间和人力物力。 因此,设计人员常常在完成编码后采用仿真器对 VHDL设计描述进行仿真 (有时称作前仿真 ),这样可以提早发现设计错误, 节省时间,缩短开发周期。 4) 综合、优化和装配 (或者布局布线 ) 综合是指将较高层次的抽象描述转化到较低级别抽象的一种方法,简单地说,就是将设计的描述转化成底层电路表示。 通常,综合的结果是一个网表或者是一组逻辑方程。 优化是指将设计的时延缩到最小和有效利用资源。 几乎所有高级 VHDL 综合工具都可以使用约束条件对设计进优化。 约束条件的设置主要包括时间约束和面积约束。 对设计描述进行完综合和优化操作后, EDA 工具需要将综合和优化的逻辑结果分配到一个逻辑器件中。 通常,装配用来描述对一定的 CPLD 的资源进行分配的过程;布局 布线则是将综合和优化后生成的逻辑规划到一个 FPGA 的逻辑结构中,然后将各逻辑单元放置到相应优化的位置,最后在逻辑元胞之间、逻辑元胞和 I/O 口之间进行布线。 5) 装配 (或布局布线 )后的仿真 与 VHDL 程序仿真不同,装配 (或布局布线 ) 后的仿真不仅要对设计描述的逻辑功能进行验证,而且还要对设计描述的时序功能进行验证。 如果时序不能满足,那么需要回到前面的步骤重新进行操作。 通常,装配 (或布局布线 ) 后的仿真有时候被称为后仿真。 6) 器件编程 器件编程就是将设计描述经过编译、综合、优化和装配 (或者布局布线 ) 后的结果, 8 经过一 定的映射转化成器件编程所需要的数据文件格式,然后通过烧片器或者下载电缆将数据文件下载到器件中的过程。 9 第二章 HDB3 码的编译 规则 主要的基带传输码型 要了解 HDB3 码的编码规则,必须了解 NRZ码以及 AMI 码。 NRZ全称 NonReturn to Zero,即单极性不归零码。 即信号 1 有脉冲,信号 0 无脉冲,占空比 100%。 为克服 NRZ 信号存在直流分量以及丰富的高频分量,一般采用双极型归零码AMI(Alternate Mark Inversion): 0 信号依然无脉冲, 1 信号采用两种交替极性的脉冲传输,占空比 为 50%。 这种码型不存在直流分量,且高频分量较 NRZ 要少。 然而在实际应用中,人们发现 0 信号占有较大的比重,而连续的 0 信号对系统的同步以及时钟频率的提取较为不利,而采用 HDB3 码是解决这一问题的方法之一。 [7] HDB3码的编码 规则 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 符号,且 B 的极性与前一非 0 符号的极性相反,并使后面的非 0 符号从 V 符号开始再交替变化。 例如 ,如表 21 所示 的例子。 表 21 HDB3 编码举例 代码 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 HDB3 +1 0 1 +1 0 0 0 +V 0 1 +1 B 0 0 V 0 +1 10 HDB3码的译码 规则 HDB3 码的译码是编码的逆过程,其译码相对于编码较简单。 从其编码原理可知,每一个破坏符号 V 总是与前一非 0 符号同极性 [8],因此,从收到的 HDB3 码序列中,容易识别 V 符号,同时也肯定 V 符号及其前面的 3 个符号必是连 0 符号,于是可恢复成 4 个连 0 码,然后再将所有的 1 变成 +1 后便得到原消息代码。 举例如表 21 所示。 表 21 HDB3 译码举例 HDB3 +1 0 1 0 +1 1 0 0 0 1 +1 0 0 +1 1 0 +1 破坏符V,B V +B +V 译码 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 HDB3码的检错 能力 HDB3 码具有检错能力,当传输过程中出现单个误码时,破环点序列的极性交替规律将受到破坏,因而可以在使用过程中监测传输质量。 但单个误码有时会在接收端译码后产生多个误码。 HDB3 码的平均误增殖系数在 之间,有时高逹 2,这取决于译码方案。 [1] 11 第三章 HDB3 编码器的 FPGA 实现 编码器实现分析 在数字基带传输系统中,从信源输出的信号一般是用“ 0”、“ 1”两种状态表示的 单极性( NRZ)码。 [9]因此, HDB3 编码器的主要转换对象就是 NRZ 码。 由 HDB3码的编码规则可知,编码器的工作主要是是按 AMI 码对信号进行编码,判断是否应该加入破坏符 V, V 加入后是否该补 B。 由于需要检查到四位连 „0‟才能进行加 V 补 B的操作,用于存放数据的移位寄存器就不能少。 设计难点在于加 V, B 的判决。 HDB3 编码器的设计思 路 4 连‘ 0’的检 出加 V 及判 ‘ 1’ 极性 当输入遇到 4 连 ‘ 0’ 时,按编码规则,须以 000V 或 B00V 取代。 因此需要先有一个 4 连 ‘ 0’ 检出模块 [10]。 该模块检出 4 连 ‘ 0’ 时,产生 一个加 V 信号,把 V 取代最后一个 ‘ 0’ ,同时根据前一个 V 的极性判断当次 V 的极性。 当输入为‘ 1’时,就按 AMI 码判其极性。 取代节 选取 当检出 4 连 ‘ 0’ 时,除了加 V 外,还 须 要考虑用 B 取代第一 个 ‘ 0’ ,还是保持第一个 ‘ 0’ 不变地输出。 可以在加 V 的时候 根据前一个 V 和 4 连 ‘ 0’ 码前一脉冲的极性, 去 判断加 B,还是保持 ‘ 0’ 码。 若 须 要加 B,则进行加 B 的操作,同时判断 B的极性。 其极性可根据 B00V 来决定,因为 B00V 中 B 跟 V 是同极性的。 整体思路原理如图 31 所示。 图 31 HDB3 编码器实现原理图 12 加 B00V 还是加 000V,可根据如表 31 中相关的极性关系进行判断。 表 31 取代节极性判决 前一破坏点的极性 + - + - 4 连 0 码前一脉冲的极性 + - - + 取代节 - 00- + 00+ 000- 000+ B00V 000V 设计建模 由于 HDB3 码是双极性的,而 CPLD/FPGA 只能进行单极性处理。 因此须把 HDB3码的双极性变换为单极性,以便 FPGA 器件对其进行处理。 将 HDB 码的‘ +1’,‘ 0’,‘ 1’用数字信号 1,0 重新编码,用 01 编码‘ +1’,用 00 编码‘ 0’,用 11 编码‘ 1’。 如表 32 所示 , 其中低位与其本来数值相符,高位则以 0 来标识‘ +’ ,用 1 来标识‘ ’。 表 32 HDB3 的码元重新编码 HDB3 码元 自定单极性标 识 +1 01 0 00 1 11 因此在 最后 , 须 加 接外部电路,把单极性转换为双极性输出。 如利用一个四选一的数据选择器 CC4052(其功能表如表 33 所示),二维数组作为 CC4052 的选择地址,在输出端 out 可以得到符合规则的 “+1”、 “1”、 “0”变化波形。 表 33 CC4052 功能表 输入 导通通道 INH A1 A0 L L L I0/O0O/I L L H I1/O1O/I L H L I2/O2O/I L H H I3/O3O/I H X X 无 把得到两个输出的分别接到 A1, A0 作地址控制端,便可使其输出相应电平。 13 4 连 0 的检出 , AMI 编码 及插 V 先 进行 4 连 0 的检出, 再 把输入的 NRZ 按 AMI 编码,用 t0 记录连 0 的情况,若检出 4 连 0 ( t0=3) 就进行加 V 的操作,整个过程都须记。基于fpga的hdb3译码器实现
相关推荐
内占据首位。 但是由于直流电动机本身有机械换向器,给直流调速系统造成一些固有的、难于解决的问题。 随着交流传动电动机调速的理论问题的突破 和调速装置 (主要指变频器 )性能的完善,交流电动机调速系统的性能差的缺点已经得到了克服,目前,交流调速系统的性能已经可以和直流系统相媲美,甚至可以超过直流系统。 由于交流调速不断显示其本身的优越性和巨大的社会效益,使变频器具有越来越旺盛的生命力。
发了整套工具 (包括 SOPC Builder, NiosⅡ集成设计环境和 QuartusⅡ开发软件 )帮助用户加速硬件和软件的开发,实现完整的基于可编程逻辑的SOPC 解决方案 8 Quartus II 是目前进行 Altera 的 CPLD、 FPGA 和结构化 ASIC 设计的最佳软件, 具有强的的功能及良好的易用性。 相比较传统的 Max+plusII 软件和早期版本的 Quarters
式来完成 . (2)采用自顶向下的设计流程和不同层次间的并行设计,以确保设计一次成功,而设计人员只要把精力集中在系统概念和方案的优化上。 (3)所有不同层次的设计、仿真、测试和接口工具都集中在统一的开放环境之中,它们都有统一的原始模型、统一的数据格式与数据库管理直至统一的人机界面,使得不同专业、不同厂家的工程设计人员的劳动成果,可以在各个层次上相互调用 . (4)所有 的设计结果都以符合
辨率较差。 FPGA器件通过 频率合成的方法做成的信号发生器。 由于合成信号发生器具有较高的频率稳定度,很容易实现数字显示频率,因此,频率分辨率高和频率的置定重复性好,以及能方便实现频率的程序控制是合成信号发生 8 器的重要特点。 由此可见通过设计频率合成器 是整个信号发生器的最为关键的部分。 根据上文提到的课题要求,特列出以下论证方案,为了显出该设计的优
data_high_3 状态,将数据线拉高,等待鼠标返回应答信号。 若 PS/2 时钟信号下降沿来临时,数据线仍未变为高电平,则进入m2_error_no_ack 状态,此时握手失败,系统将保持 m2_error_no_ack 状态直到下一次复位,否则进入 m2_await_response 状态接收应答字,接收完成进入 m2_verify 数据校验,然后进入 m2_use 状态,锁存输出数据
)直到门级电路逐层进行描述。 另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。 采用 VHDL 语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。 在工艺更新时无须 原设计程序,只需改变相应的映射工具。 由此可见,修改电路和修改工艺相互之间不会产生影响。 作为 IEEE 标准的 VHDL 语言,语法严格,设计成果便于复用和交流