实验二 存储器实验

一、FPGA 中 LPM_ROM 定制与读出实验的实验步骤

第一步:创建新的工程建立mif文件

File--->New Project wizard.... --->选择芯片cyclone IV EP4CE22F17C8--->建立存储器初始化文件ROM1.mif  --->创建一个128*32bits空间大小的存储空间--->输入初始化数据(如图5.1ROM1的数据)

图5.1 ROM1的数据

第二步:调用用LMP元件库创建自己的元件。

用图形编辑,进入 mega_LPM 元件库,调用 LPM_ROM 元件,设置地址总线宽度 ADR[6..0] 和数据总线宽度 Q[31..0],分别为 7位和 32位,并添加输入输出引脚,如下图5.2所示设置和连接。

图5.2 自定义ROM的原理图

第三步:编译,仿真测试。

编译通过后。创建University Program vwf文件进行仿真测试。仿真图如图5.3 自定义ROM的仿真图。

图5.3 自定义ROM的仿真图

分析此仿真图,每当clk是上升沿,就会触发此ROM,读出对应地址中的内容,比如说当地址是1的时候,clk遇到上升沿的时候,就会触发,读出相应地址内的内容为1。

二、FPGA 中 LPM_RAM 定制与读出实验的实验步骤

第一步:创建新的工程建立mif文件

File--->New Project wizard.... --->选择芯片cyclone IV EP4CE22F17C8--->建立存储器初始化文件ROM1.mif  --->创建一个128*8bits空间大小的存储空间--->输入初始化数据(如图5.4ROM2的数据)

图5.4ROM2的数据

第二步:调用用LMP元件库创建自己的元件。

用图形编辑,进入 mega_LPM 元件库,调用 LPM_RAM 元件,设置地址总线宽度 ADR[6..0] 和数据总线宽度 Q[7..0],分别为 7位和 8位,并添加输入输出引脚,wren控制的是读写信号,wren是1的时候是写入数据,为0时读取数据。如下图5.5所示设置和连接。

图5.5自定义RAM的原理图

第三步:编译,仿真测试。

编译通过后。创建University Program vwf文件进行仿真测试。wren=0的仿真图如图5.6 自定义RAM的仿真图1。

图5.6 自定义RAM的仿真图1

分析此仿真图,当读写信号线wren设置为0时,只能读。每当clk是上升沿,就会触发此RAM,读出对应地址中的内容,比如说当地址是1的时候,clk遇到上升沿的时候,就会触发,读出相应地址内的内容为1。

当wren=1和0的仿真图如图5.7 自定义RAM的仿真图2

图5.7 自定义RAM的仿真图2

分析此仿真图,当读写信号线wren设置为0和1交替时,可读可写。每当clk是上升沿,就会触发此RAM,读出对应地址中的内容,当wren是1的时候,就会将data中的数据更新address处的数据。实现数据的更新,比如说当wren第一次为1时,将1 地址内的数据更新为128,之后遇到clk为上升沿读取数据发现是128。

六、实验讨论与总结

(1)如何在图形编辑窗口中设计 LPM-ROM 、LPM-RAM存储器?怎样设计地址宽度和数据线的宽度?怎样导入 LPM-ROM、LPM-RAM 的设计参数文件和存储 LPM-ROM 、LPM-RAM的设计参数文件?

解答:以设计LPM-ROM为例,设计的时候在IP Catalog窗口搜ROM,如下图

选中ROM:1-POST之后,选择一个保存的位置,比如ROM,然后设置相应的参数,如下图。

最后需要创建.bsf和.v的文件。就可以在原理图中进行设计的引用了。

创建一个Block Diagram/Schematic File文件,双击界面,弹出一个Symbol的界面,找到Project,就可以选中我们刚刚创建的ROM了。

RAM的创建和ROM的相似,只不过搜的时候搜RAM。其余步骤同理。

(2)怎样对 LPM-ROM、LPM-RAM 的设计参数文件进行软件仿真测试?

解答:以ROM为例,设计完原理图之后,就需要创建VMF的仿真文件,将引脚导入,设置相应的参数,进行仿真的测试。设置参数的对于ROM的测试主要就是address和clk,但是对于RAM来说多了wren和data,都要进行测试。

(3)怎样在实验台上对 LPM-ROM 、LPM-RAM进行测试?

解答:需要下载到我们的实验箱上的FPGA芯片上进行测试,通过拨码开关结合段码显示,进行测试。

(4)存储器原理图中的地址、数据,可否通过寄存器提供?

解答:可以,寄存器本身就有存储的功能,但是需要控制好周期。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CPU设计部分实验五是关于存储器的实现。存储器是计算机中用于存储和提取数据的地方,它是计算机的重要组成部分。 在实验中,我们需要设计并实现一个存储器模块。存储器模块是由多个存储单元构成的,每个存储单元可以存储一个固定大小的数据。我们可以通过地址来访问存储单元中的数据。在实验中,我们需要选择合适的存储器类型、存储单元容量和地址位数。 在设计存储器模块时,我们需要考虑以下几个方面。首先,我们需要确定存储器的类型。常见的存储器类型有随机存取存储器(RAM)和只读存储器(ROM)。RAM可以通过读写操作来存储和提取数据,而ROM只能读取数据。我们需要根据实验的需求选择合适的存储器类型。 其次,我们需要确定每个存储单元的容量。容量决定了每个存储单元可以存储的数据量。通常,存储单元的容量是以比特(bit)为单位进行衡量的。在实验中,我们需要根据数据的大小来选择合适的存储单元容量。 最后,我们还需要确定存储器的地址位数。地址位数决定了我们可以使用的地址数目。地址的位数决定了存储器的寻址范围。在实验中,我们需要根据存储器的容量和存储单元的大小来选择合适的地址位数。 通过设计和实现存储器模块,我们可以在CPU中完成数据的存储和提取操作。这对于计算机的正常运行是至关重要的。实验五的完成将有助于我们更好地理解存储器的工作原理和在计算机系统中的重要作用。 ### 回答2: CPU设计部分实验五是关于存储器实现的实验存储器是计算机中用于存储指令和数据的硬件组件,它在CPU中起着重要的作用。 在这个实验中,我们需要实现一个简单的存储器模块。存储器由一组连续的存储单元组成,每个存储单元可以存储一个固定大小的数据。我们需要使用Verilog HDL语言编写代码来描述存储器的行为。 首先,我们需要定义存储器的输入和输出端口。存储器的输入端口包括读写控制信号和地址信号,输出端口包括读取的数据。 然后,我们需要根据输入的控制信号和地址来实现存储器的功能。当读写控制信号为读取时,我们需要根据给定的地址从存储单元中读取相应的数据,并将其输出。当读写控制信号为写入时,我们需要将输入的数据写入到指定的地址。 为了实现存储器的功能,我们可以使用Verilog HDL中的内存模块。内存模块可以方便地实现存储器的读写操作。 最后,我们需要对实现的存储器模块进行验证。可以编写一些测试用例,并使用模拟器进行仿真,验证存储器的读写功能是否正确。 总结起来,CPU设计部分实验五是一个关于存储器实现的实验。通过实现一个简单的存储器模块,我们可以加深对存储器的理解,并掌握使用Verilog HDL语言进行硬件描述的技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单点了

谢谢大佬

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值