学习目标
- 追踪从加载器进入 RAM 的 8 位地址总线和 8 位数据总线。
- 说明 CS、WE 与时钟上升沿如何协同完成存储器写入。
- 将 256 × 8 组织结构理解为 256 个字节宽存储单元。
- 在不虚构未连线读输出的前提下,验证 RAM 中持久化的 8 字节映像。
- 区分加载机器字节与由处理器执行这些字节。
工作原理
该实际画布展示的是时钟驱动的程序加载通路,而非手动操作的 RAM 读写面板。电路包含一个 ASSEMBLY_PROGRAM_LOADER、一块 256 字 × 8 位 RAM、一个 1 Hz 时钟和一个 Enable(使能) 开关。
加载器的 A0–A7 输出连接至 RAM 地址输入,D0–D7 连接至 RAM 数据输入,WE 连接至 RAM 的 WE,CS 连接至 RAM 的 CS。同一时钟驱动两个元件。一个开关同时扇出至加载器的 EN(使能)、A_OE 和 D_OE 输入,因此使能加载器时,也允许其驱动地址与数据总线。在加载活动期间,每个符合条件的上升沿都会在相应地址给出一个编译字节,并使 RAM 写入所需的控制信号有效。
持久化的编译映像从地址 0 开始,包含八个十六进制字节:10 4F 21 75 61 60 60 60。本课程将该字节序列视为有效载荷,重点研究传输机制,不为程序赋予运行时语义。
RAM 的八个数据输出均未连接,画布中也没有输出使能信号源、指示灯或显示器。因此,此处可见的教学重点是写入通路;必须通过元件检查器查看已存储内容。
逐步尝试
在上方嵌入式电路中设置输入,然后阅读预期结果并验证。
- 1Loader action = Inspect compiled image预期:
编译字节 = 10 4F 21 75 61 60 60 60(十六进制)观察结果: 打开加载器检查器;在分析传输过程之前,先核对作为事实依据的 8 字节编译映像。 - 2Clock(时钟) = first rising edgeEnable = 1Loader action = Compile, then Load(装载) into RAM预期:
首个已使能上升沿后,RAM[0x00] = 0x10观察结果: 完成编译并选择加载器的 RAM 加载操作后,首个已使能上升沿会将字节 0x10 写入地址 0x00。 - 3Clock = eight rising edges from restartEnable = 1预期:
RAM[0x00..0x07] = 10 4F 21 75 61 60 60 60(十六进制)观察结果: 八个已使能上升沿将完整映像传输至连续地址 0x00 至 0x07;请检查 RAM 予以确认。 - 4Clock = additional rising edgeEnable = 0预期:
Enable = 0 时,新增时钟沿不会推进加载器或执行写入观察结果: 将 Enable 置为低电平会禁用加载器,并使其释放地址和数据总线,因此后续时钟沿无法继续推进正在进行的传输。
所用元件
实际应用
引导与编程通路。 处理器、微控制器和 FPGA(现场可编程门阵列) 在正常运行之前,需要通过受控机制将代码或配置数据写入可执行存储器。
仿真中的存储器初始化。 测试平台和教学工具会预加载确定性的字节映像,使后续数据通路行为从已知状态开始。
FPGA 块 RAM 初始化。 工具链将源工件转换为存储器映像,用于初始化或填充片上 RAM 资源。
在线编程。 调试器和引导加载程序在协调写选通与器件选择的同时,将地址/数据记录传输至目标存储器。
总线接口教学。 相互独立的地址、数据、控制与时钟通路,为同步存储器写接口提供了紧凑示例。
常见问题
哪些信号连接加载器与 RAM?
加载器提供 8 位地址和 8 位数据字。其 WE 与 CS 输出连接至 RAM 的相应控制引脚,共享时钟提供写入沿。该画布不使用手动地址或数据开关。
为什么该 RAM 标记为 256 × 8?
地址总线包含 A0 至 A7 共八条线,因此可选择 2^8 = 256 个存储单元。数据总线包含 D0 至 D7 共八条线,因此每个存储单元可存储一个字节。
Enable 开关控制哪些功能?
单个开关同时驱动加载器的 EN、A_OE 和 D_OE 输入。开关为低电平时,加载器被禁用并释放地址与数据输出;开关为高电平时,正在进行的加载可在时钟上升沿推进。
RAM 的读数据输出显示在哪里?
RAM 数据引脚未连接任何输出指示器,且该画布中 RAM 的输出使能输入也未被驱动。请通过 RAM 检查器验证存储器内容,不应期待指示灯或显示器呈现读取值。
该电路会执行已加载的程序吗?
不会。该电路只演示从编译结果到存储器的传输。要执行已存储字节,处理器还需要程序计数器、指令寄存器、译码器或控制单元、寄存器、ALU(算术逻辑单元) 以及协同工作的数据通路。