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)

各阶段要点:

  1. RTL仿真:验证逻辑模型与数据流(不含时序延)
  2. 综合:翻译成器件原语,优化面积和性能
  3. 布局布线:设计原语定位到器件,设定互联资源
  4. 时序仿真:验证性能;静态时序分析
  5. 板级测试: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 三大组成

  1. 封装视图:图形化芯片封装,进行I/O分配
  2. 所有引脚列表:Filter筛选,直接编辑设置
  3. 分组列表:总线分组分配

I/O 规划流程(无设计文件时)

  1. 创建输入输出分配(引脚名、I/O标准、电流驱动强度、PCI支持、片上端接)
  2. 添加I/O相关megafunction(PLL/SERDES/DDR IP)并分配
  3. 运行 I/O Assignment Analysis 验证
  4. 导出顶层HDL文件作为设计工程基础

引脚分配策略

  • 最先放置最紧要的引脚(差分引脚、双倍率引脚)
  • 分配到 I/O block 或区域,让布局工具选确切位置
  • Pin Migration View:比较移植前后器件引脚差异

编程与配置

器件选项

  • Device-wide clear / output enable
  • 未使用管脚状态设置
  • 双功能引脚配置
  • Error detection CRC:使能内部CRC电路

编程文件格式

格式说明
SOFSRAM object file(FPGA配置)
POFprogramming object file(配置器件)
Jam / JBCJEDEC stapl / JAM byte-code
RBFraw binary file
HEXOUTIntel hex format

编程硬件

  • USB-Blaster、ByteBlaster II/MV、Masterblaster、APU(Altera编程单元)

编程模式

模式适用
JTAG可由Altera和非Altera设备组成链
Passive Serial仅Altera器件
Active SerialAltera串行配置器件
In-socket通过APU编程CPLD和配置器件

编程器操作

  • Chain Description File (.CDF) 存储编程链信息
  • 自动检测编程链中的器件
  • Program/Configure、Verify、Blank-Check、Examine、Erase
  • Security Bit 和 ISP Clamp 选项

关联笔记