资讯详情

资讯详情

华中科技大学计算机组成原理实验——数据表达实验

所有资源都已打包工具 | 盗梦空间一、实验目的1.理解汉字机内码、区位码的概念并且能够利用相关的工具批量获取一段汉字文字的GB2312机内码利用简单的电路实现汉字GB2312机内码与区位码的转换2.了解字形码显示的基本原理能够在实验环境中实现汉字GB2312编码的字形码点阵显示3.掌握CRC校验码设计原理与纠错性能能单独设计实现16位汉字GB2312机内码的CRC编码体系并最终在实验环境中利用硬件电路实现对应的CRC编码和解码电路4.熟悉流水传输机制、流水暂停原理能够对实验环境提供的五段流水编码传输电路进行简单的修改实现数据编码在不可靠网络中的可靠传输。二、实验内容1.汉字编码实验1.1设计国标转区位码电路1.2汉字GB2312机内码提取实验1.3在线自动测试。2.CRC校验码设计实验2.1设计CRC校验编码电路2.2设计CRC校验解码电路2.3 CRC校验传输测试。3.编码流水传输设计实验三、实验工具Logisim仿真实验软件、浏览器四、方案设计与实验步骤及结果1.国标转区位码区位码和GB2312编码之间的转换关系为区位码A0A0HGB2312编码所以区位码 GB2312-A0A0H。图表 1 国标转区位码电路图2.汉字GB2312机内码提取实验汉字GB2312机内码可以通过编写程序获得也可通过市面上已经有免费的转换程序获得故借用浏览器搜索相关网页完成汉字GB2312机内码的获取需要注意汉字要全角输入。实现过程如“汉字GB2312机内码提取图”所示。图表 2 汉字GB2312机内码提取图3.在线自动测试将通过步骤2汉字GB2312机内码提取提取的机内码输入至汉字显示电路中的ROM存储器中运行电路进行测试直至LED点阵显示出正确的汉字显示结果显示频率应调整为8Hz。实现效果如“汉字显示电路图”所示。图表 3 汉字显示电路图4.CRC编码电路图表 4 CRC编码4.1 CRC编码原理输入的是16位数据输出22位CRC编码数据其中包括16位原始数据6位校验位其中一位为总的奇偶校验位校验位的位数也可由kr2^r-1得到。因此此时的r5不包含奇偶校验位选择的多项式G(x)位数则为r16位选择多项式G(x)100101原始16位数据Q(X),左移r5位成21位Q’(x)即后面补r个0再与多项式100101做模2运算得到的r位的余数将该余数替换掉Q’(X)后面的r位即将它后面的r个0替换成该余数。如图所示r5r4r3r2r1便是得到的余数而r6是总的奇偶校验位对所有数据进行异或便可得到该偶校验位r6。由于要采用并行编码又有以下公式因此可先对该16位数据按位与该多项式进行模2除运算再根据其实际数据进行异或操作。先将16位原始数据所对应位置上取1时与G(x)进行模2除运算得到各自的5位余数再用选择器进行根据每一位数据选择输入的是余数还是0最后将16个输入数据进行异或即可得到5位最终的余数。4.2选择器的使用原理图表 5 多路复用器此时选择器的选择端连接的是D1由于D1数据位宽为1则选择器有2^12个输入端。当D1为0则输入0端的数据即00若D1为1时则输入1端的数据即0a。将16位数据Dii12…16)作为选择端控制每位数据输入的是00还是该位与多项式进行模2运算后的余数最后将最终输入的16个5位数据进行异或即可得到最终的余数。图表 6 CRC编码4.3求16位与多项式的余数如上图所示Dii12…16分别位数CRC编码的第789…22位上因此其各自取1时与多项式模2除运算后的余数如下所示图表 7 多项式模2除运算所得余数根据以上分析编写出如下CRC编码电路图图表 8 CRC编码电路图5.CRC解码电路5.1 检码原理接收方在接受到CRC编码后将该编码与多项式进行模2除运算得到余数r’再根据q假设q为总的奇偶检验位,将所有数据进行异或可得的值进行判断数据是否产生错误及产生错误后是一位错还是两位错。有以下情况①r’ 0,q0,表示数据无出错②r’ !0,q1,表示发生一位数据出错③r’ 0,q1,表示该奇偶校验位出错即发生一位出错④r’ !0,q0,表示发生两位数据出错。在求余数时可参照设计CRC编码时求余数的方法。因为CRC编码最后的r位少于多项式位数因此可将最后r位看作一个整体让它与多项式进行模2除运算后得到的余数显然是它本身因此让它与其它16位数据与G(x)模2除后所得的余数进行异或即可得最后接收方检验的余数。如下图所示箭头所指的该5位数据位便是其最终得到的余数异或门输出位宽为5。图表 9 部分CRC解码电路5.2 纠错得原始16位数据若CRC编码发生出错而它的出错位可能为第789…22位(不考虑第1到6位因为我们要得的原始16位数据处于第7…22位上因此只需要判断这些位是否出错若出错对它们进行纠正再输出即可。因此将CRC编码按位取反后再与G(x)进行模2除运算若余数为0则说明该位出错因此将余数取反为1再与该位数据进行异或从而纠正该位的数据若余数不为0则说明该数据位并未发生传输错误因此对该余数取反为0再与该位的数据进行异或得到的数据仍为该数据位。x异或0xx异或1x反CRC编码按位取反即按位异或1后再与G(x)进行模2除运算根据公式可化成CRC编码%G(x)异或该数据位取1%G(x)。5.3 CRC解码电路图图表 10 CRC解码电路图6.CRC传输测试在CRC传输测试电路中测试CRC编解码电路的正确性通过发送方与接收方的汉字显示对比可以很直观地观察CRC编码纠错的效果。通过设置干扰位数可以测试电路在不同干扰下产生的效果。无错误、一位错和两位错时的结果分别如“CRC传输测试图1”、“CRC传输测试图2”和“CRC传输测试图3”所示。图表 11 CRC传输测试图1图表 12 CRC传输测试图2图表 13 CRC传输测试图3由结果可以看出当出现一位错时可以判断错误位数并纠正错误出现两位错时便只能检测出错误而不能纠错。7.编码流水传输设计实验7.1地址回滚当传输过程出现两位错时因为无法纠正错误所以需要重新传送信息可以使用选择器当无两位错发生时则按正常传输当出现两位错时则进行地址回滚。实现电路如“地址回滚功能实现电路图”所示。图表 14 地址回滚功能实现电路图7.2清空数据由于每个阶段都保存有原来的数据实现数据重传功能需要清空原来已有的数据即当数据传输有效且发生两位错时需要进行数据清0操作。实现电路如“清空数据功能实现电路图”所示。图表 15 清空数据功能实现电路图7.3暂停显示数据发生两位错时该数据不应该传入显示阶段显示阶段应该继续显示上个数据即暂停显示阶段的动作。有两种情况应该暂停显示阶段的动作1.发生两位错误时2.数据无效时。任意一种情况发生都要进行暂停显示阶段的动作。实现电路如“暂停显示功能实现电路图”所示。图表 16 暂停显示功能实现电路图图表 17 CRC编码流水传输电路图通过一位错纠错动作两位错地址回滚、清空数据和暂停显示的数据重传动作即可以实现在两位错误以内的数据正常传输实现效果如“CRC编码流水传输电路图“所示。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →