您好,欢迎来到99网。
搜索
您的当前位置:首页华为fpga设计流程指南

华为fpga设计流程指南

来源:99网


 

 

 

 

 

 

FPGA设计流程指南

 

 

前言

本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是:

  • 在于规范整个设计流程,实现开发的合理性、一致性、高效性。
  • 形成风格良好和完整的文档。
  • 实现在FPGA不同厂家之间以及从FPGAASIC的顺利移植。
  • 便于新员工快速掌握本部门FPGA的设计流程。

 

 

由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为 modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。

V

1. 基于HDLFPGA设计流程概述1

1.1 设计流程图1

1.2 关键步骤的实现2

1.2.1 功能仿真2

1.2.2 逻辑综合2

1.2.3 前仿真3

1.2.4 布局布线3

1.2.5 后仿真(时序仿真)4

2. Verilog HDL设计4

2.1 编程风格(Coding Style)要求4

2.1.1 文件4

2.1.2 大小写5

2.1.3 标识符5

2.1.4 参数化设计5

2.1.5 空行和空格5

2.1.6 对齐和缩进5

2.1.7 注释5

2.1.8 参考C语言的资料5

2.1.9 可视化设计方法6

2.2 可综合设计6

2.3 设计目录6

3. 逻辑仿真6

3.1 测试程序(test bench7

3.2 使用预编译库7

4. 逻辑综合8

4.1 逻辑综合的一些原则8

4.1.1 关于LeonardoSpectrum8

4.1.1 大规模设计的综合8

4.1.3 必须重视工具产生的警告信息8

4.2 调用模块的黑盒子(Black box)方法8

参考10

修订纪录10

 

 

 

 

1. 基于HDLFPGA设计流程概述

1.1 设计流程图

 

1)设计定义

 

 

2HDL实现

 

 

 

3)功能仿真

逻辑仿真器

 

 

4)逻辑综合

逻辑综合器

 

 

 

5)前仿真

逻辑仿真器

 

 

6)布局布线

FPGA厂家工具

 

 

 

7)后仿真

逻辑仿真器

8)静态时序分析

 

 

 

9)在系统测试

 

 

 

 

说明:

  • 逻辑仿真器主要指modelsimVerilog-XL等。
  • 逻辑综合器主要指LeonardoSpectrumSynplifyFPGA Express/FPGA Compiler等。
  • FPGA厂家工具指的是如AlteraMax+PlusIIQuartusIIXilinxFoundationAllianceISE4.1等。

 

 

1.2 关键步骤的实现

1.2.1 功能仿真

 

 

RTL代码

 

测试数据

 

 

测试程序

test bench

 

调用模块的

行为仿真模型

 

 

 

 

 

 

逻辑仿真器

 

 

 

说明:

调用模块的行为仿真模型指的是RTL代码中引用的由厂家提供的宏模块/IP,如Altera 提供的LPM库中的乘法器、存储器等部件的行为模型。

 

1.2.2 逻辑综合

 

RTL代码

设置综合目标和约束条件

 

调用模块的

黑盒子接口

 

 

 

 

 

 

 

逻辑综合器

 

 

 

EDIF网表

netlist

 

HDL网表

netlist

 

 

 

 

 

说明:

调用模块的黑盒子接口的导入,是由于RTL代码调用了一些外部模块,而这些外部模块不能被综合或无需综合,但逻辑综合器需要其接口的定义来检查逻辑并保留这些模块的接口。

 

 

1.2.3 前仿真

 

 

 

 

 

 

 

 

 

逻辑综合器

 

HDL网表

netlist

逻辑仿真器

 

测试数据

 

 

调用模块的

行为仿真模型

 

测试程序

test bench

 

 

 

说明:

一般来说,对FPGA设计这一步可以跳过不做,但可用于debug综合有无问题。

 

1.2.4 布局布线

 

逻辑综合器

 

 

EDIF网表

netlist

FPGA厂家工具

 

调用模块的

综合模型

设置布局布线约束条件

 

 

 

 

 

 

 

 

 

 

 

HDL网表

netlist

 

下载/编程文件

 

SDF文件

(标准延时格式)

 

 

 

 

 

 

 

1.2.5 后仿真(时序仿真)

 

测试数据

 

 

 

 

 

 

 

FPGA基本单元仿真模型

FPGA厂家工具

 

HDL网表

netlist

 

SDF文件

(标准延时格式)

 

测试程序

test bench

 

 

 

 

 

 

 

 

 

2. Verilog HDL设计

基于将来设计转向ASIC的方便,本部门的设计统一采用Verilog HDL,但针对混合设计和混合仿真的趋势,所有开发人员也应能读懂VHDL

Verilog HDL的学习可参考[1][2]

2.1 编程风格(Coding Style)要求

2.1.1 文件

  1. 每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同。
  2. 每个设计文件开头应包含如下注释内容:
    • 年份及公司名称。
    • 作者。
    • 文件名。
    • 所属项目。
    • 顶层模块。
    • 模块名称及其描述。
    • 修改纪录。

请参考标准示例程序[3]

2.1.2 大小写

  1. 如无特别需要,模块名和信号名一律采用小写字母。
  2. 为醒目起见,常数(`define定义)/参数(parameter定义)采用大写字母。

2.1.3 标识符

  1. 标识符采用传统C语言的命名方法,即在单词之间以“_”

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务