- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华为_FPGA设计流程指南.doc
FPGA设计流程指南
前言
本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是:
在于规范整个设计流程,实现开发的合理性、一致性、高效性。
形成风格良好和完整的文档。
实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。
便于新员工快速掌握本部门FPGA的设计流程。
由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为 modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。
目 录
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
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 bench) 7
3.2 使用预编译库 7
4. 逻辑综合 8
4.1 逻辑综合的一些原则 8
4.1.1 关于LeonardoSpectrum 8
4.1.1 大规模设计的综合 8
4.1.3 必须重视工具产生的警告信息 8
4.2 调用模块的黑盒子(Black box)方法 8
参考 10
修订纪录 10
1. 基于HDL的FPGA设计流程概述
1.1 设计流程图
说明:
逻辑仿真器主要指modelsim,Verilog-XL等。
逻辑综合器主要指LeonardoSpectrum、Synplify、FPGA Express/FPGA Compiler等。
FPGA厂家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等。
1.2 关键步骤的实现
1.2.1 功能仿真
说明:
“调用模块的行为仿真模型”指的是RTL代码中引用的由厂家提供的宏模块/IP,如Altera 提供的LPM库中的乘法器、存储器等部件的行为模型。
1.2.2 逻辑综合
说明:
“调用模块的黑盒子接口”的导入,是由于RTL代码调用了一些外部模块,而这些外部模块不能被综合或无需综合,但逻辑综合器需要其接口的定义来检查逻辑并保留这些模块的接口。
1.2.3 前仿真
说明:
一般来说,对FPGA设计这一步可以跳过不做,但可用于debug综合有无问题。
1.2.4 布局布线
1.2.5 后仿真(时序仿真)
2. Verilog HDL设计
基于将来设计转向ASIC的方便,本部门的设计统一采用Verilog HDL,但针对混合设计和混合仿真的趋势,所有开发人员也应能读懂VHDL。
Verilog HDL的学习可参考[1][2]。
2.1 编程风格(Coding Style)要求
2.1.1 文件
每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同。
每个设计文件开头应包含如下注释内容:
年份及公司名称。
作者。
文件名。
所属项目。
顶层模块。
模块名称及其描述。
修改纪录。
请参考标准示例程序[3]。
2.1.2 大小写
如无特别需要,模块名和信号名一律采用小写字母。
为醒目起见,常数(`define定义)/参数(parameter定义)采用大写字母。
2.1.3 标识符
标识符采用传统C语言的命名方法,即在单词之间以“_”分开,如:max_delay、data_size等等。
采用有意义的、能反映对象特征、作用和性质的单词命名标识符,以增强程序的可读性。
为避免标识符过于冗长,对较长单词的应当采用适当的缩写形式,如用‘buff’代替‘buffer’,‘ena’代替‘enable’,‘addr’代替‘address’等。
2.1.4 参数化设计
为了源代码的可读性和可移植性起见,不要在程序中直接写特定数值,尽可能采用`define语句或paramater语句定义常数或参数。
2.1.5 空行和空格
适当地在代码的不同部分中插入空行,避免因程序拥挤不利阅读。
在表达式中插入空格,避免代码拥挤,包括:
赋值符号两边要有空格;
双目运算符两边要有空格;
单目运算符和操作数之间可没有空格,
示例如下:
a =
您可能关注的文档
最近下载
- 下肢静脉曲张小讲课课件.ppt VIP
- 项目管理知识要点测试试卷及答案.doc VIP
- 云电子胶片及报告系统软件产品技术要求参考版.docx VIP
- 《FDA清洁验证指南》中英文对照.pdf VIP
- 大坝巡视检查记录(日).pdf VIP
- (高清版)DB51∕T 2825-2021 放心舒心消费服务规范 第1部分:家装行业.pdf VIP
- Unit 2 Home Sweet Home单元词汇及语法培优练习题-人教版英语八年级上册.pdf VIP
- 光伏发电工程建设管理浅谈ppt.docx VIP
- 初中信息技术学科培养学生计算思维的策略探究.docx VIP
- 三级安全教育交底三级安全教育交底.doc VIP
文档评论(0)