浅谈基于 FPGA 的电路设计报告人:吴爱平
2005/11/13
参考资料参考资料 VHDL 电路设计技术 国防工业出版社 CPLD 系统设计技术入门与应用 电子工业出版社 基于 FPGA 的嵌入式系统设计 西电出版 Altera FPGA/CPLD 设计 ( 基础篇 ) EDA 先锋工作室 网站: WWW.PLD.COM.CN
WWW.EDACN.NET
WWW.ALTERA.COM
浅谈基于浅谈基于 FPGAFPGA 的电路设计的电路设计
FPGA 概述设计过程
注意事项
温馨提示温馨提示
如果你打算 5 年成为高手,你可能 2-3 年就可以达到;
如果你打算 1 年成为高手,你可能 5 年达不到。
--- 梁肇新
汇报结束,敬请批评指正!
FPGAFPGA 概述概述
可编程器件发展历程及现状内部结构及实现原理
开发平台
硬件开发语言
可编程逻辑器件的发展历程
70 年代 80 年代 90 年代
PR
OM
和 PLA
器件
改进的 P
LA
器件
GA
L
器件
FP
GA
器件
EP
LD
器件
CP
LD
器件
内嵌复杂功能模块的 SoPC
2000 年
PLDPLD 发展历程及现状发展历程及现状
FPGA( Field Programmable Gates Array)
CPLD ( Complex Programmable Logic
Device)
三大公司三大公司
全球最主要的可编程逻辑器件厂商Altera
Xilinx
Lattice
2005 年第 1 季度( 1 ~ 3 月)结算 公司名称
销售额 每股净盈亏 (美元)
(美元) 与上年同期相比
GAAP (含相当)
Pro Forma
Xilinx, Inc. 3 亿 9100
万 -3 % 0.19 —
Altera Corp. 2 亿 6480
万 + 9 % 0.17 —
Lattice Semiconductor Corp.
5130 万 -13 % -0.10 -0.06
Actel Corp. 4400 万 + 4 % 0.06 0.08
QuickLogic Corp. 1250 万 + 21 % 0.03 0.03
主要 PLD/FPGA 厂商 2005 年一季度销售额和盈利状况表
ALTERAALTERA 公司器件简介公司器件简介早期器件: FLEX10 K LC84 TC144 BC356
FLEX10KA TC100 BC356
ACEX1K 1K10 1K30 1K50
MAX7000 EPM7128
主流器件: MAX II EPM240 570 1270
Cyclone EP1C3 4 6 12 20
Stratix EP1S10 20 25 30
下一代器件: CycloneII EP2C5 8 20 35 50 70
Stratix II EP2S15 30 60 90 130
XiLinxXiLinx 公司器件简介公司器件简介早期器件: XC3000 XC4000 XC9500
XC9536, XC9572, XC95144
主流器件: XC9500XL XC9536XL,72XL
Spartan 3/3L XC3S50,200,400
Virtex II XC2V40,80,250
下一代器件: Spartan 3E XC3S100E,250E
Virtex-4 LX 4VLX15,25,40,60
SX 4VSX25,35,55
FX 4VFX12
LatticeLattice 公司器件简介公司器件简介
早期器件: isp1000/2000/5000/8000
ispLSI1016,1024,1032,1048
主流器件: ispMACH4000 V/B/Z
ispMACH4032V,64V,128V,256V
ispMACH4032B,64B,128B,256B
ispMACH4032Z,64Z,128Z,256Z
Lattice EC/ECP
EC1,EC3,EC6/ECP6,EC15/ECP15
代理商代理商ALTERA 公司 骏龙 (Cytech) 艾睿 (Arrow)
时代益华 (Achieva) 富昌 (Future) 文晔(Wintech)
XiLinx 公司 盈丰 ( Insight )和安富利( AVNET )Lattice 公司 金龙电子 威建实业 彦阳科技
输入
缓冲
电路
与
阵列
或
阵
列
输出
缓冲电路
输
入
输
出… …
基本 PLD 器件的原理结构图
内部结构及实现原理内部结构及实现原理
兰 色:逻辑阵列块 红色:连线资源 黄色:输入输出块
内部结构及实现原理内部结构及实现原理
(基于乘积项 Product-Term)
(基于查找表 Look-Up-Table)
基于乘积项基于乘积项
基于查找表基于查找表
传统传统 CPLD/FPGACPLD/FPGA 的区别的区别 结构不同 工艺不同 集成度 掉电情况 配置电路 Tpd 时间 POR 时间
主要开发平台主要开发平台 Altera 公司 MAX PLUS II
QUARTUS II
开发工具 Xilinx 公司 Foundation
ISE
Lattice 公司 ispLEVER
ispDesignEXPERNT
第三方工具第三方工具 ModleSim
Active HDL
Synplify/ Synplify Pro
Debussy
IP Core
SOPC Builder
DSP Builder
硬件开发语言硬件开发语言
ABEL
AHDL
Verilog
VHDL
systemC 和 Handle-C
ABELABEL 这是一种早期的硬件描述语言。支持逻辑电路的多种表达形式,其中包括逻辑方程,真值表和状态图。 ABEL 语言从早期可编程逻辑器件( PLD )的设计中发展而来ABEL-HDL 被广泛用于各种可编程逻辑器件的逻辑功能设计。 如GAL 、 LatticeispEXPERT,Xilinx的 FOUNDATION 和 WEBPACK等 EDA软件中。从长远来看, ABEL-HDL 只会在较小的范围内继续存在。
AHDLAHDL
ALTERA 公司发明的 HDL, 特点是非常易学易用,学过高级语言的人可以在很短的时间(如几周)内掌握 AHDL。
缺点 :移植性不好,通常只用于ALTERA自己的开发系统。
VerilogVerilog Verilog HDL 就是在应用最广泛的 C 语言的基础上发 展起来 的 一 种 件 描 述 语 言 。 1990 年CADENCE 公司公开发表了 Verilog HDL,并成立LVI组织以促进 Verilog HDL 成为 IEEE标准,即IEEE Standard 1364-1995。
特点: 1、语法自由 2、国内资料相对较少 3、 IC 设计中, 90% 的公司使用 4、可以利用 EDA 工具进行逻辑综合和优化
VHDLVHDL 全 称 : Very-High-Speed Integrated Circuit HardwareDescription Language
诞生于 1982年。 1987年底, VHDL被 IEEE 和美国国防部确认为标准硬件描述语言 。 有 IEEE-1076 和 IEEE标准的 1076-1993版本。 特点:
1、发展较早,语法严格 2、可以利用 EDA 工具进行逻辑综合和优化 3、 VHDL 丰富的仿真语句和库函数
开发设计开发设计软件设计
下载板(线)的制作硬件设计 用户板的制作
软件设计流程软件设计流程
设计输入 逻辑综合 布局布线 下载调试
约束文件
功能仿真
时序仿真
STEP1 :建立 工作库文件夹
STEP2 :输入设计项目VHDL 文本代码
STEP3 :存盘,注意 文本取名
STEP4 :将设计项目设置成 Project
STEP5 :选择目标器件
STEP11: 硬件测试
STEP9 :引脚锁定并编译
STEP8 :仿真测 试和波形分析
STEP7 :建立仿真波形文件
STEP6:启动编译
STEP10 :编程 下载 / 配置
VHDLVHDL 文本输入设计流程文本输入设计流程
Step1 建立工作库文件夹 为设计全加器新建一个文
件夹作工作库
文件夹名取为My_prjct
注意,不可用中文!
Step2 编辑输入并保存 VHDL 源文件
新建一个设计文件
使用文本输入方法设计,必须选择
打开文本编辑器
Step3 在文本编辑窗中输入 VHDL 文件及存盘
建立文本编辑器对话框文本编辑窗
用键盘输入设计文件:多路选择器
存盘文件名必须取为: mux21a.vhd
注意,要存在自己建立的
文件夹中
文件存盘后,关键词将改变颜色!否则文
件名一定有错!
Step4 将当前设计设定为工程
首先点击这里然后选择此项,将当前的原理图设计文件设置成
工程
最后注意此路径指向的改变
注意,此路径指向当前的工程!
首先选择这里
器件系列选择窗,选择 ACEX1K
系列
根据实验板上的目标器件型号选
择,如选 EP1K30
注意,首先消去这里的勾,以便使所有速度级别的器件都能显示
出来
Step5 选目标器件
选择编译器
编译窗
Step6 编译及纠错
选择 VHDL 文本编译版本号和排错
选择此项
选择 VHDL1993 项
选择此项
消去这里的勾
编译出错!
确定设计文件中的错误
打开错误提示窗
错误所在
错误所在
改正错误
完成编译!
首先选择此项,为仿真测试新
建一个文件
Step7 建立波形文件
选择波形编辑器文件
从 SNF 文件中输入设计文件
的信号节点
点击“ LIST”
SNF 文件中的信号节点
用此键选择左窗中需要的信号
进入 右窗最后点击“ OK”
消去这里的勾,以便方便设置
输入电平
在 Options菜单中消去网格对齐 Snap to Grid 的选择 (消去对勾 )
选择 END TIME调整仿真时间
区域。选择 65微秒比较合适
用此键改变仿真区域坐标到合适
位置。
点击‘ 1’ ,使拖黑的电平为高电平
先点击‘ b’ ,将其点为黑色
然后先点击此处将弹出时钟周期
设置窗
设置输入信号‘ b’的周期为 800ns
设置输入信号‘ a’的周期为 2us
仿真波形文件存盘!
选择仿真器
运行仿真器
Step8 时序仿真
mux21a仿真波形
选择引脚锁定选项
引脚窗
Step9 引脚锁定及再编译
此处输入信号名
此处输入引脚名
按键“ADD”即可
注意引脚属性错误引脚名将无正确属性!
再编译一次,将引脚信息
进去
选择编程器,准备将设计好的半加器
文件下载到目器件中去
编程窗
Step10 编程下载 / 配置
在编程窗打开的情况下选择下载方式设置
选择此项下载方式
下载(配置)成功!
下载配置模式下载配置模式
下载板电路图下载板电路图
下载板电路图下载板电路图
用户板的制作用户板的制作
选择配置模式FPGA芯片库的制作FPGA外围电路的制作
设计中注意事项设计中注意事项
软件设计
硬件设计
软件设计注意点软件设计注意点合理规划设计实体 进程中 敏感信号的选取避免使用 latch
双向电路的输出控制 多看 RTL 门级电路 多用逻辑锁定 多用同步电路,少用异步电路 多用全局时钟,少用门控时钟
B
C D
A
硬件设计注意点硬件设计注意点 下载配置方式的选取供电电压 VCCINT VCCIO
电源的滤波 Pin to pin 兼容原则空闲 I/O 的处理 时钟的走线 输出调试信号 器件选取
命名方法命名方法系列符号 器件类型 封装类型 工作温度 引脚数 速度等级EPF 10K10 TQFP C( 0, 70 ) 84 -1
EPM 7128 PQFP I ( -45, 85 ) 144 -2
EPC 1, 2 CQFP M( -55, 125 ) 208 -3
EP1C 3, 4 BGA 240 -4
EP1S 10, 20 PLCC 356
EP2C 5, 8 PDIP
EP2S 15, 30
详情参阅: www.altera.com
选型指南选型指南
逻辑单元I/O个数驱动能力工作环境
特殊要求特殊要求
PLL
DSP 模块RAM 大小内置 FLASH 大小自适应逻辑模块