基于cyclone_的高速异步串行接口的实现.pdf

上传人:大张伟 文档编号:7207831 上传时间:2020-11-06 格式:PDF 页数:2 大小:720.44KB
返回 下载 相关 举报
基于cyclone_的高速异步串行接口的实现.pdf_第1页
第1页 / 共2页
基于cyclone_的高速异步串行接口的实现.pdf_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于cyclone_的高速异步串行接口的实现.pdf》由会员分享,可在线阅读,更多相关《基于cyclone_的高速异步串行接口的实现.pdf(2页珍藏版)》请在三一文库上搜索。

1、 - 65 - 基于 cyclone的高速异步串行接口的实现 宋开鑫,李 斌,王 婧,靖 文,张嘉春,孙新立 (沈阳理工大学,辽宁 沈阳 100168) 【摘 要】文章首先介绍了系统的总体结构,然后详细论述了系统各个组成部分的原理和工作过程,主要论证了如何利用 锁相环进行 5 倍采样从而实现位同步和串并转换,然后用 FIFO 来实现时钟域的转换,外加一些必要的设置,最终实现了利用 现场可编程逻辑器件 cyclone对 150M 数据正确的接收和转发。 【关键词】并串串并转换;位同步;锁相环;Verilog HDL 【中图分类号】TP303 【文献标识码】A 【文章编号】1008-1151(20

2、08)01-0065-02 (一)研究背景 一直以来,高速数据的接收始终是一个难题,由于必须 采用本地高频时钟来进行位同步,所以用 FPGA 来接收百兆以 上的数据,如何选择高频时钟并运用它正确的进行数据接收 是一个挑战。如果高速串行数据需要经过两个完全不同的时 钟域转发,一个理想的方法是同步后加一级 FIFO 缓存。下面 就介绍一种能够正确接收并发送 150M 高速串行码流的方法, 其主题思想是利用 cyclone来生成两个模块: 发送端和接收 端。 发送端主要是同步模块加一级 FIFO 缓存, 接收端利用 PLL 产生 150M 时钟,正确的将数据从 FIFO 中读取并发送出去。 (二)总

3、体架构 本系统接收数据后由本地时钟利用fpga提供的锁相环进 行位同步,经过 FIFO 缓存,最终完成由原始时钟域到本地时 钟域的转换,总体结构框图如图 1 所示。 图 1 系统的总体结构图 两个端口的本地时钟可以是完全不同的(也可以相同) , 接收端与发送端之间通过一个 FIFO 相连接。本系统每个时钟 周期对外部码流采样五次,外部码频为 150M,则所需最高时 钟频率为 750 ( 5150) MHZ,Cyclone的 PLL 完全满足要 求。接收端 PLL 产生两个时钟信号:主时钟 MCLK(1505/4 187.5MHZ)和对其移相 90的时钟 MCLK90,由于 PLL 的输 出口仅

4、有两个,系统内部还需要加一级反相器,生成另两个 时钟信号!MCLK 和!MCLK90; 发送端 PLL 生成 150MHZ 的时钟以 正确发送数据。下面介绍一下该结构图的各个组成部分: 1.接收端 1.接收端 接收端主要由以下几个部分组成: 输入端口、 接收端PLL、 外部反相器、串并转换器、位同步等。 2.发送端 2.发送端 发送端主要由以下几个部分组成: 输出端口 (LVDS标准) 、 发送端 PLL 和并串转换器。 3.FIFO 缓存器 3.FIFO 缓存器 主要用作数据缓冲器。 (三)系统工作过程简介 系统的整体工作过程如下: 首先接收端四个相位相差90的 时钟对由 LVDS 端口发送

5、来的串行数据进行循环采样,采样后 对接收数据进行串并转换,然后经 FIFO 缓存器后由另一个时 钟域 RXCLK 读出,这样就完成了时钟域的转换,转换得到的 信号送至发送端;然后发送端接收到信号,经并串转换器生 成 150M 的信号由输出端口发送出去。 (四)模块详细介绍 1.采样模块(接收端) 1.采样模块(接收端) 采用 5 倍采样方式,其 vhdl 描述过程如下:接收端四个 时钟(MCLK、MCLK90、 !MCLK、 !MCLK90)分别对串行数据进 行采样, 用四个三位的数组 (sa2.0, sb2.0, sc2.0、 sd2.0) 来存放采样的数据。 由于 MCLK 为输入频率的

6、5/4, 所以每个输入数据被采样了五次。该模块主要用来确定输入 数据的传输点和位同步。具体程序描述如下: if( posedge MCLK) then sa0=data_in; 2008 年第 1 期 大 众 科 技 No.1, 2008 (总第 101 期) DA ZHONG KE JI (Cumulatively No.101) 【收稿日期】2007-10-22 【作者简介】宋开鑫,男,山东沂南人,沈阳理工大学硕士生,研究方向为 fpgacpld 硬件研发。 接 收 端 输 入 接收端本地时钟 发 送 端输 出 发送端本地时钟 接 收 端 P L L 发 送 端 P L L F I F O

7、 - 66 - sa2=sa1=sa0; sb2=sb1=sb0;sc2=sc1=sc0; sd2=sd1; if( posedge MCLK90) then sb0=data_in; sd1=sd0; if( negedge MCLK) then sc0=data_in; if( negedge MCLK90) then sd0=data_in; sample07.4=sample03.0= sa2,sb2,sc 2,sd2; sample09.8=sa2, sb2;sample11.0=sc2,sd2; sample19.6=sample15.2= sa2,sb2,sc 2,sd2; be

8、gin: sample _ select=sample _ select; dout9.0q1之前, 不会出现q11.2都为低的情况; 当D10 q1的瞬间,D11-q2,所以此时 q11.2全为 0, load 端使能,下一组并行信号被输入其中。如此,随着时钟 信号的不断变化,寄存器不停的向外发送串行数据。 (五)Quartus配置 本系统是基于 Quartus编程下载来实现的, 要想充分发 挥 cyclone的功能, 提高本系统的稳定性, 必须对该系统加 一些必要的约束。 1.首先需要手动将 sa2.0,sb2.0,sc2.0、 sd2.0四个三位寄存器就近输入端口放置。而且因为这四 个寄

9、存器是由四个不同的时钟域产生的,故将其中的两个放 在同一个 LAB 里面,另两个放在令外的一个 LAB 里面,这两 个 LAB 需要在 cyclone的同一行中。 2.本系统需要设置时钟和 IO 约束,最高时钟频率应设为 独立的 75MHZ。 另外所有的输入输出数据端口都要设置为低压 差分信号传输(LVDS)方式,其他的端口设置为 LVTTL 方式 即可。 (六)总结 本文介绍了一种高速异步串行接口的实现方法,其主要 思想是利用五倍的采样来实现位同步与串并转换,采用 FIFO 缓存器来实现两个完全不同时钟域之间的转换,最后采用移 位寄存器来实现数据的并串转换。本系统中全局时钟的设置、 Logi

10、cLock 配置、IO 口传输方式的选择都是非常关键的。根 据 cyclone的最高处理速度、PLL 特点和 IO 支持的传输标 准,对 FPGA 进行正确的约束、设置和配置,再加上健全的程 序组,最终才能更加有效的发挥 FPGA 优势,从而能更加有效 的解决高速数据通信中遇到的难题。 【参考文献】 1 吴继华,范丽珍,薛宁,薛小刚.Altera FPGA/CPLD 设计 (基础篇)M.人民邮电出版社,2005.7. 2 吴继华,王诚. Altera FPGA/CPLD 设计(高级篇)M.人民 邮电出版社,2005.7. 3 王金明,徐志军. Verilog HDL程序设计M.人民邮电出版 社

11、,2004.1. 4 蔡明生.电子设计M.高等教育出版社,2004.1. 更 正 1.2007 年 10 月刊,目录中的“覃素来”应为“贾 素来” 。 2.2007 年 11 月刊第 190 页,作者姓名应为“刘巧 瑛” ,中图分类号应为“DF521;F723” ,文献标识码应为 “A” 。 3.2007 年 11 月刊第 38 页,第一行的“规范”更正 为“措施” ,第四行及第九行“板”字后面应增加“坯” 。 4.2007 年 12 月刊第 88 页,江日青作者应为“女” 。 VCC clk INPUT VCC reset INPUT serial_out OUTPUT GND OR2 inst2 NOT inst3 VCC 14 or_8 inst6 D9.0 VCC data9.0 INPUT D10 D11 D11.0 q11.0 q11.2 right shift sclr load data11.0 clock shiftin shiftout q11.0 shift_16 inst

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1