0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SDRAM控制器设计之command.v代码解析

友晶FPGA ? 来源:友晶FPGA ? 2025-02-25 10:32 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

下图是本案例的功能框图。

3e1b98a0-f289-11ef-9310-92fbcf53809c.png

command.v文件对应图中SDRAM指令执行模块,它会从SDRAM接口控制模块接收指令,然后产生控制信号直接输出到SDRAM器件来完成所接收指令的动作。如下是该模块的RTL视图:

3e2b0376-f289-11ef-9310-92fbcf53809c.png

其具体代码讲解如下:

输入信号INIT_REQ指示的是SDRAM上电等待的24000个时钟周期,在这期间do_initial信号为高,系统只能发送NOP命令。

当初始化等待时间结束do_initial被拉低,首先确认在没有其他指令进行中时,若有刷新请求,则do_refresh信号拉高。

然后确认在没有其他指令进行中时,有读请求时,do_reada信号拉高。

然后确认在没有其他指令进行中时,有写请求时,do_writea信号拉高。

然后确认在没有其他指令进行中时,有预充电请求时,do_precharge信号拉高。

然后确认在没有其他指令进行中时,有模式寄存器加载请求时,do_load_mode信号拉高。

3e3744ba-f289-11ef-9310-92fbcf53809c.png

3e43c226-f289-11ef-9310-92fbcf53809c.png

当产生自动刷新命令、读写命令、预充电命令和模式加载命令时,系统会通过command_delay来延迟指令的有效执行时间,确保指令能完整进行。除开突发读/写的情况,其他每个指令统一延迟8个时钟周期后再延迟4个周期。

3e4f6752-f289-11ef-9310-92fbcf53809c.png

拿预充电命令举例:

3e5ef9d8-f289-11ef-9310-92fbcf53809c.png

读写命令则是等待64个数据连续读/写完后,再延迟4个时钟周期。拿读命令举例:

3e6bcaa0-f289-11ef-9310-92fbcf53809c.png

下面是地址端口、bank选择和片选信号的处理。在初始化状态,加载模式寄存器时是通过地址端口对寄存器进行赋值的。在激活操作时,地址端口发送行地址;在读或者写操作时,地址端口发送列地址。

3e7a179a-f289-11ef-9310-92fbcf53809c.png

3e846a88-f289-11ef-9310-92fbcf53809c.png

3e8f7f4a-f289-11ef-9310-92fbcf53809c.png

3e9cbdb8-f289-11ef-9310-92fbcf53809c.png

command.v 模块里面得到行地址rowaddr和列地址coladdr:

3ead60f0-f289-11ef-9310-92fbcf53809c.png

放大地址线SA波形可以看到,在行激活的时候发送的地址确实是0:

3ebe8dee-f289-11ef-9310-92fbcf53809c.png

下面是RAS_N、CAS_N、WE_N信号的产生。

3ecece0c-f289-11ef-9310-92fbcf53809c.png

3ede5a16-f289-11ef-9310-92fbcf53809c.png

因为写入 SDRAM 的数据与从 SDRAM 读出的数据为共用传输引脚,为避免存取数据相冲,系统里设计了一个三态门电路(三态门电路的设计参考07-SDRAM控制器的设计——Sdram_Control.v代码解析(后续发布),通过oe信号控制SDRAM 数据接口的输入和输出。oe信号的设计如下:

3eed8b30-f289-11ef-9310-92fbcf53809c.png

3ef56e9a-f289-11ef-9310-92fbcf53809c.png

每次oe信号拉高超过64个时钟周期,确保数据被正确写入到SDRAM器件当中:

3f03bf54-f289-11ef-9310-92fbcf53809c.png

另外,读命令和写命令之前要先有激活命令,读写命令在激活命令的3个周期后发出,所以这里用个右移计数器计数3个周期:

3f1654ca-f289-11ef-9310-92fbcf53809c.png

do_wr信号波形如下:

3f22c17e-f289-11ef-9310-92fbcf53809c.png

PS: 本文波形来自文件~sdramcontroloutput_filescommand.stp。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17165

    浏览量

    184884
  • SDRAM
    +关注

    关注

    7

    文章

    443

    浏览量

    56423
  • 接口
    +关注

    关注

    33

    文章

    9032

    浏览量

    153976
  • 指令
    +关注

    关注

    1

    文章

    617

    浏览量

    36694
  • 代码
    +关注

    关注

    30

    文章

    4905

    浏览量

    70988

原文标题:05-SDRAM控制器的设计——command.v代码解析

文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SDRAM控制器的设计——Sdram_Control.v代码解析(异步FIFO读写模块、读写SDRAM过程)

    的设计——control_interface.v代码解析; /d/6458523.html ? SDRAM指令执行模块解读参考:04-
    的头像 发表于 03-04 10:49 ?1592次阅读
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的设计——<b class='flag-5'>Sdram_Control.v</b><b class='flag-5'>代码</b><b class='flag-5'>解析</b>(异步FIFO读写模块、读写<b class='flag-5'>SDRAM</b>过程)

    DDR_SDRAM控制器的VHDL代码已经测试

    DDR_SDRAM控制器的VHDL代码已经测试
    发表于 08-24 16:49

    【开源骚客】《轻松设计SDRAM控制器》第八讲—命令解析模块讲解

    的哦,哈哈,大家先别急。在这一讲中,我们就来完成读模块,然后对这个SDRAM控制器稍加完善就可以应用到项目中了。本讲主要内容如下:命令解析模块的作用详细介绍;命令解析模块时序设计;命令
    发表于 05-08 22:31

    SDRAM控制器参考设计,Lattice提供的VHDL源代码

    SDRAM控制器参考设计,Lattice提供的VHDL源代码 -- Permission: --   Lattice Semiconductor grants
    发表于 06-14 08:54 ?93次下载

    使用Verilog实现基于FPGA的SDRAM控制器

    摘 要:介绍了SDRAM的特点和工作原理,提出了一种基于FPGA的SDRAM控制器的设计方法,使用该方法实现的控制器可非常方便地对SDRAM
    发表于 06-20 13:04 ?2385次阅读

    SDRAM控制器简易化设计

    SDRAM存储芯片拥有快速读写的性能,可以应用以回波模拟系统作为数据高速缓存SDRAM芯片是由SDRAM控制器
    发表于 10-24 15:08 ?0次下载
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>简易化设计

    DDR SDRAM控制器参考设计VHDL代码

    Xilinx FPGA工程例子源码:DDR SDRAM控制器参考设计VHDL代码
    发表于 06-07 11:44 ?19次下载

    DDR SDRAM控制器verilog代码

    Xilinx FPGA工程例子源码:DDR SDRAM控制器verilog代码
    发表于 06-07 14:13 ?39次下载

    基于VHDL的SDRAM控制器的实现

    基于VHDL的SDRAM控制器的实现
    发表于 01-22 13:43 ?12次下载

    EPM1240的SDRAM控制器的设计

    EPM1240的SDRAM控制器的设计
    发表于 10-31 08:24 ?21次下载
    EPM1240的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的设计

    SDRAM控制器的设计

    逻辑复杂,接口方式与普通的存储差异很大。为了解决这个矛盾,需要设计专用的SDRAM控制器,使用户像使用SRAM -样方便的使用SDRAM。考虑到
    发表于 11-28 19:51 ?5次下载
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的设计

    FPGA读写SDRAM的实例和SDRAM的相关文章及一些SDRAM控制器设计论文

    本文档的主要内容详细介绍的是FPGA读写SDRAM的实例和SDRAM的相关文章及一些SDRAM控制器设计论文主要包括了:FPGA读写SDRAM
    发表于 12-25 08:00 ?57次下载
    FPGA读写<b class='flag-5'>SDRAM</b>的实例和<b class='flag-5'>SDRAM</b>的相关文章及一些<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>设计论文

    如何使用FPGA设计SDRAM控制器

    针对SDRAM 操作繁琐的问题,在对SDRAM 存储和全页突发式操作进行研究的基础上,提出一种简易SDRAM 控制器的设计方法。该设计方法
    发表于 12-18 16:13 ?6次下载
    如何使用FPGA设计<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    基于SDRAM控制器软核的Verilog设计

    SDRAM控制逻辑复杂,使用很不方便。 为了解决这个矛盾,需要设计专用的SDRAM控制器,使系统用户象使用SRAM一样方便的使用SDRAM
    的头像 发表于 06-30 09:16 ?2994次阅读
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>软核的Verilog设计

    PIC32系列参考手册DDR SDRAM控制器

    电子发烧友网站提供《PIC32系列参考手册DDR SDRAM控制器.pdf》资料免费下载
    发表于 09-25 11:39 ?0次下载
    PIC32系列参考手册<b class='flag-5'>之</b>DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>