FPGA 的开发系统一般都支持多种设计方法,如原理图设计或HDL语言设计等。在系统仿真环境中使用HDL(硬件描述语言)描述以及语言描述和原理图输入的混合方式。设计者可以选择不同的设计方法[4]。
FPGA器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:可编程逻辑块CLB(Configurable Logic Blocks)、可编程I/O模块IOB(Input/Output Block)和可编程内部连线 PI(Programmable Interconnect) [5]。如图1-1所示,IOB位于芯片内部四周,在内部逻辑阵列与外部芯片封装引脚之间提供一个可编程接口,每个IOB主要由逻辑门、触发器和控制单元组成。CLB组成了FPGA的核心阵列,用于构造用户指定的逻辑功能,每个CLB主要由函数发生器、触发器、数据选择器和控制单元组成。PI位于芯片内部的CLB之间,经编程后形成连线网络,提供CLB之间以及CLB与IOB之间的连线,用于传递信息。以上三类可编程单元电路的状态均由配置存储器阵列中的数据控制。
FPGA的配置存储器是一种静态随机存储器SRAM(static random access memory)。可配置逻辑模块CLB、可编程输入输出模块IOB的内部连接方式以及可编程内部连线PI的连线信息都是由SRAM存储单元中的配置数据决定,配置数据由FPGA开发系统根据用户设计要求生成。
配置存储器的每个单元存储一个0、1配置数据,用于控制一个编程选择。图1-2给出FPGA配置存储器的存储单元结构。它是由两个CMOS反相器和一个用于读写控制的MOS传输开关组成。在配置时进行读写操作,在对己配置的芯片作验证时进行读操作、通常MOS传输开关是关闭的,两个CMOS反相器构成的触发器处于保持状态,以保持存储的数据不易丢失。
因为SRAM存储的数据在掉电时会全部丢失,所以在每次用户系统加电开始工作之前,必须重新将配置数据加载到FPGA的SRAM之中。通常配置数据可存放于外围的非易失性存储器(如PROM、EPROM)中,在系统开机时,在FPGA内部电路控制下,自动将其载入SRAM中。FPGA中SRAM存储的配置数据控制了FPGA中的可编程资源,也就决定了FPGA芯片所具有的逻辑功能,因此,只要改变SRAM存储的配置数据,就能使FPGA芯片更改逻辑功能,FPGA的设计可以在厂家提供的开发系统中快速有效地完成,并可以反复进行,由于这一过程可以在用户的系统板上进行,所以也被称之为在系统重构技术。
1.4.2 VHDL语言
美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD实现其功能。
VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。应用VHDL进行工程设计的优点是多方面的,主要有行为描述能力强,对底层描述有相对独立性以及本身的生命周期长等诸多优点[6]。但是,对于学生实验的开发,VHDL的独到之处还在于:
1.VHDL丰富的仿真语句和库函数,使得在任何系统的设计初期,就能查验设计
系统的功能可行性,随时可对设计进行仿真模拟。并且,库函数将底层门级器件加以封装,在设计时不用从零开始,许多基本功能部件如触发器等可以直接从库中调用。
2.VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。再加上开发工具 Quartus II对VHDL的良好支持,对硬件的开发变得像拼图片或搭积木一样简单,可以将已开发出的部件存入库中,下次开发时可将它作为基本部件再次调用。 FPGA的微机原理实验系统设计(3):http://www.751com.cn/jixie/lunwen_3958.html