FPGA培训资料-Quartus-II设计基础
---
title: "FPGA培训资料-Quartus-II设计基础"
source: "/日常学习资料/FPGA培训资料/培训讲义/1.2.quartus ii 设计基础.pdf"
original_path: "/日常学习资料/FPGA培训资料/培训讲义/1.2.quartus ii 设计基础.pdf"
author: "FPGA培训资料"
date: "2012-07"
size: "5.72 MB"
pages: 97
status: done
method: PDF文本提取
---核心内容
Altera Quartus II 开发工具的基础培训材料,覆盖工程创建、设计入口、编译流程、增量编译、物理综合、I/O布局(Pin Planner)和编程配置的完整工作流。
Quartus II 设计环境
完整集成设计环境
- 设计入口(HDL/原理图/第三方网表)
- 逻辑综合、布局布线
- 模拟、时序和功耗分析
- 器件编程
- MegaWizard 与 SOPC Builder 设计工具
- TimeQuest 时序分析、PowerPlay 功耗分析
- 增量编译模式、调试支持
- 支持 32/64-bit Windows、Solaris、Linux
界面组成
- Project Navigator(工程导航)
- Status window(状态窗口)
- Message window(消息窗口)
- Compilation Report(编译报告)
设计方法与流程
设计规范 → 设计入口(RTL编程) → RTL仿真(功能仿真) → 综合 → 布局布线 → 门级仿真(时序仿真) → 板级仿真与测试(SignalTap II)
各阶段要点:
- RTL仿真:验证逻辑模型与数据流(不含时序延)
- 综合:翻译成器件原语,优化面积和性能
- 布局布线:设计原语定位到器件,设定互联资源
- 时序仿真:验证性能;静态时序分析
- 板级测试:SignalTap II 逻辑分析仪
Quartus II 工程
工程概念
- 一系列设计文件和库的集合
- 必须有指定的顶层实体
- 只能针对一块芯片
- 设置存储在 .QSF 文件(Quartus II Settings File)
创建工程(New Project Wizard)
- 顶层实体名不必与文件名相同
- 支持的文件类型:
- Graphic (.BDF, .GDF)
- AHDL (.tdf)
- VHDL (.vhd)
- Verilog (.v)
- EDIF (.edf)
- 用户库:MegaCore/AMPP 库、预编译 VHDL 包
- TCL 脚本方式:
project_new <project_name>、set_global_assignment –name VERILOG_FILE <file>
设计入口
文本编辑
- VHDL:支持 IEEE Std 1076 (1987 & 1993)、synthesis packages (1997)
- Verilog:支持 IEEE Std 1364 (1995 & 2001) & 1800 (SystemVerilog)
- AHDL:Altera 硬件描述语言,用于 megafunctions(布尔算术、真值表、条件语句)
原理图编辑
- 用途:创建简单测试设计、创建顶层便于查看连线
- 不推荐使用:容易出错、不易排查、重用性差
内存编辑器
- HEX / MIF 格式:上电初始化内存块、仿真初始化
Megafunctions(预制设计模块)
免费版(随软件安装):
- Altera-specific(ALT开头):ALTMULT_ACCUM(乘加)、ALTSYNCRAM(片上RAM/ROM)、ALTPLL、ALTMEMPHY(DDR/QDR接口)
- LPM(参数化模块库):LPM_COUNTER、LPM_COMPARE 等工业标准模块
IP版(需License):
- MegaCore IP:Altera开发(三速Ethernet MAC、FIR编译器、FFT、DDR2控制器、CRC、PCI编译器)
- AMPP IP:第三方开发、Altera认证
- OpenCore Plus 特性:可免费仿真评估
MegaWizard Plug-In Manager
三步配置流程:选模块 → 定制选项 → 生成文件(HDL wrapper、实例化模板、symbol等)
编译流程
全编译步骤
Analysis & Elaboration(检查语法、建立数据库)
→ Analysis & Synthesis(综合并优化代码)
→ Fitter(布局布线、生成输出网表)
→ Assembler(生成编程文件 .sof/.pof)
→ TimeQuest(时序分析)
→ EDA Netlist Writer(生成门级仿真文件 .vho/.vo)
增量编译(Incremental Compilation)
- 用户设定设计分块,每块单独处理,结果合并
- 复用模块网表(旧工程或其他工程导入)
- 优势:减少编译时间、保留编译结果和时序表现、更快时序逼近
- 只有改变了的逻辑部分被重新综合/布局布线
物理综合(Physical Synthesis)
由布局布线结果进行重新综合,提高性能:
- 组合逻辑优化:交换LUT端口提高关键路径性能
- 异步信号流水:为异步清零/高速时钟域添加pipeline寄存器
- 寄存器重复:高扇出寄存器重复以降低延时
设置与资源分配
两种控制方法
- 设置(Settings对话框):工程级(器件选择、综合优化、布局布线、物理综合)
- 资源分配(Assignment Editor):单一实体/节点级
编译速度/适配努力度
| 模式 | 特点 |
|---|---|
| Standard fit | 最高努力度,编译时间最长 |
| Fast Fit | 快速编译,性能可能降低 |
| Auto fit | 达到时序后停止编译(新设计默认) |
Assignment Editor 要点
- 分配前至少要执行 Analysis & Elaboration 获得层次与节点信息
- 可从剪贴板拷贝粘贴
- Node Finder:通配符(?/*)搜索、按类型过滤
优化技术选项
- 速度 / 平衡(默认)/ 面积
- 仅对继承实体有效
- Tcl:
set_instance_assignment –name STRATIXII_OPTIMIZATION_TECHNIQUE SPEED –to <node>
I/O 布局(Pin Planner)
背景与挑战
- I/O标准多样增加设计复杂度
- PCB设计可能需要与FPGA设计同时甚至更早进行
- 管脚分配需要在设计早期确定
Pin Planner 三大组成
- 封装视图:图形化芯片封装,进行I/O分配
- 所有引脚列表:Filter筛选,直接编辑设置
- 分组列表:总线分组分配
I/O 规划流程(无设计文件时)
- 创建输入输出分配(引脚名、I/O标准、电流驱动强度、PCI支持、片上端接)
- 添加I/O相关megafunction(PLL/SERDES/DDR IP)并分配
- 运行 I/O Assignment Analysis 验证
- 导出顶层HDL文件作为设计工程基础
引脚分配策略
- 最先放置最紧要的引脚(差分引脚、双倍率引脚)
- 分配到 I/O block 或区域,让布局工具选确切位置
- Pin Migration View:比较移植前后器件引脚差异
编程与配置
器件选项
- Device-wide clear / output enable
- 未使用管脚状态设置
- 双功能引脚配置
- Error detection CRC:使能内部CRC电路
编程文件格式
| 格式 | 说明 |
|---|---|
| SOF | SRAM object file(FPGA配置) |
| POF | programming object file(配置器件) |
| Jam / JBC | JEDEC stapl / JAM byte-code |
| RBF | raw binary file |
| HEXOUT | Intel hex format |
编程硬件
- USB-Blaster、ByteBlaster II/MV、Masterblaster、APU(Altera编程单元)
编程模式
| 模式 | 适用 |
|---|---|
| JTAG | 可由Altera和非Altera设备组成链 |
| Passive Serial | 仅Altera器件 |
| Active Serial | Altera串行配置器件 |
| In-socket | 通过APU编程CPLD和配置器件 |
编程器操作
- Chain Description File (.CDF) 存储编程链信息
- 自动检测编程链中的器件
- Program/Configure、Verify、Blank-Check、Examine、Erase
- Security Bit 和 ISP Clamp 选项