admin 管理员组

文章数量: 887021


2024年1月26日发(作者:删除文件恢复可否按时间检索扫描)

理论与算法2018-2关于FPGA系统设计的研究与方法陶子愚(武汉纺织大学外经贸学院,湖北武汉,430073 )摘要:在现代数字系统设计中,CPLD/FPGA设计己成为该领域的主要设计方式之一。结合作者的实践经验,本文以ATA主机控

制器设计的要求为例,提出了 CPLD/FPGA设计中的基本设计思想和技巧,并且简要讲解了若千项关键技术,主要涉及面积和速

度的平衡与互换、同步电路设计、流水线操作、乒兵操作、串并转换、并串转换、数据接口同步、全局时钟、边沿检测、锁存器等相

关问题。关键词:CPLD ; FPGA ; ATA ; PIO ; Ultra DMAResearch and Skills on FPGA System DesignTao Ziyu(Wuhan Textile University Foreign Economic and trade school , Wuhan Hubei, 430073)Abstract:In the domain of advanced digital system design, CPLD/FPGA design has already become one main

method of this area. According to the author’ s practice and experience, this paper, which is based on ATA

host controller design, briefly explains several crucial technology mostly concerned with common questions,

such as area and speed, synchronous circuit, pipelining, ping-pong operation, deserializer, data interface

synchronization, global clock, edge detection, ds:

CPLD ; FPGA ; ATA ; PIO ; Ultra DMA〇引言随着集成电路设计与制造工艺水平的提高,系统设计向高速

度、低电压、低功耗发展,对电路的要求更高。为满足现代电子系

统设计的需要,可编程逻辑器件(Programmable Logic Device,

PLD)应运而生,目前己是数字系统设计的主要硬件基础。同时设

计电路的方法也由传统的依赖电路原理图的人工方法过渡到基

于计算机语言的现代设计方法。利用硬件描述语言(HDL),开发者

很容易实现复杂电路系统的设计,针对目前这方面的书籍和文章

主要讲述了硬件描述语言语法和应用范例,而关于在电路系统设

计中CPLD/FPGA设计经验和方法显得尤为重要。本文讲述了基于

ATA主机控制器设计目标的基本思想和方法。对用使,避免生成锁存器,减少后级电路的竞争冒险现象;尽量

使用全局时钟,避免产生毛刺;在主机读取硬盘数据时,使用双

边沿检测电路来接收数据。海量存储系统内部的一个ATA主机控制模块可以实现

40MB/S及以下速率并行数据的传送;当外部信源速率为80MB/

s时,可采用面积换速度、乒乓操作等技术来实现数据传输;当外

部信源为160MB/S时,流水线或并行处理等能满足设计要求。2

CPLD/FPGA设计的关键技术复杂可编程逻辑器件(Complex Programmable Logic De_

vice, CPLD)主要由宏单元(Macrocells)、可编程1/0单元、可

编程内部连线等部分组成。现场可编程门阵列(Field Program­mable Gate Array, FPGA) 内部结构包含逻辑单元阵列、内部

连线、输入输出单元等。CPLD与FPGA集成度较高,属于高密度

PLD。两者功能基本相同、设计流程相似且使用EDA软件的设计方

法也没太大区别,只是实现原理略有不同。但CPLD由于触发器有

限乘积项多,更适合组合逻辑设计,而FPGA触发器资源丰富,更

适用于时序逻辑设计。另外,FPGA比CPLD的集成度高,更适合

复杂系统设计。在系统设计时,根据所选器件型号充分发挥其性

能,故在大多数情况下,二者并未加以区分。根据经验总结主要涉

及到CPLD/FPGA开发设计的基本方法、常用模块等关键技术。1

ATA接口主机控制器设计ATA接口广泛用于高速数据存储,能实现数据连续实时

记录。外挂一个硬盘的海量存储系统实现在Altera公司Cy-

clonell系列EP2C35F672C8芯片内共消耗2904个LE和2410

个寄存器资源,综合后最高时钟频率为114. 97HMz。在成功设计

出的海量存储系统中,系统主时钟80MHz,它是通过采用外部

40MHz晶振经过芯片EP2C35F672C8内部的锁相环(PLL)进行2

倍频来实现的,ATA主机控制器模块采用PI0模式4和Ultra

DMA模式5进行工作,实现了 UDMA数据突发速率80MB/s和持续

速率40MB/S传输。ATA主机控制器和USB主机控制器模块相连,

能与PC机通信。当外部信源为8位宽的并行数据时,采用串并转

换和异步FIFO实现与硬盘16位并行数据兼容及数据同步;整

个ATA硬盘控制器采用状态机设计,为使系统工作稳定,采用了

异步复位方式。在编写Verilog HDL代码时,if和else语句配2.1同步电路设计规则在FPGA设计中,异步时序电路易产生毛刺,而同步电路易于

控制寄存器的异步复位/置位端,可避免受温度、电压、工艺的影

响,易于消除电路的毛刺,设计可靠稳定,及有利于组织流水线提

高系统工作频率等优点。根据实际经验,总结出以下同步电路设I 36甲孑测ii!

2018.2计规则。(1) 系统采用统一时钟在系统设计中,尽量采用一个主时钟,同时使用同一个时钟

沿。在FPGA设计中,避免使用多时钟网络。在各个模块设计中,推

荐所有输入、输出端口均采用寄存器连接,即寄存器当异步接口

考虑。(2) 模块采用统一时钟当电路系统不能用同步电路实现时,可分割成若干个局部同

步电路,一个模块尽量采用同一时钟。各个局部同步电路接口当

作异步接口处理。(3 )系统实际工作频率小于理论最高频率

系统实际最高工作频率不应大于理论最高频率,留有足够的

设计余量,保证芯片可靠稳定工作。电路设计中寄存器、状态机等

在复位时应处于已知状态。(4) 延时采用电路逻辑实现同步电路延时采用电路逻辑来实现,对于较大和特定要求的

延时,一般用高速时钟产生一个计数器,根椐计数值来控制延时;

对于较小的延时常用D触发器来实现信号同步。(5) 尽量避免外设信号在系统设计中,考虑到电路板上元器件焊接、走线等因素,应

避免检测或判断芯片引脚所分配的外设信号,否则,易造成系统

不稳定。如在状态机设计中,若检测外部管脚信号时经常出现状

态不跳转。因此需要严格的控制时序。2_2澈燃技术和乒兵操作

2.2.1前后率匹配流水线是高速设计中常用的技巧,具体指数据处理流程和顺

序操作的设计思想,把处理流程分为多个步骤,数据是单向的,没

有反馈或迭代运算。前级输出是后级输入,并且数据速率相匹配。

为达到流水线设计于前后级数据速率匹配的目的,须对各个步骤

数据流量进行分析。若前后级操作时间相等,前级的输出直接汇

入后级输入;若快于后级操作,则须通过串并转换、逻辑复制等

手段将数据分流,或者对前级数据先存储后处理方式来让数据流

量匹配;若慢于后级操作,则需前级数据进行缓存,然后汇入后

级输入,并要注意速率匹配。2.2.2用乒兵操作实现高速数据存储乒乓操作常用于数据流控制处理,其数据流程描述:输入数

据流通过输入数据选择单元,等时分配到两个数据缓冲区,然后

经过输出数据流选择单元,按节拍轮流相互切换连续不断地把数

据送到数据流处理模块。其优点是实现连续数据操作,有利于组

织流水线处理、节约缓冲区空间,还可达到低速模块处理高速数

据的目的。例如:当外部信源持续速率80MB/S时,由于一个硬盘

的连续存储速率最高为40MB/S,故可采用两个硬盘通过乒乓操

作来实现存储,其数据写入通道结构框图。2.3串并转换与并串转换串并转换和并串转换,两者过程相反,但所用逻辑资源基本相

同,可采用寄存器、RAM等实现。对于排序规则的转换,可用case

语句或if语句来实现;而较复杂的转换可使用状态机来解决。SIMM理论与算法2.4数据接口同步数据接口同步通常采用请求应答的握手机制或同步指示信

号,也可使用RAM或FIFO等来实现。对于高速系统设计,添加时

序约束的方法有利于提高工作频率和进行系统分析。2.5异步复位与同步复位信号电路系统设计中,一般都需要硬件复位电路。硬件复位分为

异步复位和同步复位两种,异步复位可靠性强,而同步复位有时

会出现不定状态。根据器件特性,综合布线工具对异步复位和同

步复位的实现往往不同,并且对系统最高工作频率有影响。为保

证系统工作稳定性,一般仍采用异步复位方式。2.6全局日柳当组合逻辑函数钟空触发器时,常会存在门控时钟,其最大

缺点是容易产生毛刺,使电路误操作。一般采用全局时钟来替代

门控时钟,或使用寄存器使能端,在不增加资源的情况下,只要满

足建立时间要求,就可避免毛刺。门控时钟也能稳定工作,但满足

两个条件:一是驱动时钟的逻辑必须只包含一个与门或一个或

门。若采用任何附加逻辑,则在某些情况下工作会出现由竞争产

生的毛刺;二是逻辑电路的一个输入作为实际时钟,其他所有的

输入必须当作地址或控制线,并且遵守相对于时钟的建立和保持

时间约束。2.7舰沿险测在CPLD/FPGA设计中,对于双边沿信号来说,一般综合工具

都不支持,所以如何把双边沿转换成单边沿成为系统设计的关

键。在此讲解了采用时钟检测信号,出现变化即为上升沿/下降

沿。当被测信号与检测时钟相关时,可不用第一个触发器。以寄存器来划分工作模块,在电路描述中应该消除锁存器。

如果某个数据需要保存应该使用寄存器,因为锁存器在整个电平

有效期间对输入信号敏感,输入毛刺可以通过锁存器进行传播,

致使后级组合逻辑电路发生竞争冒险的可能性大大提高,影响整

个电路的性能。不适当的描述也会产生锁存器,消耗了资源。3结束语本文仅对CPLD/FPGA设计中一般规律和技巧加以介绍和分

析,并未深入讨论,其实这些经验也不是绝对的,随着微电子工艺

和EDA技术的发展,很多设计规则在不断发生变化。只有在实践

中,勤于思考,细心体会,认真总结,掌握CPLD/FPGA的设计思想

和方法,对电路系统设计大有益处。参考文献[1] Ciletti,Michael D,"Advanced Digital Design with the VerilogHDL" Upper Saddle River, NJ:Prentice Hall,2003.[2] The Programmable Logic Data Book. San Jose, CA: XilinxInc., 1994.[3] W. S. Carter, "The future of programmable logic and its impacton digital systEm design," in IEEE Int Conf. Computer Design:

VLSI in Computers and Processors, 1994, pp. 10 - 16.[4] Sutherland g 200 Kluwer,2002.371,


本文标签: 设计 数据 电路 采用 时钟