标签:
无标签
Altera FPGA/CPLD 学习笔记
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的区别与联系
|
项目 |
FPGA |
CPLD |
备注 |
|
结构工艺 |
多为LUT加寄存器结构,实现工艺多为SRAM,也包含Flash,Anti-Fuse等工艺 |
多为乘积项,工艺多为E2CMOS,也包含EEPROM,Flash,Anti-Fuse等不同工艺 |
|
|
触发器数量 |
多 |
少 |
FPGA更适合实现时序逻辑,CPLD多用于组合逻辑 |
|
Pin to pin延时 |
不可预测 |
固定 |
对FPGA而言,时序约束和仿真非常重要 |
|
规模与逻辑复杂度 |
规模大,逻辑复杂度高,新型器件高达千万门级 |
规模小,逻辑复杂度低 |
|
|
成本与价格 |
成本高,价格高 |
成本低,价格低 |
|
|
编程与配置 |
一般包含2种,外挂BootRom和通过MCU或DSP等在线编程。多数基本属于RAM型。掉电后程序丢失 |
有两种编程方式,一种是通过编程器烧写ROM,另一种较方便的方式是通过ISP模式。一般为ROM型,掉电后程序不丢失。 |
FPGA掉电后一般将丢失原有逻辑配置,而反熔丝工艺的FPGA,如Actel的某些器件族和目前内嵌Flash或EECMOS的FPGA,如Lattice的XP器件族,可以实现非易失配置方式 |
|
保密性 |
一般保密性较差 |
好 |
一般的fpga不容易实现加密,但是目前的一些采用flash加sram工艺的新型器件(如littice的xp系列等)在内部嵌入了加载flash,能提供更高的保密性 |
|
互联结构,连线资源 |
分布式,丰富的布线资源 |
集总式,相对布线资源有限 |
Fpga布线灵活,但是时序更难规划,一般需要通过时序约束,静态时序分析,时序仿真等手段提高并验证时序性能 |
|
适用的设计类型 |
复杂的时序功能 |
简单的逻辑功能 |
|
表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
|
文件后缀名 |
描述 |
|
*.vhd |
vhdl语言文件 |
|
*.v |
verilog hdl语言文件 |
|
*.pof |
编程对象文件 |
|
*.sof |
SRAM对象文件 |
|
*.vwf |
波形仿真文件 |
|
*.bdf |
原理图文件 |
表3-1
2.FPGA/CPLD设计涉及几个时序参数。可以在Quartus的时序分析器(timer analyzer)功能里看到这些参数,时序分析器可以帮助用户分析设计中所有的逻辑性能,并协助引导fitter满足设计中的时序分析要求。参数见表3-2
|
时序设置参数 |
描述 |
|
Fmax(最大时钟频率) |
在不违反内部建立时间(tsu)时间(th)要求下可以达到的最大时钟频率 |
|
Tsu(时钟建立时间) |
在触发寄存器计时的时钟信号已经在时钟引脚建立之前,通过数据输入或使能输入进入寄存器的数据必须在输入引脚处出现的时间长度 |
|
Th(时钟保持时间) |
在触发寄存器计时的时钟信号已经在时钟引脚建立之后,通过数据输入或使能输入进入寄存器的数据必须在输入引脚处出现的时间长度 |
|
Tco(时钟到输出延时) |
时钟信号在触发寄存器的输入引脚上发生转换后,再由寄存器馈送信号的输出引脚上获得有效输出所需的时间 |
|
Tpd(引脚到引脚延时) |
输入引脚处的信号经过组合逻辑进行传输,出现在外部输出引脚上时所需的时间 |
|
最小tco |
|
|
最小tpd |
|
表3-2
五. 硬件描述语言的学习与比较
|
项目 |
VHDL |
Verilog HDL |
|
|
VHDL |
Verilog |
|
开发者 |
美国军方 |
|
|
|
|
标准 |
Ieee 1076(1987,1993) |
Ieee 1364(1995) |
|
|
|
语言基础 |
Pascal,ada |
C |