Logisim 头歌 偶校验编码设计图解及代码(计算机组成原理)

在这里插入图片描述

努力是为了不平庸~

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

 急的同学请直接点击目录跳到下方解答处!! 

目录

图解:

代码题解(免费):


实验目的

帮助学生掌握奇偶校验基本原理和特性,能在 Logisim 中实现偶校验编码电路,检错电路,理解校验码传输的原理。

实验内容

在 logisim 中打开实验资料包中的 data.circ 文件,在对应电路中完成偶校验编码电路。实验电路输入输出引脚如图所示。输入:16位原始数据;输出:17位校验码(16位数据位+1位校验位),其中校验位存放在最高位,注意输入16位原始数据的每一位都已经通过分线器利用隧道标签引出,可以直接复制到绘图区使用。

电路框架

data.circ

电路引脚

信号输入/输出位宽说明
原始数据输入16 位无冗余信息的原始数据
校验码输出17 位最高位为偶校验位的偶校验数据

电路测试

离线测试:电路框架提供了偶校验编码传输测试子电路,完成偶校验解码电路后可以进行测试,具体测试电路如下图所示:

EduCoder测试:完成实验后利用文本编辑工具打开 data.circ ,将所有文字信息复制粘贴到 Educoder 平台的 data.circ 文件中,再点击评测按钮即可进行本关测试,平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

  1. 00 bbaa 0bbaa
  2. 01 d6d0 0d6d0
  3. 02 bfc6 1bfc6
  4. 03 bcbc 0bcbc
  5. 04 b4f3 0b4f3
  6. 05 d1a7 1d1a7
  7. 06 cac7 1cac7
  8. 07 b9fa 1b9fa
  9. 08 bcd2 1bcd2
  10. 09 bdcc 0bdcc
  11. 0a d3fd 0d3fd
  12. 0b b2bf 1b2bf
  13. 0c d6b1 1d6b1
  14. 0d caf4 1caf4
  15. 0e b5c4 0b5c4
  16. 0f c8ab 0c8ab
  17. ...

常见调试问题

1、为什么测评是系统提示找不到GB2312ROM.CIRC?

注意实验文件data.circ 与GB2312ROM.circ应该放在同一个目录下,前者调用了GB2312ROM.circ电路,有可能大家做实验的时候没有放在一起,然后找不到这个文件的时候大家指向了另外一个目录的GB2312ROM.circ,这样对应文件的路径就带到电路文件中去了,上传平台时测试这个路径的文件肯定是不存在的,所以就无法加载这个电路。 解决这个问题可以采用以下两种方法: (1)本地修改,直接将本地的data.circ,GB2312ROM.circ剪切移动到一个新目录中,注意一定是剪切,要保证再次打开data.circ的时候找不到原来的GB2312ROM.circ,当提示找不到该文件的时候就就点击同目录的GB2312ROM.circ,然后存盘退出就ok,再次提交测试。 (2)直接EduCoder平台修改,直接在代码框搜索该文件路径 去掉绝对路径,改成如下形式即可 2、Educoder平台实际输出XXXX是什么原因? 如果你本地测试是ok的,上传Educoder平台出现输出为悬浮态X,主要有两种可能的原因。 第一种可能是你上传错了代码,有可能上传的是别的目录的框架文件,根本没有实现电路,所以没有任何输出,要判断是否是这种情况只需要将平台的代码下载到本地打开看看就知道了; 另外一种可能是你电路的封装引脚可能因为增删改引脚发生了变化,系统测试时对应的输出引脚没有连接正确,所以需要仔细检查待测电路的封装,目前所有框架文件均提供了待测电路的封装测试子电路,仔细检查引脚是否和连线错位。

解答:

图解:

代码题解(免费):

自己做的,立志打破积分下载垄断!代码有点长,上传资源了

 Logisim头歌偶校验编码设计图解及代码(计算机组成原理)资源-CSDN文库

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是一份详细的偶校验编码设计实验报告,供参考: 1. 实验目的 本次实验的目的是设计和实现一种偶校验编码方案,用于检测和纠正数字通信中传输过程中可能出现的错误。通过本次实验,我们旨在掌握偶校验编码的基本原理和实现方法,熟悉数字通信中的误码率、传输速率等概念,以及加深对编码和解码算法的理解和应用。 2. 实验原理 2.1 偶校验编码的基本原理 偶校验编码是一种基于校验位的编码方式,它通过向原始数据中添加一个奇偶性校验位来实现错误检测和纠正。具体来说,在偶校验编码中,每个字节(8位)都会被检验位“奇偶校验位”所代表。如果字节中的1的个数是奇数,那么校验位置1,否则置0。在接收端,如果检验位与数据位中的奇偶性不一致,则说明数据中存在错误,需要进行纠正。 2.2 偶校验编码的实现方法 偶校验编码的实现方法包括添加校验位、计算校验位和校验位的校验。具体步骤如下: (1)添加校验位:将原始数据按照字节(8位)进行分组,每个字节后面添加一个奇偶校验位,形成一个新的编码数据集。 (2)计算校验位:对于每个字节,统计其中1的个数,如果是奇数,则校验位为0,否则为1。 (3)校验位的校验:在接收端,将接收到的数据按照相同的方法重新计算校验位,然后与接收到的校验位进行比较。如果两者相同,则说明数据正确,否则需要进行纠正。 2.3 偶校验编码的优缺点 偶校验编码作为一种简单的校验码方案,具有以下优点: (1)实现简单:偶校验编码的计算和校验过程非常简单,只需要进行奇偶性的判断和位运算即可。 (2)传输效率高:由于偶校验编码只需要添加一个校验位,不会对原始数据进行大幅度的扩展,因此传输效率相对较高。 (3)适用范围广:偶校验编码适用于数字通信中的各种场景,包括串行通信、并行通信、无线通信等。 但是,偶校验编码也存在一些缺点: (1)不够安全:由于偶校验编码只能检测单一位的错误,无法检测多位错误或恶意攻击,因此在安全性方面存在较大的缺陷。 (2)容错能力有限:由于偶校验编码只能检测和纠正单一位的错误,因此在传输质量较差或噪声较大的情况下,容错能力有限。 3. 实验步骤 3.1 编写代码 本次实验使用Python语言编写偶校验编码的程序。具体代码如下: ```python def even_parity_encode(data): encoded = [] for byte in data: parity = 1 for bit in range(8): if byte & (1 << bit): parity ^= 1 encoded.append((byte << 1) | parity) return encoded def even_parity_decode(data): decoded = [] for byte in data: byte = byte >> 1 parity = 0 for bit in range(8): if byte & (1 << bit): parity ^= 1 if parity != (byte & 1): byte ^= 1 decoded.append(byte) return decoded ``` 3.2 调试程序 为了验证偶校验编码的正确性和有效性,我们需要进行一些实验和测试。具体步骤如下: (1)生成随机数据:使用Python中的random模块生成一组随机数据,作为原始数据。 (2)进行编码:将原始数据进行偶校验编码,并记录编码后的数据和校验位。 (3)模拟传输:将编码后的数据模拟传输,添加一些随机的噪声和错误。 (4)进行解码:将接收到的数据进行偶校验解码,并记录解码后的数据和错误率。 (5)对比数据:将编码前后的数据进行对比,计算错误率和传输速率。 3.3 实验结果 为了验证偶校验编码的正确性和有效性,我们进行了多组实验和测试,并记录了相应的数据和统计结果。以下是其中一组实验的结果: (1)原始数据:10101010 01010101 11001100 00110011 11110000 00001111 (2)编码后的数据:10101011 01010101 11001101 00110011 11110001 00001111 (3)错误率:3/48 = 6.25% (4)传输速率:6/8 = 75% 根据实验结果可以看出,偶校验编码可以有效地检测和纠正传输过程中的错误,同时也不会对传输速率造成过大的影响。 4. 实验分析 通过本次实验,我们可以得到以下结论和分析: (1)偶校验编码是一种简单、有效的数字通信校验码方案,可以用于检测和纠正传输过程中的单一位错误。 (2)偶校验编码的实现方法比较简单,只需要进行奇偶性判断和位运算即可。 (3)偶校验编码的优点包括实现简单、传输效率高、适用范围广等,但是也存在一些缺点,如不够安全、容错能力有限等。 (4)实验结果表明,偶校验编码可以有效地检测和纠正传输过程中的错误,同时也不会对传输速率造成过大的影响。 5. 实验总结 通过本次实验,我们深入了解了数字通信中的偶校验编码方案,掌握了其基本原理和实现方法,熟悉了数字通信中的误码率、传输速率等概念,以及加深了对编码和解码算法的理解和应用。同时,我们也发现了偶校验编码的优缺点,以及其在实际应用中的一些限制和挑战。在未来的研究和应用中,我们需要进一步探索数字通信中的其他校验码方案,以提高通信的安全性和可靠性。 6. 参考文献 [1] Stallings, W. (2005). Data and Computer Communications. Pearson Education. [2] Tanenbaum, A. S., & Wetherall, D. (2011). Computer Networks. Pearson Education. [3] Forouzan, B. A. (2013). Data Communications and Networking. McGraw-Hill Education.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉蕤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值