admin 管理员组

文章数量: 1087139


2024年4月16日发(作者:access是大型数据库吗)

FPGA设计流程与规范

前言

在大规模的逻辑设计过程中,按照标准的设计流程和代码规范来进行FPGA、CPLD的

开发是很重要的,它能够使整个开发过程实现合理性、一致性、高效性。对于一个不规范的

设计程序,若隔了比较长的时间来进行调试或修改的话,估计很多信号和模块的功能都忘了,

若做了一半时需要由别的工程师来接着做的话,估计也得重头开始整个设计了。而且,一个

不规范的设计也无法实现代码的可重用性。因此,FPGA设计流程和代码的规范化是很重要

的,鉴于此原因笔者编写了本文档,以供FPGA设计参考用。同时,本文档还对FPGA开

发过程中的一些常用技巧和需要注意的问题进行了阐述。

目 录

前言 .................................................................................................................................................. 1

1. 基于HDL的FPGA设计流程概述 ........................................................................................... 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

3. 逻辑仿真 ...................................................................................................................................... 4

3.1 测试程序(test bench) .................................................................................................... 4

3.2 使用预编译库 .................................................................................................................... 5

4. 逻辑综合 ...................................................................................................................................... 5

4.1 逻辑综合的一些原则 ........................................................................................................ 6

4.1.1 关于逻辑综合 ......................................................................................................... 6

4.1.2 大规模设计的综合 ................................................................................................. 6

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

4.2 调用模块的黑盒子方法 .................................................................................................... 6

5. VHDL语言编写规范 ................................................................................................................... 7

5.1 VHDL编码风格 ................................................................................................................. 7

5.1.1 标识符命名习惯 ..................................................................................................... 7

5.1.2 数据对象和类型 ..................................................................................................... 8

5.1.3 信号和变量 ............................................................................................................. 9

5.1.4 实体和结构体 ....................................................................................................... 10

5.1.5 语句 ....................................................................................................................... 11

5.1.6 运算符 ................................................................................................................... 14

5.1.7 函数(Function) ...................................................................................................... 14

5.1.8 过程(Procedure) .................................................................................................... 14

5.1.9 类属(generics) ....................................................................................................... 15

5.1.10 程序包(Package) ................................................................................................. 15

5.1.11 有限状态机(FSM) .............................................................................................. 15

5.1.12 注释(comments) .................................................................................................. 16

5.2 代码的模块划分 .............................................................................................................. 16

5.3 代码编写中容易出现的问题 .......................................................................................... 16

5.3.1 资源共享问题 ....................................................................................................... 16

5.3.2 组合逻辑描述的多种方式 ................................................................................... 17

5.3.3 考虑综合的执行时间 ........................................................................................... 17

5.3.4 避免使用Latch ..................................................................................................... 17

5.3.5 内部三态总线结构 ............................................................................................... 18

6. VERILOG语言编写规范 .......................................................................................................... 19

6.1 Verilog编码风格 .............................................................................................................. 19

6.1.1 命名规则 ............................................................................................................... 19


本文标签: 设计 代码 规范 流程