基于fpga的hdb3编译码的建模与实现--第六稿(定稿内容摘要:
TB=S1(4)amp。 S0(4)。 在此添加“B”的功能模块中,例如程序代码为:(CODEOUTV=01)THEN IF(COUNT1=0)THEN FIRST_1=39。 139。 COUNT1=1。 S1(4)=S1(3)。 S0(4)=S0(3)。 表示当输入的代码CODEOUTV=01时,判断计“1”计数器COUNT1的状态,当为0时,即V之间的非0符号为偶数时,对遇一寄存器FIRST_1赋1,计“1”计数器COUNT1赋1移位寄存器里的数值分别向高位移一位。 根据HDB3码的编码规则,可知 “V”的极性是正负交替变换的,而余下的“1”和“B”本毕业设计把其看成为一体且是正负交替变换的,同时满足“V”的极性与前面的非零码极性一致。 由此本毕业设计就把“1”和“B”看成一组,而“V”单独作为一组来做正负交替变换。 同时,“1”、 “V”,“B”已经分别用双相码“01”,“11”,“10”标识,所以对“1”,“V”, “B”的正负交替变换很容易实现。 、。 单双极性变换控制的程序流程图—“01”和“10”部分 单双极性变换控制的程序流程图—“11”部分“00”部分其中在图中:①以01表示+1。 ②以11表示1。 ③以00表示0。 以下是部分实现单双极性变换控制功能的关键代码,具体程序见附录一。 IF(CLK39。 EVENT AND CLK=39。 139。 )THEN IF((CODEOUTB=01) OR (CODEOUTB=10))THEN 1/B IF(FLAGOB=0)THEN IF(FLAGOV=0)THEN CODEOUT=01。 FLAGOB=1。 ELSIF(FLAGOV=1)THEN CODEOUT=11。 FLAGOB=2。 ELSIF(FLAGOV=2)THEN CODEOUT=01。 END IF。 ELSIF(FLAGOB=1)THEN CODEOUT=11。 FLAGOB=2。 ELSIF(FLAGOB=2)THEN CODEOUT=01。 FLAGOB=1。 判01/10END IF。 ELSIF(CODEOUTB=11)THEN IF(FLAGOV=0)THEN ……………………………… ELSIF(FLAGOV=1)THEN ELSIF(FLAGOV=2)THEN CODEOUT=01。 FLAGOV=1。 判V FLAGOV/FLAGOB:0表示还未遇到V/B,1表示遇到奇数个V/B,2表示遇到偶数个V/B ELSE CODEOUT=00。 FLAGOB=FLAGOB。 FLAGOV=FLAGOV。 END IF。 END IF。 END PROCESS OUTPUT。 END ARCHITECTURE RTL。 本单/双极性的变换,由于EDA软件不能处理双极性的数值,实际上是把单相码变换成双相码后再使用硬件电路来把其转换成双极性的信号,如本单/双极性变换的模块中,使用了FLAGOV,FLAGOB两个输出控制寄存器控制HDB3码的输出,其控制的方式——当FLAGOB/FLAGOV为0时表示还未遇到V/B,为1时表示遇到奇数个V/B,为2时表示遇到偶数个V/B,例如当代码为:ELSIF(CODEOUTB=11)THEN IF(FLAGOV=0)THEN IF(FLAGOB=0)THEN CODEOUT=01。 FLAGOV=1。 表示输入的信号为11时,当FLAGOV=0和FLAGOB=0,即在前面的输入数据中均未遇到V或B,所以输出的代码为CODEOUTB=“11”,“11”表示破坏符号V,所以还要对FLAGOV赋值说明此处遇到符号V。 ,上述的程序下载到FPGA中最终的输出结果并不是“1”,“+1”,“0”的多电平变化波形,而是单极性双电平的信号。 在本设计中采用的单双极性变换的芯片是双四选一数模选择器CD74HC4052。 其中芯片的特性如下: CD74HC4052引脚图 CD74HC4052的DA转换特性图,: 单双极性转换电路框图其中CODEOUT0和CODEOUT1是来自FPGA芯片EPF10K20TC1444输出的两个引脚,CODEOUT1为高位,CODEOUT0为低位。 ,当输入CODEOUT0=0,CODEOUT1=0,选通X0,即把X0引脚上的输入电压通过引脚X输出;同理,当输入CODEOUT0=1,CODEOUT1=0,X输出为引脚X1上的电压;输入为CODEOUT0=1,CODEOUT1=1,X输出为引脚X3上的电压。 HDB3码编码器的波形仿真及分析 输入全 “0”时编码输出 输入全“1”时编码输出 输入“000000000000001000000……”时编码输出 输入“100001000011000011000010” 时编码输出由仿真波形可以得出:CODEIN: 00000000000000000000……CODEOUT:0100000111000011010000011100001101000001……CODEIN: 11111111111111111111…… CODEOUT:0111011101110111011101110111011101110111……CODEIN: 00000000000001000000……CODEOUT:01000001110000110100000100110000000110100……CODEIN: 100001000011000011000010CODEOUT:010000000111000000110111010000011101110000110100~,其输出的代码与根据HDB3码编码原理算出来的代码完全一致,满足实时通信对延迟的要求。 同时从QUARTUSⅡ上可以看出,编码器系统占用了75个逻辑单元,逻辑单元的占用率为7%,利用了5个芯片引脚,引脚的占用率为5%,对于存储单元的占用率为0,由此可知,此编码器的方案可行,系统资源的占用率低,有利以后为系统进行升级优化。 小结本章主要介绍了HDB3码编码的建模和实现的方法,并基于VHDL语言采用模块化的设计方法进行了实现,对于HDB3码的实现本章使用了三个模块:添加破坏点V模块,添加B模块,单/双极性变换模块,由于在EDA的平台上不能处理负信号的缘故,本文对HDB3码极性变换采用硬件电路来实现,取得了较好的效果。 对编码进行了仿真,以仿真结果来看编码过程是正确的。 从实现的过程来看,基于EDA平台上采用模块化的设计的优点是在于工作的过程中,可以把编辑的代码下载到硬件平台上直接校验其正确性从而节省了系统的开发时间,同时采用模块化的设计便于查找出在编译系统是发生的错误,便于以后对系统进行升级优化。 基于FPGA的HDB3编译码的建模与实现 HDB3码译码器的建模与实现第四章 HDB3码译码器的建模与实现 HDB3码的译码规则及建模根据HDB3码的编码规则,V脉冲的极性必然和前面非0脉冲的极性一致。 而当无V脉冲时,HDB3码的脉冲是“+1”和“1”交替变换出现的。 而当连续出现两个“+1”或“1”时,若无误码时,则可知后一个一定是V脉冲。 因而可从所接收的信码中找到V码,然后根据加取代节的原则,在V码前面的三位代码必然是取代码,在译码时,需要全部复原为四个连“0”。 只要找到V码,不管V码前面两个码元是“0”码,还是3个“0”码,只要把它们一律清零,就完成了扣V和扣B的功能,进而得到原来的二元信码序列。 :双/单极性变换检测V和扣V扣B双相码HDB3NRZ HDB3码译码器模型,HDB3码的译码器模型中,是由单双极性变换电路和V检测扣V扣B两个模块组成。 单双极性变换电路实现代码的双单极性的变换,而扣V和扣B电路在时钟的控制下,完成扣B和扣V的 功能的。 由前面分析可知,EDA软件QUARTUSⅡ是不能在波形仿真中处理双/单极性变换的,因此,本文采用一个外部硬件电路来实现双/单极性的变换。 译码中双/单极性的实现在本论文设计中,HDB3码的双单极性的变换是以AD790和SE5539为核心芯片组成的硬件电路;AD790是一种低功耗、低偏置电压双通道的电压比较器,还是一种高精度的电压比较器,~+。 SE5539是一种高频率的集成运放电路。 ,此双/单极性变换是由AD790和SE5539为核心来实现双单极性的变换,图中输入信号HDB3_IN来自编码模块的HDB3_OUT端口,其上半部分在未接反相器74LS04与后面的部分电路时,电路是一个双限比较器(窗口比较器),当+5HDB3_IN+1时输出为低电平,其余的情况输出全部为高电平,然后经过反相器输出,从而达到检测出“+1”信号的目的,图的下半部分是一个高精度整流电路,当HDB3_IN0或HDB3_IN=0时,必然使8引脚输出为低电平,从而导致D2截止D1导通,R10中的电流为0,则最终DEHDB3_OUT_H输出为0,同理,可以推出当HDB3_IN0时,DEHDB3_OUT_H输出为1,达到检测“1”的目的,整合电路,最终得到检测“+1”和“1”的功能。 由此可知当输入“+1”输出的是01,输入“1”时输出的是10,输入“0”时输出的是00。 译码的硬件实现部分 基于VHDL译码器的实现根据译码器的译码原理。 根据图示可以看出,HDB3码的译码器比较的简单,在其程序模块中,只有计“+1”计数器COUNT01,计“1”计数器COUNT10和一个5位的移位寄存器所组成。 HDB3码译码器的程序设计,译码器的程序设计的难点是在于设计一个五位的移位寄存器,本程序中的移位寄存器是采用标准逻辑量来实现的,与前面的编码器是采用D HDB3码译码器程序流程图触发器来实现的略有不同,现给出HDB3码译码器的部分代码,完整的代码请参见附录二。 PROCESS(CLK,CLR) BEGIN IF(CLK39。 EVENT AND CLK=39。 139。 )THEN IF(CLR=39。 139。 )THEN COUNT01=0。 COUNT10=0。 REG0=39。 039。 REG1=39。 039。 REG2=39。 039。 REG3=39。 039。 REG4=39。 039。 ELSEIF(HDB3_DATA=01)THEN +1 IF(COUNT01=1)THEN 101 ……………………………… END IF。 ELSIF(HDB3_DATA=10)THEN 1 IF(COUNT10=1)THEN COUNT01=0。 COUNT10=0。 …………………… REG4=REG3。 V ELSE COUNT01=0。 COUNT10=1。 REG0=39。 139。 REG1=REG0。 REG2=REG1。 REG3=REG2。 REG4=REG3。 1 END IF。 ELSE COUNT01=COUNT01。 COUNT10=COUNT10。基于fpga的hdb3编译码的建模与实现--第六稿(定稿
相关推荐
京:科学出版社 .2020。 3. 赵俊超等 .集成电路设计 VHDL 教程 .【 M】 .北京 .北京希望电子出版社 .2020。 4. 周俊峰 陈 涛 . 基于 FPGA 的 直 接 数 字 频 率 合 成 器 的 设 计 和 实现 . 年 附录 : 顶层程序 文件名: library IEEE。 use。 use。 use。 entity top is Port (sysclk,reset
码器的输出进行片选,译码器的两个地址引脚由单片机控制。 使用三块双口 RAM 的好处是可以顺利地接受单片机发送过来的数据,不必再增加额外的接口电路。 DDS 电路输出相位地址寻址波形数据存储器,波形数据存储器的输出和基准波模块的输出通过数字比较器 产生 PWM 波形。 DDS 基本原理 直接数字合成 (DDS, Direct Digital
扰性的高频信号,由于不须运算发大器,参数 计算容易,对系统要求不高。 因此在本设计中,利用 RC 低通滤波器就可以达到要求。 第三章 软件设计 相关软件采用 VHDL 硬件描述语言编写。 VHDL 是用于逻辑设计的硬件描述语言, 为IEEE 标准。 利用它,硬件的功能描述可完全在软件上实现。 它支持自顶向下( Top Down)和基于库( Library_Based)的设计方法,支持同步电路
第一章 绪 论 数字 秒表是日常生活中比较常见的电子产品 ,其设计也是 EDA 技术中重要的设计之一 [1]。 EDA 是 20 世纪 90 年代初以来迅速发展起来的现代电子工程领域的一门新技术。 它以可编程逻辑器件 (PLD)为载体 ,以计算机为工作平台 ,以EDA 工作软件为工作环境 ,以硬件描述语言 (VHDL)为电子系统功能描述方式 ,以电子系统设计为应用方向的电子产品自动化设计过程。
P Builder 设计工具,与 MATLAB 相结合,利用 MATLAB 中自带的滤波器模块与 DSP Builder 中所包含的 FPGA 模块构建 FIR 数字滤波器,并在 Simulink中实现仿真。 第 3 章 FPGA DSP 系统设计分析 DSP 的基本概念 数字信号处理 (DSP)技术的迅速发展,已经广泛应用于 3G 通信,网络会议,多媒体系统,雷达声纳,医学仪器
分编码器 ,将绝对码变为相对码 ,然后通过符号扩展 ,与余弦波形相乘进行 DPSK调制。 调制后的数据经过数据位数的调整 ,送入数模转换器 ,转换成模拟信号后输出 ,从而完成调制部分的工作。 通过对通信原理的回顾和总结,以及查阅相关的信源信道编码以及模数,数模转换相关知识,达到设计有线相移载波传输的目的,在不断学习新的知识以及归纳复习老的知识的同时,提高自身对电子线路的设计能力。 第二章