[D-II] 使用FPGA的目的 编程配置FPGA流程(Quartus II 13.0)

整理看[《基于FPGA的嵌入式系统设计 – Altera Soc FPGA 》第二版],整理部分很可能有错误。了解FPGA概念参考:认识FPGA Verilog HDL前3段。FPGA(芯片)可被编程配置,如今的EDA为编程配置FPGA提供了许多工具,并遵循着一定的层次设计流程。


0. 总结

(1) 结合EDA对FPGA的学习

  • 所有工具的具体用法可参考Quartus II对应版本的 Handbook,结合Altera培训的excise实践。
  • FPGA的基础:电子技术基础也。
  • 若有条件结合具体的FPGA板子到官网下载FPGA的demo例子实践一把又一把。

(2) 使用FPGA的目的

Quartus II最终会生成到FPGA芯片上的FPGA的配置文件和网表等中途产生的文件。根据设计FPGA的精神,将FPGA配置文件下载到FPGA芯片上后,FPGA芯片就被配置为配置文件所代表的逻辑和功能。


从20世纪90年代末起,在可编程器件内可实现一个用户自定义的系统,这个系统通常包括微处理器(特定的微处理器如Nios II)、片内存储器及外设控制器等。用户自定义的系统经EDA软件产生FPGA配置文件及其它文件,FPGA配置文件用于下载到FPGA芯片内,使芯片被配置为用户所定义的系统的逻辑和功能。用户可以通过FPGA芯片所在开发板来测试所定义的系统是否达到原先所预计的功能。若没有达到,则可通过EDA软件对设计进行修改,生成新的FPGA文件后再重新下载到FPGA芯片内再进行验证。


用户所设计的系统在FPGA开发板上通过验证后,是用具有此系统功能的FPGA芯片还是将EDA软件中所产生网表(或其它文件)拿去给制造芯片的厂家让其加工生成所设计系统,成为新的芯片?对于个体用户来说,采用前者可以省去定制新芯片的费用,只需要将FPGA芯片在各开发板之上移来移去(如果FPGA芯片可以被多次焊接)。但如果是一个公司,需要生产具有所设计系统功能的芯片若干(如用来卖),则第一种方式就不可取:相当于买若干FPGA芯片不说,还要花功夫来编程配置FPGA芯片。所以,需要采用第二种方式,通过EDA产生网表文件,让生产芯片的厂家定制若干本公司所设计的芯片。然后就可以在所定制芯片上下点功夫,开发一个有特定用途的板子(板子的处理器芯片功能刚刚好,比买有功能裕度的芯片划算)卖给有需求的其它小公司,卖出的价格可以由成本外稍加一些劳动、技术费。


所以,现在的数字系统设计的模式可以总结为:一台计算机,一套EDA软件和一个具有可编程器件的开发板,具有这三样东西就可以开发出一个刚好符合功能需求的芯片(CPU),认识FPGA Verilog HDL中“使得数字系统的设计可以如同软件设计那样方便快捷”相呼应。那么,FPGA是用来开发微处理器的。可见,虽然没有生产FPGA芯片的厂家那么牛,但能够设计微处理器(CPU)也算是IT界的牛了。成为生产FPGA芯片及EDA软件厂家的客户。

1. 使用Quartus II EDA工具 配置FPGA的背景

(1) FPGA与数字电路部分

Figure1. FPGA位置

(2) 现代数字系统设计方法

目前,关于数字系统设计的软硬件方面的技术已经较为成熟,数字系统的设计方法称为EDA(Electronic Design Automation, 电子设计自动化)。EDA在数字方面的普及程度比较广泛,而模拟电子的EDA技术正在进入实用阶段。这就是为什么在对数字系统进行设计时会采用如Quartus II、ISE这样的EDA工具软件,进行模电电路设计时会用如AD的工具软件。


目前暴漏在书本之上、比较流行的设计方法是依据EDA技术的流程来完成 数字系统的设计 。EDA技术基于PLD硬件(如FPGA)和EDA工具(如Quartus II)采用 自顶向下 的设计方法。首先从系统设计入手,在顶层进行功能划分和结构设计,并在系统级采用仿真手段验证设计的正确性,然后逐级设计低层的结构,实现从设计、仿真到测试得一体化。


Figure2. 数字系统设计的抽象方法

2.Quartus II EDA工具设计流程

Quartus II EDA工具内部实现了现代数字设计方法中每一级所要求的功能,包含了FPGA和CPLD设计阶段的解决方案。


(1) Quartus II 编程配置FPGA的过程

Figure3. Quartus II典型设计流程

  • 设计输入:所设计的电路以开发要求的某种形式表达出来,并输入到相应的EDA软件中。
  • 功能仿真验证:电路设计完毕后,要用专用仿真工具(如ModelSim)对设计进行功能仿真,验证电路是否符合要求。
  • 逻辑综合:将设计输入翻译成由与、或、非门、RAM、触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出EDA网表文件,供FPGA厂家的布局布线。
  • 逻辑实现与布局布线:逻辑综合的本质是一些由与、或、非门、RAM、触发器等基本逻辑单元组成的逻辑网表,它与实际的配置情况还有较大差距。此时应该用FPGA厂家提供的软件工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA的芯片上。
  • 时序仿真与验证:将布局布线的延时信息反标注到设计网表中进行仿真。布局布线后生成的文件不仅包含门延时,还包含实际布线延时,故而布线后的仿真最为准确,能较好的反应芯片的实际工作情况。
  • Assembler:产生多种形式的器件编程映像文件,如FPGA芯片的配置文件。
  • 器件编程与片上调试:设计开发的最后步骤就是在线调试或者将生成的FPGA配置文件写入芯片中进行测试。示波器和逻辑分析仪是逻辑设计的主要调试工具。
  • Netlist Writer:产生用于第三方EDA工具的网表文件及其他输出文件。

每个流程只能接收图示的来自上一层的输出。对每一层的操作都可以提前对它进行操作(Assignments)。


(2) 集成在Quartus II 中的设计工具

现代的EDA软件平台已经突破早期仅能进行PCB版图设计,它集成设计、仿真、测试于一体,配备了系统设计自动化的全部工具。Quartus II软件运行用户在设计流程中的每个阶段使用Quartus II图形界面、EDA工具界面或命令行界面。


[1] Qsys

Qsys集成开发工具是对应于以上提到的系统级设计的工具。实现模块间(遵守协议设计的)的互联。之前要通过手动编码来完成各模块间的互联。


[2] 增量编译

Quartus II的编译过程包含综合、布局布线、时序分析,编程。若是很大的项目,则这个过程会编译几小时甚至是几天。面对大项目只改动一小部分时的编译耗时性,Quartus II提供了增量编译手段(小项目用增量编译反而划不算)。能用上增量编译的前提是项目的设计要为Partition Design,为实现项目的Partition Design,Quartus II也提供了多种方式,也有专门的Partition Design工具。


[3] 功能仿真工具

ModelSim是对应Figure 3中功能仿真,是对设计输入的一个简单仿真,有助于及时纠正设计输入。


[4] 时序分析工具

Quartus II 提供TimeQuest工具来分析时序。为了分析时序,我们需提前了解时序路径、时序约束、sutup、hold等与时序相关的基本概念。


[5] 调试工具

若时序分析得出的结果与设计不符,则就需要对设计进行调试。Quartus II包含的调试工具有SignalTap II, SignalProbe, Chip Planner, RTL Viewer等,不是说使用工具就代表好。


[2014.10.19-15:54]
FPGA Note Over.
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值