FPGA design flow
2024-10-01 17:02:58
FPGA engineering process usually involves the following stages:
- 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.
- HDL design entry. The device is described in a formal hardware description language (HDL). The most common HDLs are VHDL and Verilog.
- 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.
- 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).
- 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.
- 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.
- Timing analysis. During the timing analysis special software checks whether the implemented design satisfies timing constraints (such as clock frequency) specified by the user.
最新文章
- jedisLock—redis分布式锁实现
- 2013 duilib入门简明教程 -- 总结 (20)
- usb驱动开发12之设备生命线
- elasticsearch 口水篇(5)es分布式集群初探
- jQuery的事件委托实例分析
- SourceInsight 精确导入Linux kernel源码的方法
- JS之事件(一)
- java nio管道
- Spring各jar包的作用(转载)
- [置顶] gridview中嵌套gridview(并实现子gridview的数据绑定),页面传值,加密,数据绑定
- 用Delphi进行word开发
- java之设计模式工厂三兄弟之抽象工厂模式
- 20164305 徐广皓 Exp4 恶意代码分析
- [Swift]LeetCode385. 迷你语法分析器 | Mini Parser
- 第二阶段第五次spring会议
- vue组件推荐
- Win10 下 hadoop3.0.0 单机部署
- python笔记3-输出输入、字符串格式化
- 微软Power BI 每月功能更新系列——4月Power BI 新功能学习
- 安装SQL Server 2008,一直要求重启电脑的解决办法