基于Logisim的汉字显示模拟实验
文章目录
- 1.前言
- 2.实验的内容和目的
- 3.实验要点总结
- 3.1加法器转码
- 3.2汉字显示
- 3.3如何控制汉字输出
- 3.4如何编辑只读存储器的内容
- 3.5如何进行模拟
1.前言
这个是关于这个学期学习的计算机组成原理的相关的内容的的实验课时:
这个实验部分一共是5个,之前做了第一个,但是没有往这个上面去写,因为那个就是手动的连线,没啥技术含量,所以就没咋写(其实吧,那个实验的目的是啥,我也没看出来,反正就是连线完成了)
上个实验主要是设计的这个加法器,并行加法器和串行加法器,我就没发,这个实验遇到了很多的问题,也总结了很多的技巧,所以就总结记录一下,希望对大家有所帮助;
2.实验的内容和目的
- 设计这个数码之间的转换(区位码和国标码);
- 进行仿真实验,使用这个logisim软件操作;
3.实验要点总结
3.1加法器转码
就是使用加法器实现这个码值的转换,这个里面为我们提供了一些相关的内容,我们需要使用这个加法器实现转换,主要就是这个def0,这个是计算出来的;
在下面的这个图里面,我标记出来了这个对应的组件所在的位置:其中这个常量修改数值的时候,前面需要加上这个0x,否则是无法修改的,这个地方当时耽误了我不少的时间的;
3.2汉字显示
因为这个最终需要实现的效果是显示汉字,因此这个需要我们吧刚才的这个电子封装之后拖动到下面的这个电路里面去(这个电路我们老师是提供了的,但是里面没有任何的内容);
我自己去往上面找到了一些同学分享的这个网盘的链接,实现的这个效果;但是这个也是有问题的,就是这个分享的链接打开的时候提示兼容性的问题,这个字库显示不出来,这个后面我也会进行说明;
上面的这个黄色的位置的转码器就是我们最开始的电路封装得到的,其他的我都没动,都是从网盘里面的原本内容(我不知道这个组件是在哪里找到的,反正我没找到,就用了别人提供好的,进行了一些相关的修改罢了);
3.3如何控制汉字输出
就是我们的这个右边显示什么汉字需要使用编码进行控制的,我们输入汉字,他可以为我们进行这个转换,下面的这个是我最终使用的,推荐给大家(这个我可以保证没问题,其他的我不确定);
第一个适合一个字一个字的,因为它是单个显示的,第二个链接适合一段话展示的,因为他的这个编码是一起显示的,可以直接复制粘贴,很方便;
查看字符编码(简体中文)
ASCII/GBK/GB2312中文汉字区位码,内码,编码在线查询软件
下面的这个就是第二个链接,直接输入文字,点击字转码即可,下面的这个编码的方式,输出方式和强制全角和我的保持一致就可以了,一般这个都是默认的;
接下来的这个很重要:这个我是在一个视频里面学到的,我们需要把这个GB2312这个框框里面的字符码进行修改成为我们想要的汉字的,点击这个左下角的内容(点击进行编辑)这个时候我们就可以去在弹出来的这个框框里面进行编辑;
3.4如何编辑只读存储器的内容
上面再弹出的窗口里面,我们是可以修改的,但是手动修改比较麻烦(如果你不会的话,只能手动,这也是绝对可以解决问题的);
上面的这个框框里面的第一个按钮是打开,就是打开文件的意思,我们把这个汉字编码放到txt里面去,让他自动识别即可
但是需要注意的就是我们的这个编码不能直接放进去,不然不会生效的,我们需要添加上下面的这个里面的第一行的内容:v2.0 raw(别问为什么,照做!!!!!)
读取之后,我们的只读存储器里面的内容就会发生修改;
3.5如何进行模拟
设置时钟频率:这个决定了我们的数字的转换的速度,频率越大,这个转换的速度越快;
启动信号模拟,这个时候软件就会按照我们刚才修改的编码进行读取,现实对应的汉字;
如果想要重开:点击重置模拟器即可;
如果显示的汉字不对,有两个原因:
1)编码不对(要么是转换的不对,要么是没有更新成功);
2)加法器不对,就是我们的国标码转换为区位码的这个加法器的设计有问题(我自己就是找了这个Bug很久,我是把这个dfe0写成了def0,无论怎么弄都不对,出现的汉字不是我想要的)
上面的两个就是原因,大家对应着进行检查即可;