cy7c68013与fpga接口的verilog_hdl实现

上传人:aa****6 文档编号:37573679 上传时间:2018-04-18 格式:DOCX 页数:6 大小:185.60KB
返回 下载 相关 举报
cy7c68013与fpga接口的verilog_hdl实现_第1页
第1页 / 共6页
cy7c68013与fpga接口的verilog_hdl实现_第2页
第2页 / 共6页
cy7c68013与fpga接口的verilog_hdl实现_第3页
第3页 / 共6页
cy7c68013与fpga接口的verilog_hdl实现_第4页
第4页 / 共6页
cy7c68013与fpga接口的verilog_hdl实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《cy7c68013与fpga接口的verilog_hdl实现》由会员分享,可在线阅读,更多相关《cy7c68013与fpga接口的verilog_hdl实现(6页珍藏版)》请在金锄头文库上搜索。

1、CY7C68013CY7C68013 与与 FPGAFPGA 接口的接口的 VerilogVerilog HDLHDL 实现实现0 0 引引 言言 USB(通用串行总线)是英特尔、微软、IBM、康柏等公司 1994 年联合制定的 一种通用串行总线规范,它解决了与网络通信问题,而且端口扩展性能好、容 易使用。最新的 USB2.0 支持 3 种速率:低速 1.5 Mbit/s,全速 12 Mbit/s,高 速 480 Mbit/s。这 3 种速率可以满足目前大部分外设接口的需要。 本文介绍了目前使用较多的 USB2.0 控制器 CY7C68013 芯片与 FPGA(现场可 编程门阵列)芯片接口的

2、Verilog HDL(硬件描述语言)实现。本系统可扩展,完 全可用于其他高速数据采集系统中。 1 1 系统构成系统构成 本系统主要是由 FPGA 和 USB2.0 控制器 CY7C 组成,系统框图及其信号连接 关系如图 1 所示。可以根据实际系统的需要,用 FPGA 实现预定功能,如数据采 集卡、控制硬盘读写等。1.1 控制器 CY7C68013 Cypress 公司的 EZ-USB FX 2 是第一个包含 USB2.0 的集成微控制器,它内 部集成了 1 个增强型的 8051、1 个智能 USB 串行接口引擎、1 个 USB 数据收发 器、3 个 8 位 I/O 口、16 位地址线、8.5

3、 kB RAM 和 4 Kb FIFO 等。增强性 8051 内核完全与标准 8051 兼容,而性能可达到标准 8051 的 3 倍以上。其框图如图 2 所示。1.1.1 CY7C68013 结构特点 EZ-USB FX2 提供了一种独持架构,使 USB 接口和应用环境直接共享 FIFO, 而微控制器可不参与数据传输,但允许以 FIFO 或 RAM 的方式访问这些共享FIFO,这种被称之为“量子 FIFO“的处理架构,较好地解决了 USB 高速模式的带 宽问题。 FX2 芯片在数据传输时主要利用了 4 kB 的 FIFO,分为 7 个端点: EPOIN&OUT、EP1IN、EP1OUT、EP2

4、、EP4、EP6 和 EP8。其中 EPO、EPlIN 和 EP1OUT 是 3 个 64 B 的缓存,只能被固件访问,EP0 是一个默认的数据输入输出 端口缓存;EP1IN 和 EP1OUT 是单独的 64 B 缓存,呵以配置这些端点为块传输、 中断传输或同步传输;端点 2、4、6、8 是大容量高带宽的数据传输端点,可以 配置为各种带宽以满足实际需要,端点 2、4 是输出端点,端点 6、8 是输入端 点。值得注意的是,端点 4、8 能配置为每帧 512 B,而端点 2、6 却能配置为 每帧 512 B 或 1 024 B,并可配置为 2、3、4 级,这样 EP2 或 EP6 最大能配置 为

5、4 kB 的缓存。 其在内部的传输控制是通过 full(满)和 empty(空)两个控制信号来完成的, 当 full 为真时不能再写数据,当 empty 为真时不能再对 FIFO 进行读,其内部 数据传输示意图如图 3 所示。 如图 3 所示,USB 执行 OUT 传输,将 EP2 端点设成 512 B 四重 FIFO。在 USB 端和外部接门端都并不知道有四重 FIFO。USB 端只要有 1 个 FIFO 为“半满 “,就可以继续发送数据。当操作的 FIFO 写“满“时,FX2 自动将其转换到外部 接口端,排队等候读取;并将 USB 接口队列中下一个为“空“的 FIFO 转移到 USB 接口

6、上,供其继续写数据。外部接门端与此类似,只要有 1 个 FIFO 为“半满“, 就可以继续读取数据。当前操作的 FIFO 读“空“时,FX2 自动将其转换到 USB 接 口端,排队等候写入;并将外部接口队列中下一个为“满“的 FIFO 转移到外部接 口上,供其继续读取。1.1.2 Fx2 接口方式 FX2 有 Slave FIFO 和 GPIF 两种接口方式。 Slave FIFO 是从机方式,即 FX 的 CPU 不直接参与 USB 数据处理,而是简 单地把 FX 作为 USB 和外部数据处理逻辑(如 ASIC、DSP 和 IDE(串行接口引擎) 控制器)之间的通道,数据流并不经过 CPU,

7、而是通过 FX 的 FIFO 直接传输。 FIFO 通过外部主机控制,同时,FIFO 提供所需的时序信号、握手信号(满、空 等)和输出使能等。 可编程接口 GPIF 是主机方式,GPIF 作为内部主机控制端点 FIFO,其 core 是一个可编程状态机,可以生成多达 6 个控制输出信号和 9 个地址输出信号, 能外接 6 个外部 Ready 输入信号和 2 个内部 Ready 输入信号。通过用户自定义 的波形描述符来控制状态机,使用软件编程读写控制波形,几乎可以对任何 8/16 hit 接口的控制器、存储器和总线进行数据的主动读写,非常灵活。2 2 接口的接口的 VerilogVerilog

8、HDLHDL 编程实现编程实现 在本设计巾采用 Slave FIFO 从机方式实现 FPGA 对 FX 的控制,通过 Verilog HDL 编程实现。FPGA 可以根据实际情况选定。我们在设计时选用 Xilinx 公司的 Virtex-设备(XC2V10004FG456C)。 2.1 异步 FIFO 读数据 FX 读数据也就是数据从 FX 传到 FPGA 的过程,其过程如下: a)反复检测控制线状态,当读事件发生时,即控制线 con_out_z=0 和 RD_disk=10 时,转到 b; b)分配 FIFOADR1:0=00,这时 FIFO 指针会指向输出端点,表明使用端 点 EP2; c

9、)检查 FIFO 是否空,当 empy=1 时表示 FIFO 不空,转到状态 d,否则保持 在状态 C; d)赋值 SLOE=0,使双向数据线 FD 在输出状态,采样 FD 数据线上的数据, 并在 SLRD 的上升沿使 FIFO 指针门动加 1,跳转到 e; e)假如有更多的数据需要读,转到状态 b,否则转到状态 a。 对读数据编程如下:用 Mentor 软件 Modelsim 进行仿真验证,其仿真波形如图 4 所示。在此过程中, SLRD 信号特别重要,在 SLRD 的下降沿把 FlFO 中的数据放到 FD 数据线上;在 SLRD 的上升沿把 FIFO 指针加 1,并指向下一个单元。2.2

10、异步 FIFO 写数据向 FIFO 写数据是读数据的逆过程,也就是把 FPGA 数据写入 FX 的 FIFO, 其编程过程如下: a)查询控制信号线 con_out_z 和 WR_disk,看是否有读事件发生,如果有, 就转移到状态 b,否则保持在状态 a; b)分配 FIFOAFR1:0=10,FIFO 指针指向输入端点,转向状态 c; c)检查 FIFO 的满标志是否为 1,假如 fuIl=1,表示 FIFO 不满,转到状态 d,否则保持在状态 c; d)把外部数据 indata 放在 FD 上,同时把 SLWR 拉高,以使得 FIFO 指针自 动加 1,然后转到状态 e; e)假如有更多

11、的数据要传输,转到状态 b,否则转到状态 a。 其程序与写 FIFO 数据时一样,只是在生成 SLWR 信号时,需要注意控制信 号之间的保持延时时间约束,这可以通过仿真结果进行适当修改。读数据信号仿真波形如图 5 所示。但必须注意的是,在 SLWR 的下降沿把 indata 数据线上的数据放到 FD 数据线上;在 SLWR 的上降沿把 FD 数据线上的 数据放人 FIFO,并同时使 FIFO 指针加 1,指向下一个缓存单元。3 3 结束语结束语 现在 USB2.O 控制器 CY7C68013 已经应用到许多数据传输领域,由于此芯片 灵活的接口和可编程特性简化了外部硬件的设计,提高了系统可靠性,也利于 PCB(印制电路板)的制作与调试。本设计可扩展性好,因此可用于需要处理大容 量的数据采集系统中。本设计已经用于对 IDE 硬盘的读写控制中,实现了对 IDE 硬盘的快速读写。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号