首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
Virtex-5FPGA设计Gbps无线通信基站
来源:本站整理  作者:佚名  2009-04-02 14:09:42



1、引言

  随着集成电路(IC)技术进入深亚微米时代,片上系统SoC(System-on-a-Chip)以其显著的优势成为当代IC设计的热点。基于软硬件协同设计及IP复用技术的片上系统具有功能强大、高集成度和低功耗等优点,可显著降低系统体积和成本,缩短产品上市的时间。IP核是SoC设计的一个重要组成部分,已成为目前微电子设计的热点和主要方向[1]。

  UART 核以其可靠性、传送距离远的特点被广泛应该到通信系统和嵌入式微处理器上。利用传统的EDA工具通过对RTL代码仿真、验证、综合、布局布线后生成网表,下载到FPGA中实现,这样做成的核主要用于验证的[2],不适合用来做掩膜。在ASIC/SoC技术日渐成熟的今天,设计商更希望得到能够做掩膜的IP核,从而便于嵌入到ASIC/SoC设计中。本文描述的UART核采用SYNOPSYS软件的设计流程,在RTL级上进行优化,解决了综合优化中碰到的一些常见问题。利用VCS 仿真、编写测试激励来验证,最后用design compile 综合优化做成的IP核可以满足此要求,应用到ASIC/SoC设计中将产生巨大的效益。

  2、UART核的功能分析和设计

  2.1 UART 核的传输协议与总体模块设计

  通常信息是通过数据帧来传送的,由起始位、8位数据位、停止位组成。起始位为低电平,表示串行数据开始传输,停止位为高电平,表示数据传送结束。
 
  UART的结构框图如图1所示[3],主要有由波特率发生器、发送部分和接收部分等组成。本设计采用全双工异步通信的方式,通过层次结构化、划分模块的方法来实现。

UART 的结构框图

图1 UART 的结构框图

  2.2 UART 核的功能设计

  2.2.1 波特率发生器

  波特率是用来实现数据接收和发送的异步,波特率实际上就是分频器。UART的数据接收和发送是通过对波特率的设置进行实现的,本文采用16分频[3]。

  2.2.2 接收器模块设计

  接收器模块将8 位串行数据并行发出,用loadbuf 信号来装载八位串行数据。接收8位串行数据之前先要判断起始位;当起始位到来后经过5个clk16x采样,使采样点接近中央位置,这样数据稳定。然后每过16个时钟clk16x后,将8位串行数据逐位接收进来。当数据接收完毕,检查是否到达停止位,若是则表示接收成功,否则出现帧错误(framing_err), 并重新检测等待。当数据接收完毕后,等待数据的并行发出,当中断信号(rask)有效时发送数据。

  接收数据停止位的判断采用9位移位寄存器(shift_reg)来实现。开始时将shift_reg全部置1,当16个clk16x到来时候,将串行数据从低位到高位逐位地移入到shift_reg的低位到高位。每接收一位数据后,判断是否接收完,由于起始位是最先进入shift_reg的,所以当数据全部接收完后。起始位已经进入了shift_reg的最后一位,表示数据接收完,如果在接收到停止位的逻辑是0,则表示产生帧错误(framing_err),等待再次检测直到停止位为1,表示接收完毕。采用状态机来实现数据起始位、停止位的判断和串行数据的接收[4]。

  图2给出了接收模块的仿真波形。由波形可以看出,当输入0F0H,并行输出正确,其中state、reset、clk1x、flag、dout和rbuffer分别是状态机、复位信号、使异步的时钟同步、数据发送出去的标志、并行数据输出和数据缓冲器,而ask、rask和flag是中断发送控制,其中rask是控制数据发送。

[1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:142,175.80000 毫秒