好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

华为FPGA设计规范.doc

16页
  • 卖家[上传人]:桔****
  • 文档编号:407777039
  • 上传时间:2023-12-04
  • 文档格式:DOC
  • 文档大小:92KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • FPGA设计流程指南前言 本部门所承当的FPGA设计任务重要是两方面的作用:系统的原型实现和ASIC的原型验证编写本流程的目的是:l 在于规范整个设计流程,实现开发的合理性、一致性、高效性l 形成风格良好和完整的文档l 实目前FPGA不同厂家之间以及从FPGA到ASIC的顺利移植l 便于新员工迅速掌握本部门FPGA的设计流程由于目前所用到的FPGA器件以Altera的为主,所如下面的例子也以Altera为例,工具组合为 modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和措施对于其她厂家和工具也是基本合用的目 录1. 基于HDL的FPGA设计流程概述 11.1 设计流程图 11.2 核心环节的实现 21.2.1 功能仿真 21.2.2 逻辑综合 21.2.3 前仿真 31.2.4 布局布线 31.2.5 后仿真(时序仿真) 42. Verilog HDL设计 42.1 编程风格(Coding Style)规定 42.1.1 文献 42.1.2 大小写 52.1.3 标记符 52.1.4 参数化设计 52.1.5 空行和空格 52.1.6 对齐和缩进 52.1.7 注释 52.1.8 参照C语言的资料 52.1.9 可视化设计措施 62.2 可综合设计 62.3 设计目录 63. 逻辑仿真 63.1 测试程序(test bench) 73.2 使用预编译库 74. 逻辑综合 84.1 逻辑综合的某些原则 84.1.1 有关LeonardoSpectrum 84.1.1 大规模设计的综合 84.1.3 必须注重工具产生的警告信息 84.2 调用模块的黑盒子(Black box)措施 8参照 10修订纪录 101. 基于HDL的FPGA设计流程概述1.1 设计流程图(1)设计定义(2)HDL实现逻辑仿真器(3)功能仿真逻辑综合器(4)逻辑综合逻辑仿真器(5)前仿真FPGA厂家工具(6)布局布线(8)静态时序分析逻辑仿真器(7)后仿真(9)在系统测试阐明:l 逻辑仿真器重要指modelsim,Verilog-XL等。

      l 逻辑综合器重要指LeonardoSpectrum、Synplify、FPGA Express/FPGA Compiler等l FPGA厂家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等1.2 核心环节的实现1.2.1 功能仿真RTL代码调用模块的行为仿真模型测试程序(test bench)测试数据逻辑仿真器阐明: “调用模块的行为仿真模型”指的是RTL代码中引用的由厂家提供的宏模块/IP,如Altera 提供的LPM库中的乘法器、存储器等部件的行为模型1.2.2 逻辑综合设立综合目的和约束条件调用模块的黑盒子接口RTL代码逻辑综合器HDL网表(netlist)EDIF网表(netlist)阐明:“调用模块的黑盒子接口”的导入,是由于RTL代码调用了某些外部模块,而这些外部模块不能被综合或无需综合,但逻辑综合器需要其接口的定义来检查逻辑并保存这些模块的接口1.2.3 前仿真逻辑综合器调用模块的行为仿真模型测试数据测试程序(test bench)HDL网表(netlist)逻辑仿真器阐明: 一般来说,对FPGA设计这一步可以跳过不做,但可用于debug综合有无问题。

      1.2.4 布局布线逻辑综合器设立布局布线约束条件FPGA厂家工具EDIF网表(netlist)调用模块的综合模型SDF文献(原则延时格式)HDL网表(netlist)下载/编程文献1.2.5 后仿真(时序仿真)测试数据SDF文献(原则延时格式)FPGA基本单元仿真模型测试程序(test bench)FPGA厂家工具HDL网表(netlist)逻辑仿真器2. Verilog HDL设计 基于将来设计转向ASIC的以便,本部门的设计统一采用Verilog HDL,但针对混合设计和混合仿真的趋势,所有开发人员也应能读懂VHDLVerilog HDL的学习可参照[1][2]2.1 编程风格(Coding Style)规定2.1.1 文献(1) 每个模块(module)一般应存在于单独的源文献中,一般源文献名与所涉及模块名相似2) 每个设计文献开头应涉及如下注释内容:l 年份及公司名称l 作者l 文献名l 所属项目l 顶层模块l 模块名称及其描述l 修改纪录请参照原则示例程序[3]2.1.2 大小写(1) 如无特别需要,模块名和信号名一律采用小写字母2) 为醒目起见,常数(`define定义)/参数(parameter定义)采用大写字母。

      2.1.3 标记符(1) 标记符采用老式C语言的命名措施,即在单词之间以“_”分开,如:max_delay、data_size等等2) 采用故意义的、能反映对象特性、作用和性质的单词命名标记符,以增强程序的可读性3) 为避免标记符过于冗长,对较长单词的应当采用合适的缩写形式,如用‘buff’替代‘buffer’,‘ena’替代‘enable’,‘addr’替代‘address’等2.1.4 参数化设计 为了源代码的可读性和可移植性起见,不要在程序中直接写特定数值,尽量采用`define语句或paramater语句定义常数或参数2.1.5 空行和空格(1) 合适地在代码的不同部分中插入空行,避免因程序拥挤不利阅读2) 在体现式中插入空格,避免代码拥挤,涉及:赋值符号两边要有空格;双目运算符两边要有空格;单目运算符和操作数之间可没有空格,示例如下:a <= b;c <= a + b;if (a == b) then ...a <= ~a & c;2.1.6 对齐和缩进(1) 不要使用持续的空格来进行语句的对齐2) 采用制表符Tab对语句对齐和缩进,Tab键采用4个字符宽度,可在编辑器中设立。

      3) 多种嵌套语句特别是if...else语句,必须严格的逐级缩进对齐2.1.7 注释必须加入具体、清晰的注释行以增强代码的可读性和可移植性,注释内容占代码篇幅不应少于30%2.1.8 参照C语言的资料 要形成良好的编程风格,有许多细节需要注意,可以参照资料[4],虽然它是针对C语言的讨论,但由于Verilog HDL和C语言的形式非常近似,因此里面提到的诸多原则都是可以借鉴的2.1.9 可视化设计措施 为提高设计效率和适应协同设计的方式,可采用可视化的设计措施,Mentor Grahpics的Renoir软件提供了非常好的设计模式2.2 可综合设计 用HDL实现电路,设计人员对可综合风格的RTL描述的掌握不仅会影响到仿真和综合的一致性,也是逻辑综合后电路可靠性和质量好坏最重要的因素,对此应当予以充足的注重 学习可综合的HDL请参照 [5][6] [7] 学习设计的模块划分请参照[8]2.3 设计目录 采用合理、条理清晰的设计目录构造有助于提高设计的效率、可维护性建议采用类似下面的目录构造:(1)designsrc(源代码)syn(综合)sim(仿真)par(布局布线)(2)designver1ver2src(源代码)syn(综合)sim(仿真)par(布局布线)src(源代码)syn(综合)sim(仿真)par(布局布线)3. 逻辑仿真 考虑到性能和易用性,首选的逻辑仿真器是Mentor Graphics的modelsim。

      3.1 测试程序(test bench) 测试程序对于设计功能和时序的验证有着举足轻重的影响,测试鼓励的完备性和真实性是核心所在,有如下原则须遵循:(1) 测试鼓励输入和响应输出采集的时序应当兼顾功能仿真(无延时)和时序仿真(有延时)的状况2) 对于周期较多的测试,为提高效率,尽量采用程序语句来判断响应与原则成果与否一致,给出成功或出错标志,而不是通过观测波形来判断3) 采用基于文献的测试是较好的措施,即由matlab或spw等系统工具产生测试数据,测试程序将其读入产生鼓励,再把响应成果写入到文献,再交给上述工具进行解决或分析4) 仿真器支持几乎所有的Verilog HDL语法,而不仅仅是常用的RTL的描述,应当运用这一点使测试程序尽量简洁、清晰,篇幅长的要尽量采用task来描述3.2 使用预编译库 在进行功能仿真和后仿真时都需要某些模块的行为仿真模型和门级仿真模型,如Altera Quartus里的220model.v(LPM模块行为仿真模型)和apex20ke_atoms.v(20KE系列门级仿真模型),为避免在不同的设计目录中多次编译这些模型,应当采用一次编译,多次使用的措施具体做法如下(以20KE门级库为例): 1:在某个工作目录下新建一库名 apex20ke,将apex20ke_atoms.v编译到其中。

      2:在图形界面中的Load Design对话框中装入仿真设计时,在Verilog 标签下指定预编译库的完整途径见下图) 4. 逻辑综合 目前可用的FPGA综合工具有Mentor Graphics 的 LeonardoSpectrum,Synplicity的Synplify和Synopsys 的FPGA CompilerII/FPGA Express,LeonardoSpectrum由于性能和速度最佳,成为我们首选的综合器,FPGA CompilerII/FPGA Express由于可以和Design Compiler代码兼容也可用见参照[9]4.1 逻辑综合的某些原则 HDL代码综合后电路质量的好坏重要取决于三个方面:RTL实现与否合理、对厂家器件特点的理解和对综合器掌握的限度参照[10]中有比较全面的讨论4.1.1 有关LeonardoSpectrum LeonardoSpectrum对综合的控制能力比较强,但使用也略为复杂,故需要在使用前尽量熟悉其功能,才干获得较好的综合成果 当浮现综合成果不能满足约束条件时,不要急于修改设计源文献,应当通过综合器提供的时序和面积分析命。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.