16*16点阵的标准汉字字库logisim
一、理解汉字字库存储原理
汉字字库是利用区号和位号进行检索的字形码存储器。一个16×16点阵的汉字需要256位(16×16)的信息来表示,即32个字节。由于Logisim中ROM的最大数据位宽通常只有32位,因此无法用单片ROM来存储一个完整的16×16点阵汉字。这就需要通过位扩展或字扩展的方式来实现。
二、准备汉字字库数据
你需要有标准的16×16点阵汉字字库数据,这些数据通常以二进制或十六进制的形式表示。这些数据可以从网上下载或自己生成。
三、构建电路
3.1 添加ROM组件
-
在Logisim中添加多个ROM组件,数量取决于你的位扩展或字扩展需求。例如,如果你选择位扩展,那么需要32/32=1片(但实际上由于Logisim中ROM的访问是以字节为单位,所以实际需要4片8位的ROM来组合成32位,但这里为了简化说明,我们假设有一片足够大的ROM能够存储一个汉字的点阵信息,然后通过位扩展来实现)。然而,在实际操作中,由于Logisim中ROM的限制,你可能需要使用4片或更多的小容量ROM进行字扩展。
-
设置ROM的大小和数据位宽。例如,如果你使用的是4片小容量的ROM进行字扩展,那么每片ROM的大小应该是16K×8位(或更小的容量,但数据位宽需要是8的倍数,以便能够组合成32位),然后通过字扩展将它们组合成16K×32位的存储器。
3.2 连接地址线和数据线
- 将ROM的地址线连接到电路的地址总线上。
- 将ROM的数据线连接到电路的数据总线上。注意,如果你使用的是多片ROM进行位扩展,那么需要将它们的数据线并联起来。
3.3添加译码器和分线器
- 如果你使用的是字扩展,那么需要添加译码器和分线器来将地址总线上的地址信号分配到各个ROM的地址端。
- 译码器的输入端连接到地址总线的高位部分,输出端连接到各个ROM的使能端(sel端)。
- 分线器用于将地址总线的低位部分分配到各个ROM的地址输入端。
3.4 导入字库数据
- 将准备好的汉字字库数据导入到ROM组件中。这通常是通过Logisim的“存储”功能来实现的,你需要将字库数据保存为文本文件,然后在Logisim中打开这些文件并将它们导入到ROM中。
- 注意,如果你的字库数据是分开的(例如,分为四个部分存储在四个不同的ROM中),那么你需要确保在导入时将它们正确地分配到对应的ROM中。
四、测试电路
4.1设置输入
- 在电路的输入端设置汉字的区号和位号。这些信号将用于从ROM中检索对应的汉字点阵信息。
4.2 观察输出
- 在电路的输出端观察汉字的点阵信息。这些信息应该与你在ROM中导入的字库数据相匹配。
- 你可以通过连接LED点阵显示屏或其他显示设备来直观地查看汉字的显示效果。
五、具体步骤
5.1 打开字库电路
5.2添加分线器,并改参数如下图
5.3添加译码器和多路选择器
5.4连接线路
5.5 导入字库
5.6测试电路
点击时钟显示