基于Logisim的CRC编码电路实现.pdf

实验内容 基于 Logisim 的 CRC 编码电路实现 基于 Logisim 的 CRC 编码电路实现 专业 班级 学号 姓名 电话 邮件 报告日期2015-6-10 指导教师 2015 计算机组成原理课程论文计算机组成原理课程论文 计算机科学与技术学院计算机科学与技术学院 目录目录 1 实验目的.1 2 实验环境.1 3 实验内容.1 4 实验原理.1 4.1 CRC 码.1 4.2 CRC 编码原理.2 4.3 生成多项式选择. 3 5 方案设计.3 5.1 (7,4)CRC 编码 3 5.1.1 (7,4)CRC 编码电路图.4 5.2 (21,6)CRC 编码 4 5.2.1 (21,6)CRC 编码电路.5 6 过程与调试.5 6.1 实验实现步骤. 5 6.2 实验测试用例. 6 6.3 结果与分析. 7 6.3.1 测试结果7 6.3.2 结果分析7 6.4 故障与调试. 7 6.4.1 故障 1.7 6.4.2 故障 2.8 7 总结与心得.8 7.1 实验总结. 8 7.2 实验心得. 8 8 参考文献.9 1 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 1 实验目的 熟悉 Logisim 软件平台。 掌握运算器基本工作原理 掌握循环冗余编码CRC的原理 利用 Logisim 平台上已有的模块组成 CRC 编码电路 2实验环境 Logisim 是一款数字电路模拟的教育软件,每一位用户都可以通过它来学习如 何创建逻辑电路,方便简单。 它是一款基于 Java 的应用程序,可运行在任何支持 JAVA 环境的平台,方便学生来学习设计和模仿数字逻辑电路。Logisim 中的主要组 成部分之一就在于设计并以图示来显示 CPU。当然 Logisim 中还有其他多种组合分 析模型来对你进行帮助,如转换电路,表达式,布尔型和真值表等等。同时还可以 重新利用小规模的电路来作为大型电路的一部分。 3实验内容 学习使用 Logism 工具栏上的功能 学会使用子电路,并能将子电路放到 main 电路中使用 学习使用时钟,并能使用时钟单步或自动运行 学会使用分线器,理解线宽的概念 掌握循环冗余编码CRC的原理 完成(7,4)CRC 编码 完成(21,6)CRC 编码 4实验原理 4.1 CRC 码 2 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 循环冗余校验码(cyclic redundancy cheek,CRC)简称循环码或 CRC 码。二进 制信息沿一条信号线逐位在设备之间传送称为并行传送。 CRC 的编码格式如图所示,是在 K 位有效数据之后添 r 位校验码,形成总长度 为 n 的 CRC 码,简写作 Cn,k码。CRC 编码的关键技术在于如何从 k 位信息简便 得到 r 位校验码。 图 4.1 设被校验的数据 0121 .DDDDD kk 是一个 k 位的二进制代码, 将它表示为一个 k-1阶的多项式 Mx 0 1 1 2 2k 1 1k .DxDxDxDD kk 1-1 多项式1-1中的系数 D 取值为 0 或 1,与被校验的数据 M 一一对应,式中的 x 是一个伪变量,用 i x 指明各位的位置。 设校验码 p 的长度为 r,将被校验数据 D 左移 r 位后的结果为 位r DxDxDxD kk 0000 0 1 1 2 2k 1 1k 将 D 左移 r 位的目的是给 D 右边添 r 个 0,形成kr位长度的二进制代码,其 多项式形式为 r xxM。 如图 4.1 所示, CRC 码由 K 位数据 D 和 r 位校验码 P 组成, 求校验码 P 的多项式 Rx的方法如下 xG xR xQ xG xxM 1-2 Qx是商,Rx是余数,Rx所对应的二进制代码是校验码 P。可以证明存在一 个最高次幂为 n-kr 的多项式 Gx,即式1-2中 Gx成为生成多项式。 由式(1-2)可以推出 xM xG xRxxM 4.2 CRC 编码原理 3 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 CRC 编码是基于模 2 乘除法和减法来实现编码过程的。 模 2 加减运算就是按位 加减运算,即不带进位和借位的二进制加法和减法运算。模 2 加与模 2 减的结果相 同。运算规则如下 000,011,101,110 模 2 乘运算按模 2 加求部分积之和,无进位。 模 2 除运算即按模 2 减求部分余数,不借位。其上商原则是 1)部分余数首位为 1 时,商为 1,减除数。 2)部分余数首位为 0 时,商为 0,减 0。 3)当部分余数的位数小于除数的位数时,该余数为最后余数。 4.3 生成多项式选择 (1)生成多项式的最高位和最低位必须是 1。 (2)当被传送信息CRC 码任何一位发生错误时,被生成多项式进行模 2 后余 数应不为 0。 (3)不同位发生的错误,余数不同。 (4)对余数继续做模 2 除,应使余数循环。 5 方案设计 5.1 (7,4)CRC 编码 (7,4)CRC 编码可实现 16 位有效数据的编码。电路输入 4 位将要进行 CRC 编码的 01 串,通过时钟时序控制下在一个周期内完成 4 位数据的 CRC 编码,输出 7 位编码后的数据。根据上述实验原理,4 位有效数据,所以其生成多项式为 4 位, 所以只需要第一次将原数据与生成多项式异或得到余数,然后再根据余数的高位判 断是否为 0 来计算下一个余数,如果高位为 0,则只需要将该余数左移 1 位,然后 直接将数据通过二路选择器作为下一次的余数;如果高位为 1,则需要再次将左移 的数与生成多项式异或得到余数作为下一次的余数。因为编码的结果为 7 位,也就 是相当于在有效数据后面补 3 个 0 然后除以生成多项式,需要完整的运算 4 次才能 4 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 得到结果,所以在经过 4 次之后,才能得到最终的编码结果。并且在编码结束之后 自动停止电路。 时钟控制部分,因为要经过 4 次之后才完成整个运算,而且原始的有效数据只 用一次,所以在这个里面,我设计了 D 触发器来解决有效数据只进行刚开始的运算 这么一个功能,刚开始使能端为 0,所以二路选择端选择的是原始数据,后来 D 触 发器的使能端打开,而且设置 D 为 1,这时候就可以保证以后都是选择 1,也就是 经过移位后的数据,最后通过或门与计数器的进位来达到当计数为 3 进位时,时钟 保持高电平,也就是寄存器不再工作,这样就达到了锁存的目的。 5.1.1 (7,4)CRC 编码电路图 图 5.1.1 5.2 (21,6)CRC 编码 5 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 (21, 6) CRC 编码可实现 16 位有效数据的编码。 电路输入 16 位将要进行 CRC 编码的 01 串, 通过时钟时序控制下在一个周期内完成 16 位数据的 CRC 编码, 输出 21 位编码后的数据。16 位的编码与 4 位的编码难点在于有 16 位数据,所以每次要 通过移位计数器来进行逻辑右移, 还有每次如果得到异或后余数的高 2 位为 0 的话, 就需要把余数接上原始数据的后一位, 然后与 000000 进行异或, 得到下一次的余数, 如果结果为 1 的话, 需要将移位后的余数与生成多项式进行异或得到下一次的余数, 而且还有和第一个一样的问题,就是前 6 个必须全部用原始数据的高 6 位进行异或 运算得到余数后, 再判断下一次是和 000000 还是和生成多项式进行异或, 所以在这 里就设计了两个二路选择器,一个用来由 D 触发器控制只使初始数据进去,一个是 控制哪一个余数作为下一轮的余数。 然后通过时钟驱动, 在进行 16 次完整的周期之 后,也就得到了最后编码的结果。并且在编码结束之后自动停止电路。 5.2.1 (21,6)CRC 编码电路 图 5.2.1 6 过程与调试 6.1 实验实现步骤 6 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 1、 实验之前实现在草稿纸上写好整体实现的方法、 步骤和所需要用到的模块以 及大概连接的思路。在草稿纸上预先画出电路的示意图,便于实验操作的快速、准 确进行。 2、按照设计连接电路图,注意各模块连接的引脚是否正确相连,导线是否发生 交叉断路现象。 可以从 Logisim 软件的自动检测中可以很好地了解电路的连接情况。 若所有模块连接完成后,电路中出现红色、黄色或者灰色的导线,说明电路的连接 出现了问题。针对颜色异常的导线两段进行仔细地检查。修改电路直到不再出现异 常颜色导线。 3、利用测试数据进行测试,查看结果是否和预期一样,以判断电路图是否链接 正确,功能是否能准确实现。 6.2 实验测试用例 项目测试通过输入以下 4 组 4 位数据,4 组 16 位数据,分别记录电路输出值。 并在草稿纸上手算理想 CRC 编码结果进行比较。 生成多项式选取1011 表 6.1 CRC 编码用例及结果 输入待编码电路输出编码结果理论结果 1100010001011000101 2110011000101100010 3010101011000101100 4101010100111010011 生成多项式选取100011 表 6. 2 CRC 编码用例及结果 输入待编码电路输出编码结果理论结果 11010101111010100101010111101010000010101010111101010000010 200110101110101000011010111010100 001000011010111010100 00100 300101001010101000010100101010100 010000010100101010100 01000 401010010101001010101001010100101 111010101001010100101 11101 7 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 6.3 结果与分析 6.3.1 测试结果 利用测试用例进行测试,得到的结果均和预期保持一致,现将其中的两组结果 截图如下 (7,4)CRC 编码 图 6.3.1 (21,6)CRC 编码 图 6.3.2 6.3.2 结果分析 在电路中由于进行了计数器锁定,所以在最后运算完成之后,编码的结果将不 会再因为时钟的驱动产生变化,即得到最终的编码结果。 6.4 故障与调试 6.4.1 故障 1 在进行 4 位和 16 位 CRC 编码的时候,都需要刚开始直接输入一组数据,然后 8 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 直接每次逻辑移动一位,但这样的电路如何实现,并没有想到一个很好的办法,然 后就联想到在做组原的实验的时候用过的二路选择器,所以就考虑到用二路选择器 来在输入 0 的端口接上原始输入的数据,然后接下来只要保证控制端始终为高电位 就可以使得再输入的数据就不再是这个初始数据,所以就很容易联想到了在学习数 字逻辑的时候学到的 D 触发器,其输出状态和 D 的状态保持一致,所以,刚好在刚 开始输入原始数据的时候,让使能端为 0,这时候就是低电位,在其他的情况下, 就都是高电位了。就可以解决这个问题。 6.4.2 故障 2 在 16 位编码的时候,遇到了最后的余数到底是生成多项式与原始数据异或而 来,还是 000000 和原始数据异或而来的问题,这就取决于上一组余数的高 2 位是 0 还是 1,如果为 1,则是第一种,反之为第二种,这样就想到了继续用二路选择器来 选择哪一个作为下一个余数,而用该组余数的高 2 位作为控制端。 7 总结与心得 7.1 实验总结 本次实验主要作了如下几点工作 1) 熟悉使用了 logisim 隧道、寄存器、分离器、时钟、计数器、数据选择器 和移位寄存器,D 触发器等部件。 2) 利用异或门和二路选择器来实现取余功能 3) 设置生成多项式 Gx1011,Gx10010,作为项目测试用例, 分别选用 4 组 有代表性的数据进行了 CRC 编码电路测试,所得到的测试结果与理论结 果一致,所以在一定程度上认为电路是正确的。 4) 利用通道,把输入数据,生成多项式,编码结果放到一起,便于观察。 7.2 实验心得 9 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 对于本次实验的实验环境来说,熟悉 Logisim 里面的各种器件,比如移位寄存 器, 多路选择器,还有以前学过的 D 触发器,对于实验的最终完成有很大的好处, 当你知道要实现什么功能之后, 知道去从原件库里面拖出来, 然后设置好各种参数, 直接使用即可。 对于实验来说,明确实验要完成的功能,然后首先在草稿纸上写出表达式,分 析电路的时序控制,然后构思用什么器件,如何实现,这样对于最后实验的最终完 成有很大的好处,刚开始就是有一些问题并没有考虑清楚,所以直接画电路,导致 出现了一些问题,结果不正确的时候不知道哪里出现了问题,最后将整个实验的思 路再理一遍,也再次明确了实验的原理之后,最后耐心的修改,最终才得到正确的 结果。 最后就是在试验过程中出现了问题,一定要静下心来思考,完整的考虑到这种 可能出现的问题,然后加以解决。 8 参考文献 1 秦磊华, 王小兰. 计算机组成原理实验指导及课程设计指导书基于 EDA 平台. 武汉华中科技大学出版社,2010 年. 2 秦磊华,吴非,莫正坤.计算机组成原理. 北京清华大学出版社,2011 年. 3 DAVID A.PATTERSON美.计算机组成与设计硬件/软件接口原书第 3 版.北 京机械工业出版社. 2007 年. 4 袁春风编著. 计算机组成与系统结构. 北京清华大学出版社,2011 年. 1 华 中 科 技 大 学 课 程 实 验 报 告华 中 科 技 大 学 课 程 实 验 报 告 一、原创性声明 本人郑重声明本实验的实验报告内容,是由作者本人独立完成的。有关观点、方 法、数据和文献等的引用已在文中指出。除文中已注明引用的内容外,本报告不包含 任何其他个人或集体已经公开发表的作品成果,不存在抄袭行为。 特此声明 作者签字作者签字 二、对实验的学术评语 三、对实验的评分 评分项目 (分值) 报告撰写 (30 分) 实验过程 (70 分) 最终评定 (100 分) 得分 指导教师签字指导教师签字年月日年月日

logisim数据选择器_基于Logisim的CRC编码电路实现.pdf相关推荐

  1. logisim数据选择器_利用Logisim构建小型数字系统(运动码表)

    本文主要介绍的是中国大学mooc上"计算机硬件系统设计"课程中的一个实验.首先,我对本课程的课程组深表感谢,开发了这么好的学习资源供学生在线学习. 下面介绍的是这个实验的设计过程. ...

  2. logisim 快速加法器设计实验报告_基于Logisim平台的《计算机组成原理》实验教学探究...

    邵雄凯 杨习伟 摘要:在分析现有<计算机组成原理>实验教学现状的基础上,针对软件类专业学生硬件基础知识薄弱.一般地方高校硬件设备不足等实际情况,提出基于Logisim平台的<计算机组 ...

  3. 大数据文字游戏_基于大数据的游戏化教学系统研究.docx

    基于大数据的游戏化教学系统研究 ―.引言 目前,我国高校在线开放课程的建设已经取得了较大的发展,在线课程的使用已经使高 校教学发生了巨大的变化.课程的网络资源可以作为延伸课堂教学的工具,有效减轻了课堂 ...

  4. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖

    作者:孙大鹏,花名诚历,阿里巴巴计算平台事业部 EMR 技术专家,Apache Sentry PMC,Apache Commons Committer,目前从事开源大数据存储和优化方面的工作. 为什么 ...

  5. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

  6. 用matlab画大数据曲线_基于MATLAB的大数据分析

    王媚 摘要:传统计算机模式与MATLAB软件技术相比较,传统软件运行起来较为复杂.以此基于MATLAB软件下的网络数据技术,它以高速化.关联化的优势成为人们眼中的焦点.本文针对传统网络软件模式中出现的 ...

  7. python怎么数据归一化_基于数据归一化以及Python实现方式

    数据归一化: 数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权. 为什么要做归一化: 1)加快梯度下降 ...

  8. python收集数据程序_基于Python语言的互联网数据收集软件的设计

    软件建立所需的工具及其版本 编写环境与 IDE Python3.5.2 Windows10 PyCharm 2016.3 Sublime Text3 第三方库与版本号 Requests 2.12.1 ...

  9. python 3d大数据可视化_基于Python的数据可视化库pyecharts介绍

    什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生 ...

  10. hdfs 数据迁移_基于 JindoFS+OSS 构建高效数据湖

    为什么要构建数据湖 大数据时代早期,Apache HDFS 是构建具有海量存储能力数据仓库的首选方案.随着云计算.大数据.AI 等技术的发展,所有云厂商都在不断完善自家的对象存储,来更好地适配 Apa ...

最新文章

  1. SAP PP CS01使用ECR去创建BOM主数据,报错:System status: ECR is not yet approved.
  2. 保证同一个账号同时只能在一个设备上登录
  3. SQL Server 数据库的整理优化的基本过程(二)
  4. AIX忘记root密码后,重设密码步骤
  5. 判断一个路径串是否为有效目录
  6. C#JsonConvert.DeserializeObject反序列化json字符
  7. 创建的maven子项目怎么访问接口404_【经验分享】新手学Java编程语言怎么入门?...
  8. Centos6.5使用yum安装mysql——快速上手必备
  9. ie不加载jre_国内银行为兼容XP/IE6 竟然篡改IE安全协议把所有用户拖下水
  10. oracle 每分钟执行,CSS_ORACLE JOB INTERVAL参数设置, 1:每分钟执行nb - phpStudy
  11. python游戏制作软件_10 个最值得 Python 新人练手的有趣项目
  12. 图片轮播html1001无标题,轮播图采用js、jquery实现无缝滚动和非无缝滚动的四种案例实现,兼容ie低版本浏览器...
  13. 最新版火狐浏览器无法下载 firebug 和 firepath 插件的问题
  14. 用计算机清点木材的数量,计算机在木材工业中的应用.doc
  15. [转载]基于Servlet的Google Earth之旅
  16. 动态炫酷的js背景特效库集锦
  17. java media player 设置音量_SoundPlayer可调音量 - c#
  18. leet198.打家劫舍
  19. Ajax库-认识服务器,URL地址,axios基本用法,响应状态码,业务状态码,接口测试工具
  20. 20个vue开源项目免费模板源码

热门文章

  1. java 反编译 调试_eclipse 反编译 jar 中 .class 并打断点调试
  2. 【Matlab数学建模】层次分析法
  3. 2020年CSDN技术人内推活动 千里马专区职位列表
  4. cdsn 最大分类数相关
  5. 【210518】印象笔记 Windows 安装升级出现错误 “找不到msi文件” 解决办法
  6. 深信服(scsa认证)学习过程
  7. C语言项目源码,C语言源代码大全(2021最新)!
  8. 计算机硬盘如何安装系统,电脑硬盘怎么装系统
  9. java2实用教程 第5版 课本案例
  10. Delphi2010正式版的代码格式化及自动完成