当前位置:文档之家› 海明码生成与校验电路的设计

海明码生成与校验电路的设计

沈阳航空航天大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (3)第2章详细设计方案 (5)2.1顶层方案图的设计与实现 (5)2.1.1创建顶层图形设计文件 (5)2.1.2器件的选择与引脚锁定 (5)2.1.3编译、综合、适配 (7)2.2功能模块的设计与实现 (7)2.2.1 取补模块的设计与实现 (7)2.2.2选择器模块的设计与实现 (9)2.2.3 乘数补码移位寄存器模块的设计与实现 (12)2.2.4 部分积移位寄存器模块的设计与实现 (14)2.2.5加法器模块的设计与实现 (16)2.3仿真调试 (16)第3章编程下载与硬件测试 (19)3.1编程下载 (19)3.2硬件测试及结果分析 (19)参考文献 (21)附录(电路原理图) (22)第1章总体设计方案1.1 设计原理海明校验码是由理查得·海明(Richard Hanmming)于1950年提出的,它不仅具有检测错误的能力,同时还具有给出错误所在的准确位置的能力,这在通信领域有着很广泛的应用。

海明校验码是在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。

当某一位出错后,就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了证据。

海明码能检测出2位错误,并能纠正1位错误。

(1)数据位和校验位的关系假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。

然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系:2r>=k+r+1 (发现一位错)2r-1>=k+r (发现与自动校正一位错,并发现两位错)数据位与校验位的对应关系K值最小的r值1~4 5~11 12~26 27~57 58~120 4 5 6 7 8(2)海明码的编码规律若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则海明码的编码规律通常是:a.校验位与数据位之和为m,每个校验位P i在海明码中被分在2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。

b.海明码的每一位H i(包含数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。

这样安排的目的,是希望校验的结果能正确反映出出错位的位号。

1.2 设计思路(一)海明码的生成:因为要求的是8位的二进制数据,所以此处的k为8,按照数据位和校验位的对应关系,r应为5,由于总校验位只是检测两位出错还是一位出错,因此设计时不必考虑它的值,设r为4,故海明码的总位数为12,可表示为:H12——H1,4个校验位P4~P1对应的海明码位号分别为:H8/H4/H2/H1,则有如下排列关系:D8D7D6D5P4D4D3D2P3D1P2P1 按照海明码的原理得出如下的表格:海明码位号数据位/校验位参与校验的校验位位号被校验位的海明码位号=校验位位号之和H1 P1 1 1=1H2 P2 2 2=2H3 D1 1,2 3=1+2H4 P3 4 4=4H5 D2 1,4 5=1+4H6 D3 2,4 6=2+4H7 D4 1,2,4 7=1+2+4 H8 P4 8 8=8H9 D5 1,8 9=1+8H10 D6 2,8 10=2+8 H11 D7 1,2,8 11=1+2+8 H12 D8 4,8 12=4+8P1=D1⊕D2⊕D4⊕D5⊕D7P2=D1⊕D3⊕D4⊕D6⊕D7P3=D2⊕D3⊕D4⊕D8P4=D5⊕D6⊕D7⊕D8(二)海明码的校验:海明码校验函数(S函数)及校验过程 <偶校验>S1=P1⊕D1⊕D2⊕D4⊕D5⊕D7S2=P2⊕D1⊕D3⊕D4⊕D6⊕D7S3=P3⊕D2⊕D3⊕D4⊕D8S4=P4⊕D5⊕D6⊕D7⊕D8课程设计的要求为:(1)采用自上而下的设计方法,顶层设计使用原理图设计输入方式;底层设计输入方式自行选定;(2)课程设计的电路主要应包括:寄存器·P函数发生器和门电路等。

其中控制信号可选用外部开关或VHDL语言以控制器方式实现,其他部分可以调用系统资源库中的器件;(3)数据位数由指导老师指定;(4)对设计电路进行仿真并验证其正确性,仿真数据由指导老师给出;(5)实现编程下载和硬件测试;(6)独立设计·调试·仿真·下载和硬件测试并通过指导老师现场验收;(7)撰写课程实验报告。

课程设计的思路为:海明码的生成有着规律,通过其规律找出相同点1.3 设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由………•COP2000集成调试软件COP2000集成开发环境是为………….(2)EDA环境•Xilinx foundation f3.1设计软件图1.1Xilinx foundation f3.1设计平台Xilinx foundation f3.1是Xilinx公司主要的可编程器件开发工具,它可用来开发Xilinx公司的Spar-tan? Virtex? XC3000? XC4000? XC5200系列的FPGA芯片和XC9500系列的CPLD芯片。

该平台功能强大,主要用于百万逻辑门级的设计和1Gb/s的高速通信内核的设计。

利用该系统可完成从设计构想到比特流下载的全部过程。

该平台以工程管理器为主界面,同时集成了Xilinx公司以及其他公司的一些优秀软件。

第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图是………….2.1.1创建顶层图形设计文件顶层图形文件的设计实体……………….顶层图形文件结构如图2.1所示:图2.1 顶层图形文件结构图2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件……………(2)引脚锁定把顶层图形文件中的………………对应关系如表2.1所示:图形文件中的输入/输出信号XCV200芯片引脚信号GRD P50ZCLOCK P213FJW P47CLR P49VCC P48S1 P80S2 P81S3 P82S4 P84S5 P85S6 P86S7 P87Y1 P95Y2 P96Y3 P97Y4 P100Y5 P101Y6 P102Y7 P103E0 P63E1 P73E2 P72E3 P71E4 P70E5 P66E6 P65E7 P64表2.1 信号和芯片引脚对应关系2.1.3编译、综合、适配利用Xilinx foundation f3.1的原理图编辑器…………2.2 功能模块的设计与实现功能模块主要…………..2.2.1 取补模块的设计与实现进行求补的方法………….(1)电路模块设计原理图。

求乘数补码电路原理结构如图2.2所示,实际电路如图2.3所示。

图2.2 电路模块逻辑框图图2.3 实际取补电路(2)创建元件图形符号其元件图形符号如图2.4所示:图2.4 求乘数补码电路模块元件图形符号(3)功能仿真对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundation f3.1编译器的Simulator 模块实现。

仿真结果如图2.5所示:图2.5 取补模块仿真结果2.2.2选择器模块的设计与实现选择器主要由一个D2-4E 芯片和逻辑门电路控制选择输出。

输入端输入的值分别为补][X -,补][X 以及“00000000”(八个输入端为一组)。

D2-4E 芯片的0A 和1A 端的“0”和“1”控制0D ,1D ,2D ,3D 当10A A 为01时,输出为2D 高电平,即为2D 输出值为1,通过逻辑门电路实现输出为补][X -的值;当10A A 为10时,输出为1D 为 高电平,即为1D 输出值为1,通过逻辑门电路实现输出为补][X 的值;当10A A 为00时,输出为0D 为 高电平,即为0D 输出值为1,同时当10A A 为11时,输出为3D 为 高电平,即为3D 输出值为1,由于此时0D 和3D 输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“00000000”。

正好实现三输入一输出的选择器模块。

(1)创建选择器设计原理图。

三输入一输出选择器原理结构如图2.6所示:图2.6 选择器原理框图(2)创建元件图形符号其元件图形符号如图2.7所示:图2.7 选择器元件图形符号(3)功能仿真对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.8所示:(b(a))(d)(c)图2.8 选择模块仿真结果图2.2.3移位寄存器模块的设计与实现乘数补码移位寄存器模块由八个二选一选择器(MUXCY ),9个寄存器(FD )组成,CP 端输入的是1个低电平信号其余都为高电平信号。

MUXCY 选择器由控制信号S 端,输入端i D 和i C ,以及输出端O 组成,当S 端为低电平信号时,选择输出i D 值,当S 端为高电平信号时,选择输出i C 值。

每次的输出信号寄存到FD 中,MUXCY 输出端O 连接下一位的寄存器,这样就实现了移位寄存的功能。

移位的07Y 和08两个输出端恰好为n y 和1+n y 的两个值,n y 和1+n y 的两个值要分别接到选择器的0A 和1A 端。

(1)移位寄存器模块设计原理图。

乘数补码移位寄存器原理结构如图2.9所示:图2.9 乘数补码移位寄存器原理结构图(2)创建元件图形符号其元件图形符号如图2.10所示:图2.10 乘数补码移位寄存器电路模块元件图形符号(3)功能仿真对创建的乘数补码移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.11所示:图2.11 乘数补码移位寄存器模块仿真结果2.2.4 部分积移位寄存器模块的设计与实现部分积移位寄存器模块是由一个8位寄存器(FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。

由于部分积的初始值为“00000000”,这样就要求FD8CE寄存器的初始值为“00000000”,只需要给清零端CLR一个高电平的信号即可实现。

进行部分积移位时,要求移位过程中保证符号位相同,这样就需要把第一位符号位复制为两个数,而其余的6位相继向下串一位,这样就实现了移位功能,同时还保证的符号位相同。

(1)部分积移位寄存器设计原理图。

部分积移位寄存器原理结构如图2.12所示:图2.12部分积移位寄存器原理图(2)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundation f3.1编译器的Simulator模块实现。

相关主题