我正在参加「掘金·启航计划」!
写在前面
- 本篇主要介绍一些FPGA设计的一些基本知识,包括软核、固核、硬核和设计流程的简介,希望读者能通过本篇有所收获。笔者才疏学浅,本篇如有缺点和疏漏在所难免,恳请广大读者批评指正。
- 该专栏下篇文章将通过二选一多路选择器向大家简要介绍Verilog编写语法,希望大家多多关注。
软核、固核和硬核的概念及其重用
- 软核(Soft Core):功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog HDL模型。
- 固核(Firm Core):把在某一种现场可编程门阵列(FPGA)器件上实现的、经验证是正确的、总门数在5000门以上电路结构编码文件称为“固核”。
- 硬核(Hard Core):把在某一种专用集成电路工艺的(ASIC)器件上实现的、经验证是正确的、总门数在5000门以上的电路结构版图掩膜称为“硬核”。
| 标题 | 软核 | 固核 | 硬核 |
|---|---|---|---|
| 特点 | 灵活性强 | 灵活性较差 | 灵活性较差 |
| 重用性 | 较强 | 较差 | 较差 |
虚拟器件:由软核构成的器件称为虚拟器件,在新电路的研制过程中,软核和虚拟器件可以很容易地借助EDA综合工具与其他外部逻辑结合为一体。这样,软核和虚拟器件的重用性就可大大缩短设计周期,加快了复杂电路的设计。
Verilog HDL设计流程简介
自顶向下(Top_Down)的设计流程简介
自顶向下的设计(即Top_Down设计)是从系统级开始,把系统划分为基本单位,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的基本元件来实现为止。
对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进行方案的总体论证、功能描述、任务和指标的分配、随着系统变得复杂和庞大,特别需要在样机问世之前,对产品的全貌有一定的预见性。目前,EDA技术的发展使得设计师有可能实现真正的自顶向下的设计。
层次管理的基本概念
- 复杂数字逻辑电路和系统的层次化、结构化设计隐含着对系统硬件设计方案的逐次分解。在设计过程中的任意层次,至少得有一种形式来描述硬件、硬件的描述特别是行为描述通常称为行为建模。
- 在集成电路设计的每一层次,硬件可以分为一些模块,该层次的硬件结构由这些模块的互联描述,该层次的硬件的行为由这些模块的行为描述。而该层次的基本单元又由下一层次的基本单元互联而成。
- 接上图,在这个设计树上,节点对应着该层次上基本单元的行为描述,树枝对应着基本单元的结构分解。
- 在不同的层次都可以进行仿真以对设计思想进行验证。EDA工具提供了有效的手段来管理错综复杂的层次,即可以很方便地查看某一层次某模块的源代码或电路图以改正仿真时发现的错误。
具体模块的设计编译和仿真的过程
模块设计流程主要由两大主要功能部分组成:
- 设计开发:从编写设计文件 -> 综合到布局布线 -> 电路生成一系列步骤。
- 设计验证:进行各种仿真的一系列步骤,如果在仿真过程中发现问题就返回设计输入进行修改。