海明码的生成和校验

合集下载

说明海明码校验的工作机制

说明海明码校验的工作机制

说明海明码校验的工作机制海明码校验的工作机制。

海明码校验是一种常用的错误检测和纠正技术,它可以帮助我们在数据传输过程中检测和纠正错误,确保数据的完整性和准确性。

海明码校验是由美国数学家理查德·W·海明提出的,它利用了一些数学原理和算法来实现对数据的检验和纠正。

在本文中,我们将详细介绍海明码校验的工作机制,包括海明码的生成和校验过程,以及它的应用场景和优缺点。

海明码的生成过程。

海明码是一种特殊的纠错码,它可以通过一些简单的数学运算来生成。

海明码的生成过程包括以下几个步骤:1. 数据分组,首先,需要将要传输的数据分成若干个数据块,每个数据块包含若干个比特(0或1)。

2. 添加校验位,对于每个数据块,需要添加一些校验位来实现错误检测和纠正。

校验位的数量取决于数据块的大小和需要实现的纠错能力。

3. 计算校验位,校验位的计算是通过一些数学运算来实现的,通常是利用异或操作和位移操作来计算。

校验位的值是通过对数据块中的比特进行运算得到的。

4. 合并数据块,将数据块和对应的校验位合并成一个完整的海明码。

海明码的校验过程。

一旦生成了海明码,就可以在数据传输过程中使用它来进行校验。

海明码的校验过程包括以下几个步骤:1. 数据传输,将生成的海明码发送给接收方进行数据传输。

2. 接收数据,接收方接收到海明码后,需要对其进行解码,得到原始的数据块和校验位。

3. 计算校验位,接收方利用接收到的海明码中的数据块和校验位,重新计算校验位的值。

4. 检测错误,接收方将重新计算得到的校验位和接收到的校验位进行比较,如果两者不一致,则说明数据传输过程中出现了错误。

5. 纠正错误,如果检测到错误,接收方可以利用海明码中的校验位来纠正错误,通常是通过一些数学运算来实现的。

海明码的应用场景。

海明码校验在计算机网络、通信系统、存储系统等领域都有广泛的应用。

它可以帮助我们在数据传输过程中检测和纠正错误,确保数据的完整性和准确性。

海明码的实验报告

海明码的实验报告

海明码的实验报告一、实验目的和背景海明码(Hamming Code)是一种能够检测和纠正单一错误的错误检测和纠正编码方法,它使用了冗余位(Redundancy Bit)来增加数据的可靠性。

本实验的目的是通过编写程序来实现海明码的生成、纠正和检测功能,并验证海明码的可靠性。

二、实验内容与步骤1. 生成海明码:编写程序实现海明码的生成功能,读取输入的原始数据并生成相应的海明码。

2. 引入错误:编写程序在生成的海明码中引入1个错误位。

3. 纠正错误:编写程序实现海明码的错误纠正功能,通过纠正之后的码字与原始数据进行比对,验证纠正效果。

4. 检测错误:编写程序实现海明码的错误检测功能,通过检测错误的海明码数据,输出错误位置。

三、实验过程与结果1. 生成海明码根据海明码的生成规则,我们编写了一个生成海明码的程序。

用户在控制台输入原始数据,程序经过处理后输出相应的海明码。

例如,输入数据为`1101`,生成的海明码为`1101001`。

2. 引入错误在生成的海明码中,我们通过编写程序随机选择一个位置并进行改写,引入1个错误位。

例如,原本生成的海明码为`1101001`,改写后为`1101101`。

3. 纠正错误根据海明码的纠正规则,我们编写了一个纠正错误的程序。

用户输入引入错误后的海明码,程序经过处理后输出经过纠正后的码字。

例如,输入的海明码为`1101101`,经过纠正后输出的码字为`1101001`。

4. 检测错误根据海明码的检测规则,我们编写了一个检测错误的程序。

用户输入海明码,程序经过处理后输出错误位置。

例如,输入的海明码为`1101101`,程序输出错误位置为`5`。

四、实验结果分析通过实验结果可以得出以下结论:1. 海明码的生成功能能够准确地将原始数据转换成相应的海明码。

2. 引入错误后,海明码的纠正功能可以将引入的错误位纠正回原始数据。

3. 海明码的检测功能能够准确地检测出错误位置。

综上所述,海明码具有较高的可靠性,能够有效地检测和纠正单一错误。

海明码纠错原理

海明码纠错原理

海明码纠错原理海明码(Hamming Code)是一种用于检错和纠错的编码方式,由理查德·海明在1950年提出。

它可以发现并纠正单一位错误,也可以检测并纠正双位错误。

海明码的纠错原理是通过增加校验位来实现的,下面我们来详细了解一下海明码的纠错原理。

首先,海明码是一种线性分组码,它的编码方式是将数据位和校验位按照一定规则排列组合而成。

在传输数据时,发送端会对数据进行编码,添加校验位后发送出去;接收端收到数据后,会对接收到的数据进行解码,并根据校验位进行错误的检测和纠正。

其次,海明码的纠错原理是基于奇偶校验的。

在海明码中,校验位的位置是通过2的幂次方来确定的,例如第1、2、4、8、16位是校验位,其余位是数据位。

对于校验位而言,每一个校验位都负责一定范围内的数据位的奇偶校验。

当接收端接收到数据后,会对每个校验位进行奇偶校验,如果发现某个校验位的奇偶校验与接收到的数据不一致,就会根据校验位的位置确定出错的位置,并进行纠正。

最后,海明码的纠错原理可以通过一个简单的例子来说明。

假设发送端要发送一个4位的数据1010,按照海明码的规则,需要添加3个校验位。

经过编码后,发送的数据变为1010101。

在传输过程中,如果某一位发生了错误,例如1010101中的第4位发生了错误,接收端在接收到数据后,会对每个校验位进行奇偶校验,发现第2位和第4位的奇偶校验不一致,根据校验位的位置,可以确定出错的位置是第4位,然后进行纠正,将错误的位从0变为1。

最终,接收端得到的数据是1010,错误被成功纠正。

综上所述,海明码的纠错原理是通过增加校验位来实现的,通过对校验位的奇偶校验来检测错误,并根据校验位的位置进行错误的定位和纠正。

海明码在通信领域有着广泛的应用,能够有效地提高数据传输的可靠性和稳定性,是一种非常实用的纠错编码方式。

纠错编码-海明码

纠错编码-海明码

纠错编码-海明码⼀.海明码海明码只能发现双⽐特错误,纠正单⽐特错误⼆.⼯作原理“动⼀发⽽牵全⾝”,因为海明码是⼀个多重校验码,也就是码字中的信息码位同时被多个校验码进⾏校验三.⼯作流程1.确定校验码位数海明不等式2^r>=k+r+1,r为冗余信息位,k为信息位eg:要发送的数据为D=101101则数据的位数k=6满⾜的不等式最⼩r为4也就是D=101101的海明码应该有6+4=10位,其中原始数据6位,校验码4位2.确定校验码和数据的位置还是上⾯的那个例⼦D=101101,假设这4位校验码分别为P1,P2,P3,P4,数据从左往右为D1,D2...D6校验码必须是在2n次⽅位置,如第1、2、4、8、16、32,...位(对应2^0 2^1 2^2 2^3 2^4 2^5……,是从最左边的位数起的),这样⼀来就知道了信息码的分布位置,也就是⾮2n次⽅位置,如第3、5、6、7、9、10、11、12、13,...位(是从最左边的位数起的)即数据位12345678910代码P1P2D1P3D2D3D4P4D5D6实际值1011013.求出校验码的值D=101101⼆进制0001001000110100010101100111100010011010数据位12345678910代码P1P2D1P3D2D3D4P4D5D6实际值0010011101可以看出P1对应的⼆进制第⼀位为1(看⼆进制是⼏位的话就看最后⼀个数据位是⼏位⼆进制格式)可以发现D1,D2,D4,D5对应的⼆进制第⼀位也是1,则P1代码校验的数据为D1,D2,D4,D5令所有要校验的位异或=0(即同0异1)1 0 1 0p1(第1个校验位,也是整个码字的第1位)的校验规则是:从当前位数起,校验1位,然后跳过1位,再校验1位,再跳过1位,....。

这样就可得出p1校验码位可以校验的码字位包括:第1位(p2(第2个校验位,也是整个码字的第2位)的校验规则是:从当前位数起,连续校验2位,然后跳过2位,再连续校验2位,再跳过2位,……。

海明码详解

海明码详解

海明码是由R·hamming 在1950所提出的,它可以纠正一位差错的编码,但它的编码效率要比正反码高,现以奇偶校验码为例,a0=a1⊕a2⊕a3⊕…⊕a n-1其中a0是校验码,接收时可按关系式S= a0⊕a1⊕a2⊕a3⊕…⊕a n-1进行计算时,若S=0则无差错,若S=1则表明出错,则上面的S式子称为监督关系式,S 称为校正因子。

在奇偶校验的情况下,只有一个监督关系式和一个校正因子,其取值只有两种可能(0或1),分别表示正确和出错两种情况,而不能指出出错的位置。

若有两个校正因子,则有四种可能,一种表示无错,另三种表示出错,并可以指出出错的位置。

一般来说,若信息位为k位,冗余位为r位,则数据位n=k+r,用r的监督关系式来产生r个校正因子,区分无错和在n个不同的位置的一位错,则要求满足公式2 r≥ n+1 或 2 r≥ k+r+1此式子称为海明公式,r叫海明距离,若k=4时则r>=3,当取r=3时,n=k+r=4+3=71.编码步骤(1)根据信息位数,确定校验位数,2r≥k+r+1,其中,k为信息位数,r为校验位数。

求出满足不等式的最小r,即为校验位数。

表1-2有效信息位数k与校验位位数r的对应关系(2)计算机校验位公式。

表1-3其实可以当成一个公式来套用,如有已经编码的数据1100 1001 0111。

我们只需把这些数据填充到校验公式,即可得到信息位与校验位。

表1-3 校验位公式表填充的方法是这样的,首先看数据的最低位(即右边第1位),最低位为1,把1填充在公式表的r0位置,接着取出数据的次低位数据(即右边第2位),把它填充到r1位置,把右边第3位数填充到I1位置。

依此类推,我们可以得到表1-4。

表1-4 校验位公式实例表表中第2行数据为1100 001 1,这就是数据1100 1001 0111的编码信息,而表格第3行是1 011,这便是校验位。

注意:·校验位r n 所在位数为2n·信息位下标从1开始,而校验位下标从0开始。

海明码详解(精)

海明码详解(精)

海明码详解这两天也在研究海明码的问题,把我的理解说给你吧,按照我说的可以顺利得到海明码步骤:一、确定校验码的位数k二、确定校验码的位置三、数据的位置四、求出校验位的值首先,海明码的作用是:在编码中如果有错误,可以表达出第几位出了错,二进制的数据只有0和1,修改起来很容易,求反即可,这需要加入几个校验位。

重要的知识点:海明码的组成,不是简单的在后面加上校验位,海明码≠数据位+检验位那检验位该怎么加呢?它是根据总的位置来加的,加在【2的几次幂】的位置上,这个位置不是我们通常的从右向左数位置,刚好相反,是从左右如下图:P是校验位, D是数据位:原始的数据是:101101 校验位是插到了 1 2 4 8这几个位置上的。

位置M1M2M3M4M5M6M7M8M9M10甲P1 P2 D1P3 D2D3D4P4 D5D6乙10 110 1步骤一、确定校验码的位数k公式:m+k+1≤2^k (m是数据位的位数,K是要加的校验位的位数数据长是4位,校验码就是3位4+k+1≤2^kK最小只能是3数据长是5,6,7,8,9,校验码就是4位5+k+1≤2^kK最小就只能取4101101 数据位是6位,那校验位应该是4位,那总位数是:6+4=10位步骤二、确定校验码的位置位置M1M2M3M4M5M6M7M8M9M10甲P1 P2 D1P3 D2D3D4P4 D5D6乙10 110 1(图1)注意:【位置是从左----------右编码】(网上好多都反了,都是从右往左的,这应该是错的)校验位就插在2的幂次方的位置上。

4个检验位就是插到,2的0次方=1,2的1次方=2,2的2次方=4,2的3次方=8的位置上。

始上(图1)步骤三、数据的位置数据位置就按顺序写入进去就OK了,不要写到校验位就是的了。

步骤四、求出校验位的值也就是求图1中:p1 p2 p3 p4 的值。

那这几个数该如何求值呢?这里就要引进一个线性码的概念了,就是这4位校验码和图1中的那些位置上的数有关系呢?这里有一个进制转换的问题要先解决:因为是4位校验码,所以我们可以s4 s3 s2 s1 这个数来表示这个4位校验码,也就是p4 p3 p2 p1M1号位是十进制的1 转成四位二进制数就是:0001 即M1 和s1有关系同样的道理M2 变成四位二进制数: 0010 0010----s4 s3 s2 s1 s2的位置上是1 ,所以M2和S2有关系。

海明码校验和纠错原理详细

海明码校验和纠错原理详细

海明码校验和纠错原理详细海明纠错码当计算机存储或移动数据时,可能会产⽣数据位错误,这时可以利⽤汉明码来检测并纠错,简单的说,汉明码是⼀个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。

海明码(Hamming Code)是⼀个可以有多个校验位,具有检测并纠正⼀位错误的纠错码,所以它也仅⽤于通信特性较好的环境中,如以太局域⽹中,因为如果通道特性不好的情况下,出现的错通常也不是⼀位。

海明码的检错、纠错基本思想是将有效信息按某种规律分成若⼲组,每组安排⼀个校验位进⾏奇偶性测试,然后产⽣多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反来将其纠正。

要采⽤海明码纠错,需要按以下⼏个步骤。

1计算校验位数2 确定校验码位置3 确定校验码4 实现校验和纠错1. 计算校验位数它是这样的规定的:假设⽤N表⽰添加了校验码位后整个信息的⼆进制位数,⽤K代表其中有效信息位数,r表⽰添加的校验码位,它们之间的关系应满⾜:N=K+r≤2r-1。

如K=5,则要求2r-r≥5+1=6,根据计算可以得知r的最⼩值为4,也就是要校验5位信息码,则要插⼊4位校验码。

如果信息码是8位,则要求2r-r≥8+1=9,根据计算可以得知r的最⼩值也为4。

根据经验总结,得出信息码和校验码位数之间的关系如表5-1所⽰。

2.确定校验码位置上⼀步我们确定了对应信息中要插⼊的校验码位数,但这还不够,因为这些校验码不是直接附加在信息码的前⾯、后⾯或中间的,⽽是分开插⼊到不同的位置。

但不⽤担⼼,校验码的位置很容易确定的,那就是校验码必须是在2n次⽅位置,如第1、2、4、8、16、32,……位(对应20、21、22、23、24、25,……,是从最左边的位数起的),这样⼀来就知道了信息码的分布位置,也就是⾮2n次⽅位置,如第3、5、6、7、9、10、11、12、13,……位(是从最左边的位数起的)。

举⼀个例⼦,假设现有⼀个8位信息码,即b1、b2、b3、b4、b5、b6、b7、b8,由表5-1得知,它需要插⼊4位校验码,即p1、p2、p3、p4,也就是整个经过编码后的数据码(称之为“码字”)共有12位。

海明码

海明码

1.海明码的概念海明码是一种可以纠正一位差错的编码。

它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。

它必需满足以下关系式:2^r>=n+1 或2^r>=k+r+1海明码的编码效率为:R=k/(k+r)式中k为信息位位数r为增加冗余位位数[font class="Apple-style-span" style="font-weight: bold;"id="bks_cu2htj1g"]2.[/font][font class="Apple-style-span" style="font-family: ����; font-size: 12px; line-height: normal; " id="bks_4dxtg15k"][font]海明码的原理[/font]在数据中间加入几个校验码,将玛距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。

海明不等式:校验码个数为K,2的K次幂个信息,1个信息用来指出“没有错误”,其余2K-1个指出错误发生在那一位,但也可能是校验位错误,故有N<=2的K次-1-K能被校验。

海明码的编码规则:1.每个校验位Ri被分配在海明码的第2的i次的位置上,2.海明玛的每一位(Hi)是由多个/1个校验值进行校验的,被校验玛的位置玛是所有校验这位的校验位位置玛之和。

一个例题:4个数据位d0,d1,d2,d3, 3个校验位r0,r1,r2,对应的位置为:d3 d2 d1 r2 d0 r1 r0 ======b7 b6 b5 b4 b3 b2 b1校验位的取值,就是他所能校验的数据位的异或b1为b3,b5,b7的异或,b2为b3,b6,b7 b4为b5,b6,b7 [/font][font class="Apple-style-span" style="font-family: ����; font-size: 12px; line-height: normal; " id="bks_4dxtg15k"]海明玛传送到接受方后,将上三式的右边(b1,b2,b4)的逻辑表达式分别异或上左边的值就得到了校验方程,如果上题采用偶校验G1=b1 b3 b5 b7的异或G2=b2 b3 b6 b7的异或G3=b4 b5 b6 b7的异或若G1G2G3为001是第四位错若为011是第六位错[/font][font class="Apple-style-span" style="font-family: ����; font-size: 12px; line-height: normal;"] [/font]3.海明码的生成与接收特注:以下的+均代表异或方法一:1)海明码的生成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳航空航天大学
课程设计报告
课程设计名称:计算机组成原理课程设计
课程设计题目:海明码生成与校验电路的设计
院(系):计算机学院
专业:计算机科学与技术(物联网方向)
班级:
学号:
姓名:
指导教师:
完成时间:2016年1月4日-2016年1月15日
沈阳航空航天大学课程设计报告
目录
第1章总体设计方案 (1)
1.1设计原理 (1)
1.2设计思路 (1)
1.3设计环境 (2)
第2章详细设计方案 (4)
2.1顶层方案图的设计与实现 (4)
2.1.1设计方案 (4)
2.1.2器件的选择与引脚锁定 (6)
2.2底层模块的设计与实现 (7)
2.2.1产生模块的设计与实现 (7)
2.2.2出错模块的设计与实现 (8)
2.2.3 纠正模块的设计与实现 (10)
2.3仿真调试 (11)
第3章编程下载与硬件测试 (14)
3.1编程下载 (14)
3.2硬件测试及结果分析 (14)
参考文献 (16)
附录(程序清单或电路原理图) (17)
第1章总体设计方案
1.1 设计原理
海明校验码是由理查得·海明(Richard Hanmming)于1950年提出的,它不仅具有检测错误的能力,同时还具有给出错误所在的准确位置的能力,这在通信领域有着很广泛的应用。

海明码是奇偶校验的一种扩充。

它采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。

(1)数据位和校验位的关系
假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。

k位的校验码可以有2k个值。

如果能够满足:2k>=m + k+1,在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。

(2)海明码的编码规律
若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则海明码的编码规律通常是:
a.校验位与数据位之和为m,每个校验位P i在海明码中被分在2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。

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

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

1.2 设计思路
(一)海明码的生成:因为要求的是8位的二进制数据,所以此处的m为8,按照数据位和校验位的对应关系,k应为4,故海明码的总位数为12,可表示为:H12——H1,4个校验位P4~P1对应的海明码位号分别为:H8/H4/H2/H1,则有如下排列关系:D8D7D6D5P4D4D3D2P3D1P2P1
按照海明码的原理得出如下的表格:
P1=D1⊕D2⊕D4⊕D5⊕D7
P2=D1⊕D3⊕D4⊕D6⊕D7
P3=D2⊕D3⊕D4⊕D8
P4=D5⊕D6⊕D7⊕D8
(二)海明码的校验:
海明码校验函数(S函数)及校验过程 <偶校验>
S1=P1⊕D1⊕D2⊕D4⊕D5⊕D7
S2=P2⊕D1⊕D3⊕D4⊕D6⊕D7
S3=P3⊕D2⊕D3⊕D4⊕D8
S4=P4⊕D5⊕D6⊕D7⊕D8
1.3 设计环境
·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
·EDA环境:Xilinx foundation f3.1设计软件、COP2000仿真软件。

图1.1Xilinx foundation f3.1设计平台
第2章详细设计方案
2.1 顶层方案图的设计与实现
实现海明码的生成与校验逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

完成原理图的设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1设计方案
顶层图形文件是由产生(如图2.1),出错(如图2.2)和纠正(如图2.3)三个模块元件组装而成的一个完整的设计实体组成。

图2.1 产生模块
图2.2 出错模块
图2.3 纠正模块
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。

(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定。

2.2 底层模块的设计与实现
海明码生成与校验设计电路是由3个模块组成,其中产生模块是由8个输入端输入海明码的8位数据位,经异或门求得校验位P1,P2,P3,P4,由此输出12位海明码;出错模块是由三八译码器来改变输入数据的某一位,从而产生错误的海明码;纠正模块是对错误的数据进行纠正修改。

2.2.1产生模块的设计与实现
(1)元件结构
海明码产生模块,原理是通过输入的数据IN1~IN8按照公式:
P1=D1⊕D2⊕D4⊕D5⊕D7,
P2=D1⊕D3⊕D4⊕D6⊕D7,
P3=D2⊕D3⊕D4⊕D8,
P4=D5⊕D6⊕D7⊕D8,
生成了4位校验码P1/P2 /P3/P4,从而得出了12位海明码。

图2.4产生模块内部电路
(2)功能仿真
对产生模块进行功能仿真,验证其功能的正确性。

图2.5产生模块仿真
结果分析:输入IN1-IN8为10011001,输出O1-O12为101000101001,结果是正确的海明码。

2.2.2出错模块的设计与实现
(1)元件结构
本模块的原理是通过3线8线译码器的3进1出,输出一个1,与8位输入数据中的一位异或,使之发生错误,从而得出一组错误的数据。

图2.6出错模块内部电路
(2)功能仿真
对创建的出错元件进行功能仿真,验证其功能的正确性
图2.7出错模块仿真
结果分析:输入IN1-IN3为000,输入IN1-IN8为10011001,输出O1-O8为
100000101001,其中O1为出错位,产生了一位错误。

2.2.3纠正模块的设计与实现
(1)元件的内部结构
原理是通过公式:
S1=P1⊕D1⊕D2⊕D4⊕D5⊕D7,
S2=P2⊕D1⊕D3⊕D4⊕D6⊕D7,
S3=P3⊕D2⊕D3⊕D4⊕D8,
S4=P4⊕D5⊕D6⊕D7⊕D8,连成的电路对数据进行校验,判断数据是哪一位出错,并对出错的那一位与错误数据异或,从而得出正确的数据。

图2.8纠正模块内部电路
(2)功能仿真
对纠正模块进行功能仿真,验证其功能的正确性
图2.9纠正模块仿真
2.3 仿真调试
仿真调试是为了验证设计电路逻辑功能的正确性,输入8位二进制数据位生成12位海明码,中间经三八译码器来改变一位数据位,经校验电路修改,最后输出正确的8位二进制数据位。

(1)创建仿真信号
在进行仿真时,输入数据位用了上面的两组数据。

第一组数据,IN1~IN8为10011001,生成的海明码O1~O12为101000101001。

第二组数据,IN1~IN8为11001100,生成的海明码O1~O12为101110001100。

这两组数据又经三八译码器改变其中一位错的数据输入到纠正电路里,经纠正校验后输出原本的数据位,最终实现了海明码生成和校验功能。

(2)仿真结果
功能仿真结果如图2.10、图2.11所示,仿真数据结果如表2.3所示。

对表中内容进行计算,可以看出功能仿真结果是正确的,进而说明此次电路设计成功。

表2.3:
图2.10 第一组数据功能仿真结果
图2.11 第二组数据功能仿真结果
第3章编程下载与硬件测试
3.1编程下载
利用Xilinx ISE的编程下载功能,下载编译我的工程,从而得到的*.bin文件,即可下载到XCV200实验板的XCV200可编程逻辑芯片中,完成编译下载。

3.2 硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。

海明码数据位的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

表3.1XCV200实验板信号对应关系
输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1输入数据,同时观察LEDA和LEDB的输出,得到如表3.2所示的硬件测试结果。

表3.2硬件测试结果
图3.1 cop2000仿真下载结果
结果分析:输入K1:1-K1:3为000,对应CHUCUO.IN3-CHUCUO.IN1,输入CHANSHENGIN.1-CHANSHENG.IN8为1001001,输出B7—A4为101000101001对应CHANSHENG.O1-CHANSHEN.O12。

参考文献
[1] 范延滨,微型计算机系统原理、接口与EDA设计技术(第三版).北京:北京
邮电大学出版社,2006
[2] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006
[3] 唐朔飞,计算机组成原理(第二版).北京:高等教育出版社,2007
[4]周大海,计算机组成原理实验与课程设计教程.北京:北京航空航天大学出版社,2015
附录(程序清单或电路原理图)
总电路原理图
沈阳航空航天大学课程设计报告附录。

相关文档
最新文档