典型的fpga开发流程一般包括功能定义/器件选型、设计输入、功能仿真(RTL级仿真)、综合优化、综合后仿真(静态仿真)、实现(布局布线)、布线后仿真(静态时序分析及时序仿真)、板级仿真以及芯片编程与调试等主要步骤。
1,功能定义/器件选型:
在系统设计之前,首先要进行的是方案的论证、系统设计和fpga芯片的选择等准备工作。工程师要根据任务要求,比如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面的权衡,选择合适的设计方案和器件类型。一般都是采用自顶向下的设计方法,把系统分为若干个基本单元,然后把每个基本单元划分为下一层次的基本单元。
2,设计输入:
设计输入有三种形式,IP核、原理图、HDL;
-
原理图:是一种最直接的描述方式,虽然直观且易于仿真,但效率很低,不易于维护,不利于某块的构造和重用以及移植性差。
-
HDL:HDL语言具有不同的抽象层次,这些抽象层有开关机、逻辑门级、RTL级、行为级和系统级。其中前两级又叫结构级,直接反映的是结构上的特性;RTL级又可以称为功能级。
-
IP核:实现一定功能的模块叫IP。IP核按来源可以分为三类:来自前一个设计的内部创建模块;FPGA厂家;IP厂商。IP核的分类:
-
(1)软核:是用硬件描述语言描述的功能块(即RTL级模块),不涉及电路实现,通常以硬件描述语言HDL源文件的形式以及加密形式呈现。软核只经过功能仿真,需要经过综合以及布局布线后才能使用。优点:灵活性高、可移植性强、允许用户自配置。缺点是对模块的预测性较低,在后续的设计中存在发生错误的可能性。
-
(2)固核:是指带有布局布线规划的软核,通常以RTL代码核对应具体工艺网表的混合形式提供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。核软核相比,固核的设计灵活性较差,但可靠性有较大提高。
-
(3)硬核:是指布局布线和工艺固定、经过前端和后端验证的设计,通常以网表形式提供,不能修改。硬核复用困难,使用范围较窄,只能用于某些特定应用。</

最低0.47元/天 解锁文章
9460

被折叠的 条评论
为什么被折叠?



