FPGA是现场可编程门阵列(Field Programmable GateArray)[幂J缩写12”,它是一种可 以编程的数字集成电路IC(Integrated Circuit)[28】,它包含了可配置的逻辑块以及逻辑 块之间的互连线。所谓的现场可编程是指设计人员可以通过在工作现场(如实验室、调 试现场等)完成对这些逻辑块和连线的配置,以实现或改变复杂的电子系统的功能。为 了对FPGA有一个较全面的认识,列出其典型内部结构示图,如图4.1所示:
图4-1典型FPGA的内部结构
Fig.4—1 The Interior Structure of The Type FPGA
FPGA的内部包含3个主要的部分:逻辑单元(逻辑块)。芯片连线资源和输入/输 出块。输入/输出块在芯片外围形成一个环,每一个输入/输出块都能独立选择FPGA芯 片封装管脚,并将它们定义为输入管脚、输出管脚或双向管脚。FPGA内部的逻辑单元 可以是简单的CPLD宏单元129。,也可以是大而复杂的宏块。FPGA的逻辑单元通常只是 一对逻辑l'-J/查询表和一个触发器,但CPLD的一个逻辑单元包含了多个宏块,这是它 们的主要区别,CPLD也可以实现算法【301,但是通过上面的比较,不难看出FPGA才最 适合该课题的研究。
24
第四章K均值聚类算法的硬件平台的设计与实现
4.1.1有限状态机
在这篇设计中考虑使用有限状态机来设计系统的控制部件【311,控制部件是一个系统 的重中之重,相当于人的大脑,指挥数据的流向,存储数据到指定的寄存器中,对提取 执行相应的处理,比如加减,乘除等等,并将数据存储,有限状态机是一个有限循环的 过程。
在数字电路系统中,利用有限状态机原理实现的核心控制模块在本文是十分重要的 时序逻辑电路模块,它对数字系统的设计具有十分重要的作用【32J。
有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来 说,除了输入部分和输出这两部分外,有限状态机还含有一组具有“记忆”功能的寄存器
【331,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有 限状态机中,状态寄存器的下一个状态不仅与输入信号有关,而且还与该寄存器的当前 状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄 存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出 逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定 有限状态机的输出。
在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore 型有限状态机和Mealy型有限状态机两种类型【34】。1、Moore型有限状态机其输出信号 仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。2、Mealy 型有限状态机其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可 以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数,如图4.2所示 为有限状态机实例图。
图4-2 Moore有限状态机实例
Fig.4-2MooreFSM
有限状态机是时序电路的通用模型【35】,任何时序电路都可以表示为有限状态机。有 限状态机从本质上讲是由寄存器与组合逻辑构成的时序电路【361,各个状态之间的转移问 题总是在时钟的触发下进行的。通常可使用带有always语句的case语句建模,状态信 息存储在寄存器中,case语句的多个分支包含每个状态的行为【371。
4.1.2硬件描述语言Vetilog HDL
一个算法可以在不同的抽象层次上进行描述,也可以从不同的观点(行为/结构/物 理)进行描述,如图所示,在图中有3个轴,每个轴分别代表着一个域,三个轴分别代 表的三个域分别是行为域、结构域和物理/几何设计域。在每个域中,又可以在不同的抽 象层次描述一个算法,在图中这些抽象层次在各自不同的轴上被表示成点。行为域说明 一个特定的系统完成什么功能,结构域说明不同的实体之间是如何连接的,物理域则说
明如何构造出一个实际的器件。
结构域 行为域 物理域
图4—3流程图
Fig.4-3 Flow Chart
从图4.3可以看出,可以在五个层次上描述一个算法以及系统,它们分别是:系统 级、算法级、RTL(RegisterTransferLevel,寄存器传输)级、逻辑级和电路级,其中系 统级的抽象层次最高,而电路级的抽象层次最低。抽象层次越高,所包含信息就越少,
抽象层次越低,所包含的细节就越多。例如,假设要完成一个10位的加法器,在系统 级只要说明设计完成的功能和相关的约束,而不必关心加法器的实现方式,如行波加法 器或快速进位加法器,也没有必要关心为了达到相应的速度,采用了几级流水线,或关 心为了节约资源而采用的实现方式,图4.4为系统层次图。
第四章K均值聚类算法的硬件平台的设计与实现