跳转至

HDL理解一个简易的Memory

Memory组成

首先Memory里面分别有RAM16K和Screen、Keyboard组成

0-16383 属于RAM16K

16384-24575 属于Screen

24576 属于Keyboard

功能

作为一个Memory的功能当然是读写数据了

  • load:用来判断是否要写入数据
  • address:来判断该写/读的数据是在RAM里还是在IO里

具体来看address:

  • 为了选择要输出的内容,使用“Mux16”模块。当“address”输入的第13位为0时,将“o1”输出作为选择的输出,“address[13]”输入表示选择RAM16K模块的输出。当“address”输入的第13位为1时,将“o21”和“o22”输出作为选择的输出,“address[13]”输入表示选择屏幕输出,与“address[14]”输入进行多路复用。
  • 为了选择要写入的内存,使用“DMux”模块。当“address”输入的第14位为0时,选择RAM16K模块进行写入。当“address”输入的第14位为1时,选择屏幕或键盘进行写入。该模块将“load”输入进行解复用,将其分别输出到“l1”和“l2”。