http://blog.163.com/zhaojun_xf/blog/static/300505802009217274715/ 2009 http://blog./zhaolei24/79616/post.aspx Xilinx,Altera,Lattice是可编程器件的主要三个生产厂家。最近领导安排叫我学习Altera的FPGA,以前主要接触的Xilinx的东西多一些。所以一上手感觉生疏,特别是QuartusII软件。 Quartus II是Altera公司新一代的FPGA/CPLD开发环境。前一代Max+plusII开发环境Altera公司已经不再提供新的版本。所以今后学习还是应用尽可能使用Quartus II。以前Max+plusII的工程文件也可以导入QuartusII中。熟悉MaxplusII的也可以将QuartusII的界面转换成MaxplusII。 一. 基础知识 1. FPGA/CPLD的区别与联系
表1-1 2. 逻辑电路概念 ① 组合逻辑 电路的输出信号只与该时刻的输入信号有关,而与电路原来所处的状态无关。 ② 时序逻辑 任何一个时刻的输出状态不仅取决于当时的输入信号,还与电路的原状态有关。 时序电路的特点是具有记忆元件(最常见的是触发器),具有反馈通道。包括各类触发器、寄存器、各类计数器和顺序脉冲发生器,各类存储器。 二. Quartus II安装破解 这里以Quartus II 5.1为例。Quartus II对PC机硬件要求较高,尽可能采用高配置的PC机。安装一路next就可以了。主要是破解,一般的配套光盘都有license文件,但需要自己修改HOSTID,也就是你的网卡的物理地址,介绍一下流程。 1.安装完毕Quartus II后,将sys_cpy.dll文件复制copy到C:\altera\quartus50\bin,将原来的文件覆盖。 2.在C盘新建文件夹flexlm,将光盘中的license.dat 拷贝到c:\flexlm中。同时将只读属性去掉。 3.打开“开始”->运行 输入cmd 进入dos模式。然后输入ipconfig /all 然后记下physical address,也就是hostid。 4.将c:\flexlm\license.dat打开 将HOSTID=后面的id改为你的physical address(去掉中间的-号)保存即可。 5.打开Quartus II,选择最下面的选项,进入注册界面,选择c:\flexlm\license.dat就可以。 三. maxplusII工程转换 打开file->Convert Max+plus II Project 命令将MaxplusII配置文件(.acf)转换为QuartusII工程,并自动为新转化的工程建立配置文件和相关的一些设置。 四. QuartusII文件后缀名及一些时序参数 1.Quartus II有很多文件,涉及到很多后缀名。这个表格只列举部分,以及文件代表的含义。见表3-1
表3-1 2.FPGA/CPLD设计涉及几个时序参数。可以在Quartus的时序分析器(timer analyzer)功能里看到这些参数,时序分析器可以帮助用户分析设计中所有的逻辑性能,并协助引导fitter满足设计中的时序分析要求。参数见表3-2
表3-2
五. 硬件描述语言的学习与比较
表6-1 选择VHDL还是Verilog HDL?这是一个初学者最常见的问题。其实两种语言的差别并不大,它们的描述能力也类似。掌握其中一种语言以后,可以通过短期的学习,较快的学会另外一种语言。选择何种语言主要还是看周围的人群的使用习惯,这样便于日后的学习和交流。当然,如果是集成电路(ASIC)设计人员,则必须首先掌握Verilog HDL,因为在IC设计领域,90%以上的公司都是采用Verilog HDL进行IC设计的。对于FPGA/CPLD设计者而言,两种语言可以自由选择。 学习HDL语言的时候有以下几点提示 1. 了解HDL的可综合性问题。HDL有两种用途:系统仿真和硬件实现。如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的程序是用于硬件实现,那么我们就必须保证程序的可综合(程序的功能可以用硬件电路实现)。我们应该牢记一点:所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。 2. 用硬件电路设计的思想来编写HDL。学好HDL的关键是充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,不能用纯软件的设计思路来编写硬件描述语言。 3. 语法掌握贵在精,不在多。30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,程序移植或者更换平台的时,容易产生兼容性问题,也不利于他人阅读和修改。 4. HDL语言与原理图输入法的关系。HDL和传统原理图输入法的关系就好比高级语言与汇编语言的关系。HDL语言可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好、效率高、比较直观,但设计大规模CPLD/FPGA时显得繁琐,移植性差,在真正CPLD/FPGA设计中,通常建议采用原理图和HDL相结合的方法来设计。 六. 程序下载与配置 1. Quartus II支持ByteBlaster MV,ByteBlaster II 两种常见的并口JTAG电缆。也支持USB接口的USB Blaster。ByteBlaser II和USB Blaster可以对串行配置器件编程。这几种下载线在Win2000下都需要安装驱动。驱动程序在Quartus安装目录下的drivers下。 2. FPGA的配置和编程方式 配置,又称加载或下载,是对FPGA的内容进行编程的一个过程。每次上电后需要进行配置是基于SRAM工艺FPGA的一个特点,也可以说是一个缺点。 ① FPGA 主动(Active)方式 在FPGA主动方式下,有目标FPGA来主动输出控制和同步信号(包括配置时钟)给Altera专用的配置芯片(EPCS1和EPCS4等)在配置芯片收到命令后,就把配置数据发给FPGA,完成配置过程。 Altera的FPGA所支持的主动方式,只能够与Altera公司提供的主动串行配置芯片(EPCS系列)配合使用,因此Altera公司将这种方式称为主动串行AS(Active Serial)模式。AS模式只有在Stratix II系列和Cyclone系列的器件中支持。 ② FPGA 被动(Passive)方式 在被动模式下,由系统中的其他设备发起并控制配置过程,这些设备可以是Altera的配置芯片(EPC系列),或者是单板上的微处理器、CPLD等设备。FPGA在配置过程中完全处于被动地位,只是输出一些状态信号来配合配置过程。 被动模式具体细分下来,有许多种模式,包括被动串行PS(Passive Serial),快速被动并行FPP(Fast Passive Parallel) 、被动并行同步PPS(Passive Parallel Synchronous)、被动并行异步PPA(Passive Parallel Asynchronous)、已经被动串行异步PSA(Passive Serial Asynchronous)。 PS(被动串行):所有的Altera的FPGA都支持这种配置方式。可以由Altera的下载电缆、Altera的增强型配置器件(EPC4,EPC8和EPC16)和配置器件(EPC1441,EPC1,EPC2)或者智能主机来配置。在做PS配置时,FPGA配置数据从存储器中读出,写入到FPGA的DATAa0接口上。这些存储器可以是Altera配置器件或者单板机上的其他flash器件。 被动方式的其他几种模式的介绍参考《Altera FPGA/CPLD设计 基础篇》的第6章。 ③ JTAG方式 Altera FPGA基本都可以支持由JTAG命令来配置FPGA的方式,而且FPGA配置方式比其他任何一种配置方式的优先级都高。JTAG配置方式支持菊花链方式,级联多片FPGA。 3. 配置芯片 Altera FPGA的配置芯片可以分为3种 ① 增强型配置器件:EPC16、EPC8、EPC4; 可以支持对大容量FPGA的单片配置,可以由JTAG接口进行在系统编程(ISP),而且支持FPP快速配置方式。 ② AS串行配置器件:EPCS64、EPCS16、EPCS4和EPCS1 专门为Stratix II、Cyclone II和Cyclone器件设计的单片、低成本的配置芯片。AS芯片可以由下载电缆或其他设备进行重复编程。 ③ 普通配置器件:EPC2、EPC1和EPC1441。 容量相对较小,其中只有EPC2可以重复编程。要支持大容量FPGA的配置,可以将多片级联起来。
七. 参考书籍及开发试验工具 1. 《基于Quartus II的FPGA/CPLD设计》 2. 《Altera FPGA/CPLD设计(基础篇)》 3. 《FPGA/CPLD最新实用技术指南》 4. Altera公司MaxII,Cyclone系列数据手册 5. 某公司试验箱 八. 归纳总结 Altera的Quartus II开发环境感觉比XILINX的ISE开发环境要复杂一些,功能方面要多一下。学习起来不是很轻松。要全面掌握其功能需要花费不少时间,也需要在实战中不断摸索学习。 |
|