重新学习FPGA(二):数字设计的流程

目录

      数字系统的实现方式

      FPGA设计流程

参考资料


数字系统的实现方式:

1、可编程逻辑器件( PLD ),主要包括 FPGA 和 CPLD ;
2、专用集成电路(Application Specific Integrated Circuit, ASIC )。
优缺点:
ASIC实现成本高、设计周期长、但可以设计出速度高、功耗低、尽量节省面积的芯片,适 用于对性能要求很高、批量很大的芯片。
PLD器件实现周期短、投入少、风险小。

FPGA设计流程:


在这里插入图片描述

FPGA的设计流程

(1)功能定义及器件选型
  在 FPGA 设计项目开始之前,需要进行系统的功能定义和模块的划分。然后根据任务要求(系统的功能和复杂度),对工作速度和器件本身的资源、成本以及连线的可布性进行评估,从而选择合适的设计方案和器件类型。最后利用自顶向下的设计方法层层划分直到可以直接使用 EDA 元件库为止。

(2)设计输入
  设计输入是将所设计的系统或电路利用开发软件要求的某种形式表示出来,并输入给EDA工具的过程。
  目前有两种方式:硬件描述语言(HDL)与原理图输入;原理图输入虽然直接且易于仿真,但是效率极低,不易于维护,不利于模块构造与重用,可移植性较差。而利用 IEEE 的标准语言 VHDL 与 Verilog HDL 进行设计时,会发现:语言与芯片工艺无关,当自顶向下进行设计时,便于模块的划分与移植,具有很强的逻辑描述与仿真功能,输入效率极高。可用来进行算法级(Algorithm Level)、寄存器传输级(RTL)、门级(Gate Level) 等各种层次的逻辑设计,也可以进行仿真验证、时序分析等。
  FPGA 往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放在最上层,成为顶层设计;描述器件最基本功能的模块放置在最下层,称为底层设计。在顶层设计中,使用图形法表达连接关系和芯片内部逻辑到引脚的接口;在底层设计中,使用硬件描述语言描述各个模块的逻辑功能。

(3)RTL行为级仿真
  行为仿真(也称为RTL仿真)在综合之前执行。 这种快速仿真可用于无限制地检查设计的功能。 经常使用此仿真来测试代码并查找逻辑错误。
  在大部分设计中执行的第一个仿真将是RTL行为级仿真。这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。因此在设计的初期阶段不使用特殊底层元件即可以提高代码的可读性、可维护性,又可以提高仿真效率,且容易被重用。(绝大部分设计人员将这个阶段的仿真叫功能仿真!)

(4)综合优化
  综合指将高级层次的描述转化为低级层次的描述的过程。综合是指将设计输入编译成由与或阵列、RAM、触发器、寄存器等逻辑单元组成的电路结构网表,而非真实的门级电路,真实具体的门级电路需要利用 FPGA 制造商的布局布线功能,根据综合后的门级网表文件来产生,常用的综合工具有 Synplify Pro 软件以及各个 FPGA 厂家推出的综合开发工具。
  而优化则是根据用户的设计约束对速度和面积进行逻辑优化,产生一个优化的 FPGA 网表文件,以供 FPGA 布局和布线工具使用,即将电路优化于特定厂家器件库,独立于硅持性,但可以被约束条件所驱动。

(5)综合后门级功能仿真 (前仿真)
  综合过程完成后,可以使用功能仿真来验证设计的功能。 它是网表级别的仿真,忽略了与时序相关的问题。
  一般在设计流程中的第二个仿真是综合后门级功能仿真。绝大多数的综合工具除了可以输出一个标准网表文件以外,还可以输出Verilog或者VHDL网表,其中标准网表文件是用来在各个工具之间传递设计数据的,并不能用来做仿真使用,而输出的Verilog或者VHDL网表可以用来仿真,之所以叫门级仿真是因为综合工具给出的仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,所以为了进行综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置,不然仿真器并不认识其中的底层元件,无法进行仿真。Xilinx公司的集成开发环境ISE中并不支持综合后仿真,而是使用映射前门级仿真代替,对于Xilinx开发环境来说,这两个仿真之间差异很小。

(6)布局布线与实现
  布局布线(Place & Route),或者称为适配(Fitting),可以理解为将综合生成的电路逻辑网表映射到具体的目标器件中实现,并产生最终的下载文件的过程;实现是将综合生成的逻辑网表配置到具体的 FPGA 芯片上。
  该步骤由FPGA供应商提供,因为他们最了解如何将综合网表转换为 FPGA。该工具的第一步是收集用户与网表文件一起设置的所有约束。这些限制可能涉及引脚的分配和位置,有关时序的要求(例如最大延迟或时钟的输入周期)。然后,该工具通过将文件中指定的资源需求与所使用的 FPGA 上实际可用的资源进行比较,来制定实现方案。该电路被分为多个适合器件内部逻辑资源实现的逻辑小块,并根据用户的设定在速度和面积之间做出选择和折中。最后,将已分割的逻辑小块放到器件内部逻辑资源的具体位置,并使它们易于连线,称为布局;下一步是根据用户设置的约束,利用器件的布线资源完成所有逻辑块之间和 IO 块之间的连接,称为布线

(7)时序仿真 (后仿真)
  此仿真将提供了最准确的设计行为图。 它考虑了目标 FPGA 芯片以及所有逻辑块的功能,布线,延迟等等。 时序仿真需要更长的时间,并且比以前的仿真提供更多的细节。

  静态时序分析
  运行实现设计过程后,您可以使用时序分析工具对FPGA设计进行详细分析。这样可以确保将指定的时序约束正确传递给实现工具。

(8)板级仿真与验证
  板级仿真主要用于高速电路设计中,对高速系统的信号完整性,电磁干扰等特征进行完整性分析,一般都以第三方工具进行仿真与验证。

(9)配置与调试
  把适配后生成的编程文件装入 PLD 中的过程称为下载。通常对于基于 EEPROM 工艺的非易失性的 CPLD 的下载称为编程(Program),而将基于 SRAM 工艺结构的 FPGA 器件称为配置(Configuration)。内嵌的在线逻辑分析仪是FPGA主要的调试工具,他们只需要占用芯片的少量逻辑资源,实用价值很高。

参考资料:


数字系统设计与Verilog HDL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值