当前位置:文档之家› FPGA入门教程 ALTERA Quartus II 和 XILINX ISE CPLD入门教程 教案 VHDL Verilog 例程讲解

FPGA入门教程 ALTERA Quartus II 和 XILINX ISE CPLD入门教程 教案 VHDL Verilog 例程讲解

Verilog HDL 公开发表 Verilog IEEE1364-2001
1990
标准公开发表
2001
模拟 和 数 字都 适 用 的 Verilog 标准公开发表
1989
CADENCE 公司 购买 Verilog 版权 VerilogIEEE1364-1995 标准公开发表 Verilog-XL
1999

行为级:有关行为和技术指标模块,容易理解; RTL级 :有关逻辑执行步骤的模块,较难理解; 门级 :有关逻辑部件互相连接的模块。很难理解; 开关级:有关物理形状和布局参数的模块,非常难理 解。 注解:理解是指对模块整体功能的理解
抽象级别和综合与仿真的关系
行为仿真:行为的验证和验证模块分割的合理性; 前仿真 :即 RTL级仿真,检查有关模块逻辑执行 步骤是否正确。 逻辑综合:把RTL级模块或符合综合风格的行为模 块转换成门级 。 后仿真:用门级模型做验证,检查由门的互连构成的 逻辑其功能是否正确。 布局布线: 在门级模型的基础上加上了布线延时 布局布线后仿真:与真实的电路最接近的验证。
电路实现的两个方向: FPGA 专用集成电路
实时数字信号处理系统实现中存在 的技术难点和解决办法
用于信号处理的 FPGA 和专用集成 电路(ASIC)设计的方法: Verilog HDL 建模、仿真、综合和 全面验证。
为什么要研究复杂的数字 逻辑系统?
什么是复杂的数字逻辑系统?


数字信号处理系统的实现

非实时系统: 通用的计算机和利用通用计算机改装的设备,主要 工作量是编写 “C” 程序。输入/输出数据大多为文 本 。 实时系统: 信号处理专用的微处理器为核心的设备,主要工作 量是编写汇编程序。输入/输出数据大多为数据流, 直接用于控制 。

实时数字信号 处理系统实现中存在的技术难点
设计数字系统的基本方法
传统的:线路图 现代的:硬件描述语言
怎样设计如此复杂的系统?

传统的设计方法: - 查用器件手册;
- 选用合适的微处理器和电路芯片;
- 设计面包板和线路板;
- 调试;
- 定型; - 设计复杂的系统(几十万门以上)极其困难。
怎样设计如此复杂的系统?

现代的设计方法: - 选用合适的 EDA仿真工具; - 选用合适电路图输入和HDL编辑工具; - 逐个编写可综合HDL模块; - 逐个编写HDL测试模块; - 逐个做Verilog HDL 电路逻辑访真; - 编写Verilog HDL总测试模块; - 做系统电路逻辑总仿真;
FPGA的用途

可以毫不夸张的讲,FPGA能完成任何数字器件的功能, 上至高性能CPU,下至简单的74电路,都可以用FPGA来实 现。 FPGA如同一张白纸或是一堆积木,工程师可以通过 传统的原理图输入法,或是硬件描述语言自由的设计一个 数字系统。通过软件仿真,我们可以事先验证设计的正确 性。在PCB完成以后,还可以利用FPGA/CPLD的在线修 改能力,随时修改设计而不必改动硬件电路。 使用FPGA 来开发数字电路,可以大大缩短设计时间,减少PCB面积 ,提高系统的可靠性。 FPGA还可以做数字IC设计的前端 验证,用这种方式可以很大程度上降低IC设计的成本。 FPGA的这些优点使得FPGA技术在90年代以后得到飞速的 发展,同时也大大推动了EDA软件和硬件描述语言(HDL )的进步。
没问题
优 化 、布 局 布 线
布 线 后 门 级 仿 真
有问题
没问题
电路制造工艺文件 或 FPGA码流文件
为什么要用硬件描述语言来设计?



电路的逻辑功能容易理解; 便于计算机对逻辑进行分析处理; 把逻辑设计与具体电路的实现分成两个独立 的阶段来操作; 逻辑设计与实现的工艺无关; 逻辑设计的资源积累可以重复利用; 可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。
FPGA工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一 个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线 (Interconnect)三个部分。 现场可编程门阵列(FPGA)是可 编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD 器件)相比,FPGA具有不同的结构,FPGA利用小型查找表 (16×1RAM)来实现组合逻辑,每个查找表连接到一个D触 发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O, 由此构成了即可实现组合逻辑功能又可实现时序逻辑功能 的基本逻辑单元模块,这些模块间利用金属连线互相连接 或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单 元加载编程数据来实现的,存储在存储器单元中的值决定 了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联 接方式,并最终决定了FPGA所能实现的功能, FPGA允许无 限次的编程
7
复杂数字系统与信号处理 的关系
-- 接口逻辑 + 专门设计的高速计算逻辑
数字信号处理、计算、程序 算法和硬线逻辑的基本概念



数字信号处理 计算(Computing) 算法和数据结构 编程语言和程序 体系结构 硬线逻辑
数字信号处理的基本概念

现代电子系统设备中广泛使用了数字信号处理 专 用集成电路。 用于数字信号传输中所必需的滤波、变换、加密、 解密、编码、解码、纠检错、压缩、解压缩等操作。 处理工作从本质上说都是数学运算。 完全可以用计算机或微处理器来完成处理工作。
1)
2)
算法问题。 电路实现问题: 如果由最快的信号处理专用的微处理器为核心的 设备也来不及处理如此大量的数据怎么办呢?
实时数字信号处理系统实现中存在的技 术难点和解决办法
1)
2)
算法问题:研究并行快速算法。 电路实现问题:设计并研制具有并行结 构的数字和计算逻辑结构和相应的接 口逻辑。
实时数字信号处理系统实现中存在 的技术难点和解决办法
设计复杂数字系统的工具 和手段
两种硬件描述语言 : Verilog VHDL
有哪几种硬件描述语言? 各有什么特点?

Verilog HDL - 较多的第三方工具的支持 - 语法结构比VHDL简单 - 学习起来比VHDL容易 - 仿真工具比较好使 - 测试激励模块容易编写
Verilog HDL 的发展历史
Verilog HDL 的抽象级别
语言本身提供了各种层次抽象的表述,可以用详细 程度有很大差别的的多层次模块组合来描述一个 电路系统。 行为级:技术指标和算法的Verilog描述 RTL级:逻辑功能的Verilog描述 门级 :逻辑结构的Verilog描述 开关级:具体的晶体管物理器件的描述
Verilog HDL 的抽象级别
两者建模能力的比较
行为级 的抽象
系统级
SystemVerilo g
算法级
VHDL Verilog
寄存器传输级
逻辑门级 VITAL
开关电路级
VerilogHDL 与 VHDL 建 模 能 力 的 比 较
Verilog HDL有什么用处?
在各种抽象层次上描述数字电路
测试各种层次数字电路的行为 设计出正确有效的复杂电路结构
Verilog HDL 的应用方面




ASIC 和FPGA设计师可用它来编写可综合的代码 。 描述系统的结构,做高层次的仿真。 验证工程师编写各种层次的测试模块对具体电路 设计工程师所设计的模块进行全面细致的验证。 库模型的设计:可以用于描述ASIC 和FPGA的基 本单元(Cell)部件,也可以描述复杂的宏单元( Macro Cell)。
计算(Computing)的基本概念
“Computing 这门学问研究怎样系统地有步骤地描述 和转换信息,实质上它是一门覆盖了多个知识和技 术范畴的学问,其中包括了计算的理论、分析、设计 、效率和应用。它提出的最基本的问题是什么样的工 作能自动完成,什么样的不能。”(摘自Denning et al., “Computing as a Discipline,” Communication of ACM, January,1989)。
模块B
模块C
模块A1
模块A2
模块A3
模块B1
模块B2
模块C1
模块C2
模块C3
用EDA设计数字系统的流程
电 路 图 设 计 文 件 HDL 设 计 文 件
有问题
电路功能仿真
HDL功能仿真Leabharlann 有问题没问题 没问题
与 实 现 逻 辑 的 物 理 器 件 有 关 的 工 艺 技 术 文 件 HDL综合 确定实现电路 的具体库名
1995
1980’s
诞生
有关 VerilogHDL 的全部权利都移交给
1990
OVI(Open Verilog International)
图 2-2 Verilog HDL 的发展历史和未来
有哪几种硬件描述语言? 各有什么特点?

VHDL - 比VerilogHDL早几年成为I EEE标准; - 语法/结构比较严格,因而编写出的 模块风格比较清晰; - 比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。
FPGA主要生产厂商



1、 Xilinx 2、 Altera 3、Actel 4、Lattice 5、atmel
xilinx和altera的区别



从好用来说,肯定是Xilinx的好用,不过Altera的便宜他们 的特点,Xilinx的短线资源非常丰富,这样在实现的时 候,布线的成功率很高,尤其是逻辑做得比较满的时候 Altera的FPGA的短线资源经常不够用,经常要占用LE 来充当布线资源(这也是为什么Altera的FPGA可以便 宜的原因,资源少些当然便宜),但是如果你是高手,也 能把他的性能发挥得很好。 另外就是关于块RAM,Xilinx的双口RAM是真的,altera 的没有双口RAM,如果你要实现真正的双口RAM,只 能用两块RAM来背靠背地实现,这样你的RAM资源就 少了一半,如果你的应用对片内双口RAM的需求很重 要,用Altera的就划不来。
相关主题