CPU自制入门1.7 存储器的设计与实现_CPU自制入门1.7 存储器的设计与实现试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > CPU自制入门 > 1.7 存储器的设计与实现

CPU自制入门——1.7 存储器的设计与实现

本节将介绍存放数据和程序的存储器的设计与实现。制作存储器用到了FPGA 的RAM 区域。 1.7.1  FPGA 的RAM 区域 许多FPGA 都有可供用户自由使用的RAM 区域。赛灵思生产的FPGA 称之为块RAM,大小从几千字节到几兆字节不等。在第2 章将要设计的电路板上搭载的Spartan- 3E XC3S250E,有27KB 可以利用的块RAM。 块RAM 可以作为子模块,以实例化的方式使用。块RAM 提供的功能如表1-22 所示。本书使用Single Port ROM 和True Dual Port RAM 两种类型。 表1-22 块RAM 的种类 更多关于赛灵思的块RAM 的资料请参阅下面的连接。这里,我们仅对本书使用的功能进行说明。 Using Block RAM in Spartan-3 Generation FPGAs http://www.xilinx.com/support/documentation/application_notes/xapp463.pdf Single Port ROM Single Port ROM 是单一端口读取专用的存储器。Single Port ROM 的输入输出端口如表1-23 所示,访问时序图如图1-82 所示。模块名、存储区域宽度和深度等参数在实例化时再决定。 表1-23 Single Port ROM 的输入输出端口 图1-82 Single Port ROM的访问时序 [Ⅰ]锁存输入的地址 时钟信号(clka)上升沿时将地址(addra)锁存。地址(addra)锁存后输出读取的数据(douta)。 [Ⅱ]锁存输出的数据 地址(addra)锁存后的下一个时钟周期,即可将读取的数据(douta)锁存。 True Dual Port RAM True Dual Port RAM 是双端口读写存储器。True Dual Port RAM 的两个端口可以同时访问。各个端口可以有独立的时钟。True Dual Port RAM 的输入输出端口如表1-24 所示,访问时序图如图1-83 所示。模块名、存储区域宽度和深度等参数在实例化时再决定。 表1-24 True Dual Port RAM 的输入输出端口 图1-83 Dual Port RAM的访问时序图 [Ⅰ]锁存输入的地址 时钟信号(clka)上升沿时将地址(addra)锁存。此时,如果写入使能信号(wea)有效,则将写入的数据(dina)写入存储器。地址(addra)锁存后输出读取的数据(douta)。 [Ⅱ]锁存输出的数据 地址(addra)锁存后的下一个时钟周期,即可将读取的数据(douta)锁存。 由于True Dual Port RAM 可以同时在两个端口进行读写操作,因此在两个端口同时对相同地址进行读写访问时应加以注意。此时的操作可以在块RAM 实例化时加以设置。在此不多做介绍,详情请参阅前文提到的块RAM 文档。 1.7.2  ROM 的设计与实现 本节设计的ROM 将用来存放引导程序。ROM 地址映射到地址0 处,AZ Processor 启动后从0 号地址开始执行程序。ROM 由单个名为rom 的模块构成。存储器使用Single Port ROM。表1-25 列出了rom 模块使用的宏一览,表1-26 列出了rom 模块信号线一览,代码1-10 列出了rom 模块的程序。 表1-25 宏一览(rom.h) 表1-26 信号线一览(rom.v) 代码1-10 Read Only Memory(rom.v) [Ⅰ]存储器的实例化 块RAM 的实例化。 [Ⅱ]异步复位 复位信号有效时,将就绪信号初始化。 [Ⅲ]生成就绪信号 片选信号与地址选通信号同时有效时,因为即将访问总线,就绪信号变为有效。其他情况时,就绪信号设置为无效。 1.7.3  小结 本节讲解了存储器的设计与实现。主要描述了FPGA 的块RAM 的使用方法。 专栏 存储器相关书籍 メモリICの実践活用法(桑野雅彦著、CQ出版) (中文译名:《存储器IC 的实践与活用方法》) 本书通俗易懂地讲述了各种存储器的构造、原理以及使用方法。通过阅读本书,读者们除了可以掌握存储器的基础知识,还可以了解从事电路设计所必需的存储器知识。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《CPU自制入门》其他试读目录

• 1.1 序
• 1.2 计算机系统
• 1.3 数字电路基础
• 1.4 Verilog HDL 语言
• 1.5 系统蓝图
• 1.6 总线的设计与实现
• 1.7 存储器的设计与实现 [当前]
• 1.8 AZ Processor 的设计与实现
• 1.9 I/O 的设计与实现
• 1.10 AZPR SoC 整体连接
• 1.11 AZPR SoC 的仿真
• 1.12 本章总结