微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的SOC系统中的串口设计

基于FPGA的SOC系统中的串口设计

时间:08-05 来源:互联网 点击:
时序匹配  

Picoblaze的运行速度不超过40MHz,而SDRAM的工作速度通常大于100MHz。因此为了满足SDRAM的时序要求,要增加必要的缓冲机制。
   
3.1存储器接口硬件设计  

Picoblaze与SDRAM存储器接口的硬件原理框图见图4。  

  
控制状态机控制的地址计数器为SDRAM控制器提供地址,同时控制状态机还控制输入数据缓冲区和输出数据缓冲区,并且根据Picoblaze的地址端口数据和读/写使能信号产生SDRAM控制器的命令字。  

(1)SDRAM初始化  

每次加电或复位后控制状态机执行对SDRAM控制器的初始化操作,设置SDRAM的时间参数和刷新周期等。  

(2)数据写入SDRAM  

输出数据缓冲区由16×8bit的FIFO构成,当Picoblaze向输出数据缓冲区写入超过8个字节后,通过“半满”信号使控制状态机进入SDRAM的长度为8的突发写模式,在写入完成后控制状态机将地址计数器增加8,以准备好下一次的写入。  

(3)数据读取  

数据读取时Picoblaze首先向控制状态机发送读取请求,控制状态机进入SDRAM的长度为1的突发读模式,并将读取的数据写入输入数据缓冲区,此后Picoblaze再由输入数据缓冲区中读取数据。在读取后,地址计数器做相应的增加,以实现先入先出功能。  

以上的设计方法适用于需要数据连续写入后再连续读取的场合。  

控制状态机状态图见图5。  

  
3.2 存储器接口软件设计  

由于在SDRAM控制器与Picoblaze之间增加了控制状态机,简化了Picoblaze的程序设计。  

(1)数据写入  
数据写入时Picoblaze向输出数据缓冲区直接写入数据即可。  

(2)数据读取  
数据读取时Picoblaze首先向控制状态机发出请求,然后等待输入数据缓冲区的数据准备就续后再读取。  

4结论  

本文在XILINX FPGA中采用嵌入式处理器Picoblaze进行SOC设计,以较少的硬件资源实现了对串口通信数据的处理,同时采用SDRAM器件对Picoblaze的存储能力进行扩展。所采用的设计已应用于多个产品中。经过了长期的使用和测试证明文中的设计方法稳定、可靠,并且具有资源占用少,设计灵活的优点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top