FPGA engineering process usually involves the following stages:

  1. Architecture design. This stage involves analysis of the project requirements, problem decomposition and functional simulation (if applicable). The output of this stage is a document which describes the future device architecture, structural blocks, their functions and interfaces.
  2. HDL design entry. The device is described in a formal hardware description language (HDL). The most common HDLs are VHDL and Verilog.
  3. Test environment design. This stage involves writing of test environments and behavioral models (when applicable). They are later used to ensure that the HDL description of a device is correct.
  4. Behavioral simulation. This is an important stage that checks HDL correctness by comparing outputs of the HDL model and the behavioral model (being put in the same conditions).
  5. Synthesis. This stage involves conversion of an HDL description to a so-called netlist which is basically a formally written digital circuit schematic. Synthesis is performed by a special software called synthesizer. For an HDL code that is correctly written and simulated, synthesis shouldn't be any problem. However, synthesis can reveal some problems and potential errors that can't be found using behavioral simulation, so, an FPGA engineer should pay attention to warnings produced by the synthesizer.
  6. Implementation. A synthesizer-generated netlist is mapped onto particular device's internal structure. The main phase of the implementation stage is place and route or layout, which allocates FPGA resources (such as logic cells and connection wires). Then these configuration data are written to a special file by a program called bitstream generator.
  7. Timing analysis. During the timing analysis special software checks whether the implemented design satisfies timing constraints (such as clock frequency) specified by the user.

最新文章

  1. jedisLock—redis分布式锁实现
  2. 2013 duilib入门简明教程 -- 总结 (20)
  3. usb驱动开发12之设备生命线
  4. elasticsearch 口水篇(5)es分布式集群初探
  5. jQuery的事件委托实例分析
  6. SourceInsight 精确导入Linux kernel源码的方法
  7. JS之事件(一)
  8. java nio管道
  9. Spring各jar包的作用(转载)
  10. [置顶] gridview中嵌套gridview(并实现子gridview的数据绑定),页面传值,加密,数据绑定
  11. 用Delphi进行word开发
  12. java之设计模式工厂三兄弟之抽象工厂模式
  13. 20164305 徐广皓 Exp4 恶意代码分析
  14. [Swift]LeetCode385. 迷你语法分析器 | Mini Parser
  15. 第二阶段第五次spring会议
  16. vue组件推荐
  17. Win10 下 hadoop3.0.0 单机部署
  18. python笔记3-输出输入、字符串格式化
  19. 微软Power BI 每月功能更新系列——4月Power BI 新功能学习
  20. 安装SQL Server 2008,一直要求重启电脑的解决办法

热门文章

  1. python中*号用法总结
  2. 织梦DEDECMS系统中文章内容为空 用SQL语句如何删除?
  3. 搭建ss总结
  4. Django之ORM的增删改查
  5. java jar打包命令使用
  6. 魔兽争霸RPG游戏-军团战争-游戏经验总结
  7. SpringBoot项目maven 打包时跳过测试
  8. android自己定义圆盘时钟
  9. Python Tkinter 基础控件学习
  10. nodejs简介