基于FPGA的SDRAM控制器设计(一)「建议收藏」

基于FPGA的SDRAM控制器设计(一)「建议收藏」基于FPGA的SDRAM控制器设计(一)1.SDRAM控制器整体框架2.UART_RX模块3.UART_TX模块4.RX与TX模块的整合5.需要注意的问题1.SDRAM控制器整体框架图1.1整体框架PC端通过串口模块UART_RX发送读写命令以及数据到Cmd_encode模块,由后者分离出数据存入wfifo模块,剩下的读写命令传送到Sdram_top模块对SDRAM进行写操作或者从SDRAM读数据到rfifo模块并通过UART_TX模块将数据送出到PC端。2.UART_RX模块主体代码(见

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. SDRAM控制器整体框架

在这里插入图片描述


图1.1整体框架

PC端通过串口模块UART_RX发送读写命令以及数据到Cmd_encode模块,由后者分离出数据存入wfifo模块,剩下的读写命令传送到Sdram_top模块对SDRAM进行写操作或者从SDRAM读数据到rfifo模块并通过UART_TX模块将数据送出到PC端。

2.UART_RX模块

主体代码(见本文最后)由六个时序逻辑块组成,对波特计数器、接收信号线标志位、比特计数器、接收数据、以及Po标志位进行操作,使其能够遵从固定的时序逻辑(图1.2),完成串口的接收功能。
在这里插入图片描述


图1.2 UART接收模块时序图

测试代码主要由两个task组成,从txt文件中读取待传输数据,然后按位、按每位560个时钟周期的时序发送。仿真结果如下图1.3所示。
在这里插入图片描述


图1.3 UART接收模块仿真结果

观察到rx_data信号端口已输出预先设定好的数据(h55 h12 h34 haa)。

3.UART_TX模块

主体代码主要由六个时序模块组成,分别对数据发送寄存器、数据发送标志位、波特计数器、比特标志位、串口发送端进行设置,使其能够遵从图1.4所示的时序逻辑,完成串口的发送功能。
在这里插入图片描述


图1.4 UART发送模块时序图

测试代码将固定的数据(如:h55)送入UART_TX模块的Tx_data端并在tx_trig端给到一个小脉冲用以激活发送模块,仿真结果如图1.5所示。
在这里插入图片描述


图1.5 UART发送模块仿真结果

可以观察到rs232_tx端口已输出给定数据(h55)。

4. RX与TX模块的整合

整合两个模块使PC端与FPGA能够通过串口进行通信,如图1.6所示将po_flag与tx_trig,rx_data与tx_data相连,外部只留出时钟信号线、复位信号线以及数据的输入输出信号线。
在这里插入图片描述


图1.6 RX/TX TOP模块

5.需要注意的问题

1、采样时间点的选择:应在rs232_tx信号线每一位的最中间进行采样,这样能得到最稳定的信号
2、时钟周期的计算:串口每发送一位数据所占用的FPGA的时钟周期计算公式为:
一 位 数 据 占 用 时 钟 周 期 = 系 统 时 钟 串 口 波 特 率 一位数据占用时钟周期 = \frac{系统时钟}{串口波特率} =
例如:波特率为9600的串口每发送一位数据占用50M Hz FPGA时钟周期数为
50 × 1 0 6 9600 ≈ 5280 \frac{50 \times10^6}{9600}\approx5280 960050×1065280

3、编写UART_RX与UART_TX的目的在于让PC与FPGA能够通过统一的通信标准——串口通信进行数据的交流,在对两个模块进行整合后由于没有FPGA板子进行测试,所以又编写了一个测试文件进行模拟。模拟结果如图1.7。
在这里插入图片描述


图1.7 RX/TX TOP模块仿真结果

可以看到,在RS232模块的数据接收端rs232_rx(PC数据发送端)收到的数据与一定延迟后数据发送端rs232_tx(FPGA数据接收端)发送的数据保持一致。

6.代码

我的Github

7.参考资料

【开源骚客】基于FPGA的SDRAM控制器设计

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160099.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月25日 下午4:00
下一篇 2022年7月25日 下午4:00


相关推荐

  • 别再手搓新闻简报了:用两个 OpenClaw Skill 自动生成“报纸风新闻长图”

    别再手搓新闻简报了:用两个 OpenClaw Skill 自动生成“报纸风新闻长图”

    2026年3月13日
    1
  • 流量精灵刷流量的实例教程

    流量精灵刷流量的实例教程流量精灵大概是去年的这个时候出来的一款提升网站访问量的软件,由于软件比较优秀,当时我就及时关注这款软件,现在时隔一年的时候,流量精灵在低调的发展下,版本也更新到了2.1.7。而以前只是写了一下流量精灵的测评文章,感觉已不能满足大家的需求,所以今天为广大的新手及新站长朋友写上详细的使用教程。流量精灵的功能介绍:主要就是刷流量的。这里的流量主要是指网站的流量,网站流量简单一点说就是访…

    2026年4月18日
    2
  • 智能体(Agent)全景拆解指南:技术架构与业务实践深度解析

    智能体(Agent)全景拆解指南:技术架构与业务实践深度解析

    2026年3月16日
    3
  • Java Integer最大值最小值输出

    Java Integer最大值最小值输出System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MAX_VALUE+1);System.out.println(Integer.MIN_VALUE);System.out.println(Integer.MIN_VALUE-1);输出结果如下:2147483647-214748364

    2025年10月7日
    4
  • Python入门教程(从小白到高级)(新版)

    Python入门教程(从小白到高级)(新版)Python 从一无所知到精通 新版 吐槽 Hello everyone 经历完广东中考折磨的我回来啦 不得不说这届广东考生真的有些困难 先后经历了疫情 然后这次中考又来了一份折磨人的数学试卷 初高中衔接 难度我也觉得有些大 最后我也不多说了 但愿看到这篇教程的广东初三中考生知道过去的都过去了 不要再这么纠结与郁闷 人生路漫漫 不必因为数学失利而感到绝望 毕竟你难别人也会觉得难 你死了别人也可能跟你一样陪葬 收拾好行装 整理好心态 重新出发 活在当下 为未来努力奋斗才是实在 同时也祝愿广州考生能在七月的中

    2026年3月27日
    2
  • jquery选择器用法_jQuery属性选择器

    jquery选择器用法_jQuery属性选择器jQuery的选择器一、基本选择器1.ID选择器ID选择器#id就是利用DOM元素的id属性值来筛选匹配的元素,并以iQuery包装集的形式返回给对象。使用公式:$("#id")示例:$("#box")//获取id属性值为box的元素2.元素选择器…

    2025年6月14日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号