FPGA设计方法可以总结为一个简单的设计流程,Altera的Quartus II软件是全集成开发工具,完全支持这一设计流程。具体步骤如下。
(1)进行源文件的编辑和编译。首先需要将设计思路用文本方式或图形方式表达出来,进行排错编译,为进一步的逻辑综合做准备。常用的源程序输入方式有原理图输入方式和文本输入方式。
(2)进行逻辑综合和优化。将源文件经过一系列的 *** 作,分解成一系列的逻辑电路及对应的关系,最终获得门级电路甚至更底层的电路描述文件,即生成与FPGA/CPLD基本结构相对应的网表文件。
(3)进行目标器件的布线/适配。在选用的目标器件中建立起与网表文件符合的基本逻辑电路的对应关系。
(4)目标器件的编程下载。如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将布线/适配器产生的配置/下载文件下载电缆载入目标芯片中。
(5)硬件仿真/硬件测试。将下载好程序的FPGA放在开发板上进行测试,以验证设计思想与实际电路的偏差。
思考一下逻辑功能实现的共性,如果把这些逻辑门和寄存器组合到一个器件中会怎样?从与门到或门,从或门到寄存器有固定的连接会怎样呢?更进一步,如果有一种方法来设置输入和与门之间的连接,以确定应使用哪些输入,以及在哪里使用,又会怎样呢?
这方面的思考导致了第一款可编程阵列逻辑器件PAL的产生,如图1.5所示。
将逻辑门和输出寄存器固定为通用逻辑后,选择使用逻辑输入及其互补逻辑,就可以建立任何逻辑功能。PAL主要由图1.5中的三部分构成,多次复制这三部分就可以形成复杂PAL器件。这里显示的可编程阵列是所选择的输入,将其连接到需要的与门。在输入和进入与门的线之间进行连接,可实现线与 *** 作。与门输出构成乘积项。乘积项通过或门完成乘积和,从而产生最终函数输出。
图1.5 可编程阵列逻辑示意图
然后,将其送入寄存器进行存储或者同步。这一部分PAL通常被称为宏单元。某些PAL包括了阵列反馈选项,以实现更复杂的逻辑功能,还可以完全旁路输出寄存器,以建立异步输出。需要指出的是,在目前的大部分器件中,所有这三部分共同构成了宏单元。这就是CPLD器件的情况。
这类器件的优点非常明显。一个器件中的逻辑越多,电路板上需要的器件就越少。器件越少,意味着占用更少的电路板来实现逻辑,空出的电路板可以用于放置其他元件。更少的器件还意味着较低的总成本及功耗。逻辑功能连接不必跨过多个器件,避免了连接错误,也简化了逻辑功能的测试和调试。PAL还可以实现设计安全性。
PAL在设计上还非常灵活,设计人员采用一类器件就能够建立很多不同的设计,不用担心逻辑的可用性。这种灵活性使可编程逻辑设计实现起来更复杂,但与PAL配套产生了很多自动设计工具,它们简化了设计过程,缩短了设计时间。PAL最强的功能在于它可以支持在系统编程和重新编程,很容易修复故障或者更新设计,而不需要替换电路板元件。
早期PAL器件编程甚至当前闪存技术的关键都在于编程阵列中跨线连接所使用的特殊晶体管。这些特殊晶体管被称为浮栅晶体管,因为它们含有第二个栅极,浮在标准选择栅极和器件基底其他部分之间。两类最典型的浮栅晶体管是FAMOS(浮栅雪崩注入MOS晶体管)和FLOTOX(浮栅沟道氧化晶体管)。
如果不进行任何设置,这两类晶体管都可以用做标准n型晶体管:当电压加在栅极上时,晶体管源极和漏极之间导通。两类晶体管都可以采用相似的方法进行设置来改变这种工作方式。漏极和栅极之间加上足够的设置电压后,电子被“限制”在浮栅上,即使在所选栅极上加上标准工作电压,晶体管也不会导通。
这样,设置浮栅晶体管使之总是“关断”,这实际上是一个开关。FLOTOX晶体管还需要一个额外的选择晶体管,这是因为未设置的FLOTOX晶体管有时像p型晶体管,栅极接地时导通。选择晶体管防止了这一现象的发生。
这两类浮栅晶体管的主要不同点在于它们重新编程的方式。FAMOS晶体管需要用紫外强光迫使被俘获的电子回到基底。使用FAMOS晶体管的器件是可擦除可编程ROM,即EPROMS。简单的置反漏极-栅极编程电压就可以擦除FLOTOX晶体管。由于用电就可以擦除FLOTOX晶体管,用于实现电擦除可编程ROM,即EEPROM,它们非常适合在系统编程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)