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

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

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

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

一、课程设计目的

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

二、课程设计内容

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

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

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

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

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

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

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

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

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

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

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

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

三、课程设计步骤

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

国标码=区位码(十六进制)+2020H

区位码=国标码(十六进制)2020H

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

  1. 接线图

  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. 接线图
  2. 偶校验编码设计
  1. 原理

奇校验:编码中有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误

偶校验:编码中有偶数个1

奇偶校验:只能检测1位错,无法检查出偶数个错误,并且无法纠错

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

  1. 接线图

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

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

  1. 接线图

  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位错误。
  1. 错误纠正:如果错误检测到位错误,接收端可以使用冗余位来纠正错误。通过比较接收到的数据和计算出来的校验位,可以确定出错的位,并进行纠正。
  1. 接线图

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

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

  1. 接收数据:接收端接收到经过16位海明编码的数据。
  2. 计算校验位:接收端重新计算校验位的值,按照与发送端相同的规则计算冗余位的奇偶性。
  3. 检测错误:接收端将计算得到的校验位与接收到的校验位进行比较。如果两者不一致,则说明至少发生了1位错误。
  4. 定位错误位:通过对比接收到的校验位和计算得到的校验位,可以确定出错的位数和位置。
  5. 纠正错误:根据定位的错误位,接收端可以将错误的位进行纠正,恢复正确的数据。
  1. 接线图

  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. 接线图

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

四、课程设计总结

本次课程设计旨在巩固对计算机中数据表示方法的理解,通过设计汉字国标码与区位码之间的转换电路、批量获取汉字机内码并用点阵形式进行显示,以及设计海明编解码电路、CRC并行编解码电路等,以加深对数据表示方法及校验码传输过程的理解。

在实验内容方面,涉及了汉字国标码转区位码、汉字机内码获取、偶校验编码设计、偶校验解码电路设计、16位海明编码电路设计、16位海明解码电路设计、海明编码流水传输实验、16位CRC并行编解码电路设计以及CRC编码流水传输实验等内容。

在实验步骤中,需要理解各种编码原理和特性,并通过实验环境中的接线图来实现相应的电路设计。比如,在进行16位海明编码电路设计时,需要掌握海明码的设计原理与检错纠错性能,并在实验环境中利用硬件电路实现对应的编解码电路。

通过这些实验,将能够加深对数据表示方法、校验码传输过程以及流水数据传输机制等概念的理解,为他们今后的学习和研究打下坚实的基础。

相关文章
|
4月前
|
存储 缓存 数据处理
计算机临时存储CPU运算数据
【8月更文挑战第4天】
86 8
|
4月前
|
存储 固态存储 测试技术
|
5月前
|
编译器 芯片
计算机中CPU 架构
【7月更文挑战第27天】
80 2
|
5月前
|
存储 缓存 数据处理
计算机中 中央处理器 (CPU)
【7月更文挑战第27天】
75 2
|
5月前
|
并行计算 API 数据处理
GPU(图形处理单元)因其强大的并行计算能力而备受关注。与传统的CPU相比,GPU在处理大规模数据密集型任务时具有显著的优势。
GPU(图形处理单元)因其强大的并行计算能力而备受关注。与传统的CPU相比,GPU在处理大规模数据密集型任务时具有显著的优势。
|
5月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
21天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
1月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
202 1
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
599 2
|
3月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
201 5
下一篇
DataWorks