找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的汉明距离电路的实现

[复制链接]
admin 发表于 2013-3-21 12:09:44 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  当今时代已经成为信息化时代,而信息的数字化也越来越为研究人员所重视。数字化技术已经引发了一场范围广泛的产业革命,各种家用电器设备,信息处理设备都将向着数字化的方向变化。如数字电视、数字广播、数字电影、DVD等等,同时现在的通信网络也向着数字化的方向发展。随着数字化的发展,数字集成电路也得到了广泛应用。20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元比较灵活、集成度高以及适用范围广等特点。同时,这两种器件也兼容了PLD和通用门阵列的优点,可实现较大规模的电路编程同时也很灵活。
     汉明距离在信息论中的定义是两个等长字符串之间的汉明距离,也就是两个字符串对应位置的不同字符的个数。例如:*1011101与1001 001之间的汉明距离就是2;*2143896与2233796之间的汉明距离为3;*“toned”与“roses”之间的汉明距离为3。
     在通信中,累计定长二进制字中发生翻转的错误数据位通常也被称为信号距离。事实上,汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。
     1 硬件设计
     在扩频通信和数字突发通信系统中,接收机进行的数字相关检测或独特码检测,实际上就是本地一组确定序列的一位二进制数,接收机将接收到的数据连续不断的送入N位移位寄存器中,这样,任一瞬间移位寄存器中的内容即为一串二进制码,移位寄存器的输出作为ROM的地址输入,这样,经查找表运算后,ROM就可输出所需的数据,并将所得数据送入汉明计算电路以得到汉明距离,再经过门限判决输入的汉明距离。其汉明距离的计算电路框图如图1所示。
    20121107053217231471978.jpg
     1.1 8位并入串出移位寄存器
     图2是本系统中的并入串出移位寄存器电路图。图2中,当移位/置入控制端( 20121107053217262711979.jpg )为低时,并行数据(A-H)被置入寄存器;而当 20121107053217293961980.jpg 为高电平时,并行置数功能被禁止。当CLK和CLK INK有一个为低电平且 20121107053217325211981.jpg 为高电平时,另一个时钟则可以输入;当CLK和CLK INK有一个为高电平时,另一个时钟被禁止:而只有在CLK为高电平时,CLK INK才可变为高电平。
    20121107053217340841982.jpg
     1.2 ROM查找表的设计
     用FPGA设计汉明距离电路的另一个关键是存储器ROM,图3所示是一个lpm_rom的器件图。设计时,移位寄存器的输出作为ROM的地址输入,这样,经查找表运算后,ROM就可以输出所需的汉明数据。
    20121107053217372091983.jpg
     1.3 逻辑计算电路
     图4所示是本系统中的逻辑计算电路的c5in3out的器件图。通过c5in3out可计算出序列D6~D32的汉明距离。序列D0~D5(即图4中的A,B,C,D,E)的汉明距离可以采用逻辑函数获得。逻辑计算电路有三个二进制输出变量,由最高有效位到最低有效位依次为A、B、C(即图4中的X,Y,Z),其逻辑表达式为:
    20121107053217418961984.jpg
    20121107053217481461985.jpg
     1.4 汉明加法器
     图5所示是一个汉明加法器的add器件图。add通常是采用求和网络法求和。求和网络法将ROM输出的数据两两通过一个加法器相加后,可将得出的结果再两两通过一个加法器相加,依次将各项计算结果相加在一起,其最终的累加结果便是汉明距离。
    20121107053217512711986.jpg
     2 汉明电路的仿真调试
     2.1 8位并入串出移位寄存器的maxpluslI仿真
     8位并入串出移位寄存器maxplusII波形仿真如图6所示。其中的Clk为移位时钟信号;Load为并行数据预置使能信号;Din是8位二进制并行预置数据端口;Qb表示当前值reg(0)向qb输出;Reg(8)为当前值和移位值(如:9A 1001 1010B;移位后:4D 0100 1101 B:第二次移位:A6 10100110 B)。
    20121107053217543961987.jpg
     2.2 32位序列汉明距离电路的实现仿真
     选取查找表-求和网络法来实现32位汉明距离的计算时,可分别将(D6~D14)、 (D15~D23)、(D24~D32)作为查找表的地址线,再由此计算出序列D6~D32的汉明距离。而其序列D0~D5的汉明距离可以采用逻辑函数获得,具体的波形仿真如图7所示。
     图7中,Datain『..0』为汉明距离电路的输入端口;Out『4..0』为汉明距离计算输出端口(内置的32位数可用十六进制表示为000000 00)。例如F800A08C即1111 1000 0000 0000 1010 0000 10001100B,输出的汉明距离d为10。
     3 结束语
     设计完成后,可使用FPGA(即现场可编程门阵列)进行下载验证,FPGA是专用集成电路(ASIC)领域中的一种半定制电路,FPGA既可解决定制电路的不足,又可克服原有可编程器件门电路数有限的缺点。而使用MaxPlusⅡ软件和VHDL语言进行电路设计,不仅可以进行逻辑仿真,还可以进行时序仿真。由于本设计在编写过程中使用了较多的与门和异或门,所以,在波形仿真图中,波形显示具有比较长的延时。但是,自行编写的计数器功能完善,程序简单明了,完全可以实现32位汉明距离的计算。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 09:45 , Processed in 0.059255 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表