【头歌·计组·自己动手画CPU】一、计算机数据表示(理论版) 【计算机硬件系统设计】

本文主要是介绍【头歌·计组·自己动手画CPU】一、计算机数据表示(理论版) 【计算机硬件系统设计】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

文章目录

    • 一、课程设计目的
    • 二、课程设计内容
    • 三、课程设计步骤
    • 四、课程设计总结

一、课程设计目的

巩固对计算机中数据表示方法的理解,要求能设计汉字国标码与区位码之间的转换电路,能批量获取汉字机内码并用点阵形式进行显示。通过设计 16 位数据的海明编解码电路,16 位数据的 CRC 并行编解码电路,理解校验码传输过程。通过校验码流水传输实验提前建立流水线的基本概念。

二、课程设计内容

  1. 汉字国标码转区位码实验
    1. 实验目的
  2. 理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
  3. 了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 编码的点阵显示。
  4. 汉字机内码获取实验
    1. 实验目的
  5. 理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
  6. 了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 编码的点阵显示。
  7. 偶校验编码设计
    1. 实验目的

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

  1. 偶校验解码电路设计
    1. 实验目的

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

  1. 16位海明编码电路设计
    1. 实验目的

掌握海明码设计原理与检错纠错性能,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编解码电路。

  1. 16位海明解码电路设计
    1. 实验目的

掌握海明码设计原理与检错纠错性能,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编解码电路。

  1. 海明编码流水传输实验
    1. 实验目的

熟悉流水数据传输机制,流水暂停原理,为最终的流水 CPU 设计做好技术储备,最终能对实验环境提供的五段流水编码传输电路进行简单修改,实现数据编码在不可靠网络中的可靠传输。

  1. 16位CRC并行编解码电路设计
    1. 实验目的

掌握 CRC 循环冗余校验码的基本原理,能看懂串行 CRC 编解码电路,并利用所学数字逻辑知识设计实现 GB2312 编码16位数据的并行 CRC 编解码电路。

  1. CRC编码流水传输实验
    1. 实验目的

熟悉流水数据传输机制,流水暂停原理,为最终的流水 CPU 设计做好技术储备,最终能对实验环境提供的五段流水编码传输电路进行简单修改,实现数据编码在不可靠网络中的可靠传输。

三、课程设计步骤

  1. 汉字国标码转区位码实验

    1. 原理

国标码=区位码(十六进制)+2020H
区位码=国标码(十六进制)2020H
= (需要使用加法器所以需要转换为补码的形式) 国标码(十六进制)+ (FFFF-2020H+0001H) 取反加1=国标码(十六进制)+ dfe0H

  1. 接线图

image.png

  1. 汉字机内码获取实验
    1. 原理

运行下面程序获得目的汉字机内码并将其内容复制到存储器中。

#include<stdio.h>
#include<string.h>
int main()
{unsigned char temp[]="12345ABCDEFGabcdefg轻轻的我走了,正如我轻轻的来;我轻轻的招手,作别西天的云彩。那河畔的金柳,是夕阳中的新娘;波光里的艳影,在我的心头荡漾。";     for (int i=0;i<strlen((const char *)temp);i++){printf("%x",temp[i]);if (i%2) printf(" ");}
}
  1. 接线图image.png
  2. 偶校验编码设计
    1. 原理

奇校验:编码中有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误
偶校验:编码中有偶数个1
奇偶校验:只能检测1位错,无法检查出偶数个错误,并且无法纠错
假设计算机规定好的是奇校验,发送方发送的编码是01101 0,而接收方收到的是11111 0,但是奇数个1,符合奇校验,但有两个0变成了1,所以奇偶校验只能检测出1位错误,且没法纠错。

  1. 接线图

image.png

  1. 偶校验解码电路设计
    1. 原理

就是把偶校验位,送去与数据位的数据去做异或运算,如果检错位为奇数,说明有错误发生;如果检错位为偶数,说明数据是正确的。

  1. 接线图

image.png

  1. 16位海明编码电路设计
    1. 原理

16位海明编码是一种应用于16位数据的错误检测和纠正技术。它基于海明编码的原理,并在16位数据中添加了相应数量的冗余位。以下是16位海明编码的原理:
1.原始数据:16位海明编码将原始数据分为数据位和校验位。数据位是要传输或存储的实际数据,而校验位用于检测和纠正错误。
2.冗余位:16位海明编码需要添加4个冗余位,用于检测和纠正1位错误。这4个冗余位分别位于第1、2、4和8位位置。
3. 编码规则:对于每个冗余位,它的值被设置为使得数据位和冗余位的总和(包括该冗余位)为偶数或奇数。具体规则如下:

  • 第1位冗余位:计算数据位1、3、5、7、9、11、13、15的奇偶性。
  • 第2位冗余位:计算数据位2、3、6、7、10、11、14、15的奇偶性。
  • 第4位冗余位:计算数据位4、5、6、7、12、13、14、15的奇偶性。
  • 第8位冗余位:计算数据位8~15的奇偶性。
  1. 错误检测:接收端在接收到16位数据后,会重新计算校验位的值。如果接收到的数据和计算出来的校验位不一致,则说明至少发生了1位错误。

  2. 错误纠正:如果错误检测到位错误,接收端可以使用冗余位来纠正错误。通过比较接收到的数据和计算出来的校验位,可以确定出错的位,并进行纠正。

    1. 接线图

image.png

  1. 16位海明解码电路设计
    1. 原理

16位海明解码是用于纠正错误的一种技术,它基于16位海明编码的原理。以下是16位海明解码的原理:

  1. 接收数据:接收端接收到经过16位海明编码的数据。

  2. 计算校验位:接收端重新计算校验位的值,按照与发送端相同的规则计算冗余位的奇偶性。

  3. 检测错误:接收端将计算得到的校验位与接收到的校验位进行比较。如果两者不一致,则说明至少发生了1位错误。

  4. 定位错误位:通过对比接收到的校验位和计算得到的校验位,可以确定出错的位数和位置。

  5. 纠正错误:根据定位的错误位,接收端可以将错误的位进行纠正,恢复正确的数据。

    1. 接线图

image.png

  1. 海明编码流水传输实验
    1. 接线图

  1. 16位CRC并行编解码电路设计
    1. 原理

16位CRC(Cyclic Redundancy Check)并行编解码电路是一种用于数据通信中的错误检测和纠正技术。它通过使用专门设计的电路来计算和验证校验位,以确保数据的完整性。
编码原理:

  1. 数据输入:将需要进行CRC编码的16位数据输入到编码电路中。

  2. 寄存器操作:编码电路中包含一个16位寄存器,用于存储待编码数据和中间计算结果。

  3. 生成多项式:选择适当的生成多项式作为CRC编码的标准,如CRC-16标准。

  4. 除法运算:编码电路将输入数据与生成多项式进行除法运算,得到余数。

  5. 校验位生成:余数作为校验位添加到原始数据后面,形成带有CRC校验位的输出数据。
    解码原理:

  6. 数据输入:将带有CRC校验位的16位数据输入到解码电路中。

  7. 寄存器操作:解码电路中同样包含一个16位寄存器,用于存储接收到的数据和中间计算结果。

  8. 除法运算:解码电路将输入数据与相同的生成多项式进行除法运算,得到余数。

  9. 错误检测:如果余数为0,则说明数据没有发生错误。如果余数不为0,则说明数据可能发生了错误。
    5.错误纠正:通过比较接收到的CRC校验位和解码电路计算出的余数,可以确定出错的位。

    1. 接线图

image.png
image.png

  1. CRC编码流水传输实验
    1. 接线图

image.png

四、课程设计总结

本次课程设计旨在巩固对计算机中数据表示方法的理解,通过设计汉字国标码与区位码之间的转换电路、批量获取汉字机内码并用点阵形式进行显示,以及设计海明编解码电路、CRC并行编解码电路等,以加深对数据表示方法及校验码传输过程的理解。
在实验内容方面,涉及了汉字国标码转区位码、汉字机内码获取、偶校验编码设计、偶校验解码电路设计、16位海明编码电路设计、16位海明解码电路设计、海明编码流水传输实验、16位CRC并行编解码电路设计以及CRC编码流水传输实验等内容。
在实验步骤中,需要理解各种编码原理和特性,并通过实验环境中的接线图来实现相应的电路设计。比如,在进行16位海明编码电路设计时,需要掌握海明码的设计原理与检错纠错性能,并在实验环境中利用硬件电路实现对应的编解码电路。
通过这些实验,将能够加深对数据表示方法、校验码传输过程以及流水数据传输机制等概念的理解,为他们今后的学习和研究打下坚实的基础。

这篇关于【头歌·计组·自己动手画CPU】一、计算机数据表示(理论版) 【计算机硬件系统设计】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/707342

相关文章

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作