【头歌·计组·自己动手画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位海明编码电路设计时,需要掌握海明码的设计原理与检错纠错性能,并在实验环境中利用硬件电路实现对应的编解码电路。

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

相关文章
|
2月前
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
99 0
|
2月前
|
存储
计算机组成原理(5)----CPU的基本结构
计算机组成原理(5)----CPU的基本结构
70 0
|
2月前
|
存储 芯片 块存储
计算机组成原理(2)-----存储芯片与CPU的连接
计算机组成原理(2)-----存储芯片与CPU的连接
103 1
|
2月前
|
存储
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
462 2
|
2月前
|
存储
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
99 0
|
2月前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
96 4
|
2月前
|
移动开发 运维 监控
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
135 0
|
2月前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
148 10
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
580 6
|
11天前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程