logo资料库

fpga原型验证.pdf

第1页 / 共124页
第2页 / 共124页
第3页 / 共124页
第4页 / 共124页
第5页 / 共124页
第6页 / 共124页
第7页 / 共124页
第8页 / 共124页
资料共124页,剩余部分请下载后查看
1 ASIC验证技术
1.1 ASIC设计流程
1.2 FPGA验证技术
1.3 Altera与Xilinx工具对比
1.4 VHDL与Verilog对比
1.5 Verilog良好编程习惯
2 基于ALTERA的ASIC验证
2.1 Stratix IV FPGA资源与架构
2.2 QuartusII设计工具
2.3 ASIC设计转换
2.3.1 PLL设计
2.3.1 RAM设计
2.4 时序约束
2.4.1 QSF&Tcl
2.4.2 LogicLock
2.5 综合布局布线
2.5.1综合设置
2.5.2增量编译
2.5.3 VQM & QXP
2.5.4 时序分析
2.6 下载设计文件
2.7 Debug
2.7.1 In-System Memory Content Editor
2.7.2 ChipPlanner
2.7.3 SignalTapII
2.7.4 Keep Signals
2.8 Example工程
3 基于XILINX的ASIC验证
3.1 Vertex-7 FPGA资源与架构
3.2 设计工具ISE与Vivado
3.3 ASIC设计转换
3.3.1 时钟资源
3.3.2 PLL设计
3.3.3 RAM设计
3.4 时序约束
3.5 综合布局布线
3.5.1 Blackbox
3.5.2 Keep Signals
3.5.3 Strategies
3.5.4 Incremental Compile
3.5.5 时序分析
3.5.6 Generate Bitstream
3.6 下载设计文件
3.6.1 下载bit文件
3.6.2 下载mcs文件
3.7 Debug
3.8 Example工程
3.8.1 导入ISE & Synplify工程
3.8.2 Working with Tcl
3.9 Gate Clock处理
3.10多片FPGA验证
4 DDR相关技术
4.1 DDR Controller
4.2 DDR PHY
4.2.1 Altera PHY
4.2.2 Xilinx PHY
5 硬件技术
5.1 PCB设计注意事项
5.2 电磁兼容与信号完整性
5.2.1 端接匹配
5.2.2 防止地弹
5.2.3 减小串扰
5.2.4 降低电磁干扰
5.3 FPGA开发板使用注意事项
总结
Goke Microelectronics ASIC 设计-FPGA 原型验证 版本 1.0 1.1 修改内容 修改人 时间 2014.07 2014.09 ASIC Design Team I
ASIC 设计-FPGA 原型验证 目录 1 ASIC 验证技术 ...................................................................................................... 1 1.1 ASIC 设计流程 ............................................... 1 1.2 FPGA 验证技术 ............................................... 3 1.3 Altera 与 Xilinx 工具对比 .................................... 3 1.4 VHDL 与 Verilog 对比 ......................................... 5 1.5 Verilog 良好编程习惯 ........................................ 6 2 基于 ALTERA 的 ASIC 验证 ................................................................................. 9 2.1 Stratix IV FPGA 资源与架构 .................................. 9 2.2 QuartusII 设计工具 ......................................... 10 2.3 ASIC 设计转换 .............................................. 11 2.3.1 PLL 设计 ............................................................................................ 11 2.3.1 RAM 设计 .......................................................................................... 16 2.4 时序约束 ................................................... 19 2.4.1 QSF&Tcl ............................................................................................. 22 2.4.2 LogicLock ........................................................................................... 23 2.5 综合布局布线 ............................................... 23 2.5.1 综合设置 ............................................................................................. 24 2.5.2 增量编译 ............................................................................................. 25 2.5.3 VQM & QXP ...................................................................................... 30 2.5.4 时序分析 ............................................................................................ 30 2.6 下载设计文件 ............................................... 32 2.7 Debug ...................................................... 32 2.7.1 In-System Memory Content Editor ..................................................... 33 2.7.2 ChipPlanner ......................................................................................... 34 2.7.3 SignalTapII .......................................................................................... 38 2.7.4 Keep Signals ....................................................................................... 43 2.8 Example 工程 ............................................... 45 3 基于 XILINX 的 ASIC 验证 ................................................................................. 49 3.1 Vertex-7 FPGA 资源与架构 ................................... 49 3.2 设计工具 ISE 与 Vivado ...................................... 49 3.3 ASIC 设计转换 .............................................. 54 3.3.1 时钟资源 ............................................................................................ 54 3.3.2 PLL 设计 ............................................................................................ 58 3.3.3 RAM 设计 .......................................................................................... 61 II
Goke Microelectronics 3.4 时序约束 ................................................... 64 3.5 综合布局布线 ............................................... 70 3.5.1 Blackbox ............................................................................................. 70 3.5.2 Keep Signals ....................................................................................... 71 3.5.3 Strategies ............................................................................................. 72 3.5.4 Incremental Compile ........................................................................... 75 3.5.5 时序分析 ............................................................................................ 77 3.5.6 Generate Bitstream .............................................................................. 81 3.6 下载设计文件 ............................................... 84 3.6.1 下载 bit 文件 ..................................................................................... 84 3.6.2 下载 mcs 文件 ................................................................................... 87 3.7 Debug ...................................................... 88 3.8 Example 工程 ............................................... 94 3.8.1 导入 ISE & Synplify 工程 ................................................................. 94 3.8.2 Working with Tcl ................................................................................. 95 3.9 Gate Clock 处理 ............................................ 99 3.10 多片 FPGA 验证 ............................................ 101 4 DDR 相关技术 .................................................................................................... 104 4.1 DDR Controller ............................................ 108 4.2 DDR PHY ................................................... 111 4.2.1 Altera PHY ........................................................................................ 111 4.2.2 Xilinx PHY ....................................................................................... 113 5 硬件技术 .............................................................................................................. 117 5.1 PCB 设计注意事项 .......................................... 117 5.2 电磁兼容与信号完整性 ...................................... 117 5.2.1 端接匹配 .......................................................................................... 118 5.2.2 防止地弹 .......................................................................................... 118 5.2.3 减小串扰 .......................................................................................... 118 5.2.4 降低电磁干扰 .................................................................................. 119 5.3 FPGA 开发板使用注意事项 ................................... 120 总结 ............................................................................................................................ 121 III
Goke Microelectronics 1 ASIC 验证技术 1.1 ASIC 设计流程 ASIC 分为全定制和半定制。全定制设计需要设计者完成所有电路的设计, 因此需要大量人力物力,灵活性好但开发效率低下。如果设计较为理想,全定制 能够比半定制的 ASIC 芯片运行速度更快。半定制使用库里的标准逻辑单元 (Standard Cell),设计时可以从标准逻辑单元库中选择 SSI、MSI、数据通路、存 储器甚至系统级模块(如乘法器、微控制器等)和 IP 核,这些逻辑单元已经布局完 毕,而且设计得较为可靠,设计者可以较方便地完成系统设计。现代 ASIC 常包 含处理器,类似 ROM、RAM、EEPROM、Flash 的存储单元和其他模块. 这样的 ASIC 常被称为 SoC(片上系统)。 由于 SoC 设计复杂度不断增加,使得缩短面市时间的压力越来越重。虽然充 分利用 IP 核大大减少了 SoC 的设计时间,但 SoC 验证仍然非常复杂耗时。 SoC 和 ASIC 的最大不同之处在于它的系统特性,除了大量硬件模块之外,SoC 还需要 大量的固件和软件,如操作系统、驱动程序、通讯协议以及应用程序 等。这使得 传统的软件仿真工具已经无法完全解决验证的问题。而且随着越来越多的需要处 理大量实时数据的应用(如视频)出现,验证技术就要求能够在接近实时频率的 条件下进行验证。现在越来越多的 ASIC 设计者自己设计 FPGA 验证板来进行 ASIC 设计验证。用 FPGA 验证 ASIC 的好处是可以使软件的开发调试和 ASIC 的开发调试并行的进行。 图 1-1 为典型的半定制设计流程,一般用来设计数字 IC 电路。全定制的设 计,一般用于设计模拟电路和数模混合电路。 本文主要讨论设计流程中的仿真验证,RTL 仿真工具一般用到的有 Cadence 的 NC-verilog,Synopsys 的 VCS 和 Mentor 的 ModelSim。 RTL 验证包括基于 UVM 等方法学的逻辑验证和基于 FPGA 的原型验证。基 于方法学的验证主要使用 SystemVerilog 产生可重用性好、功能覆盖率高和调试 简易的测试激励。常见的验证平台有 UVM、OVM 和 VMM,都基于 SystemVerilog 搭建的。UVM 是在 OVM 和 VMM 基础上推出的验证方法学的新的标准。2006 年,Synopsys 公司推出了验证方法学手册(VMM),这个是 RVM 从 vera 语言过 度到 SystemVerilog 的方法学。2008 年,Cadence 公司和 Mentor 公司共同推出了 OVM。2010 年,ACCELLERA 采用了 OVM 作为基础,推出了 UVM 验证方法 1
ASIC 设计-FPGA 原型验证 学。同时引入了 VMM 的一些概念,作为业界方法学统一的一个雏形。基于 FPGA 的原型验证,主要有基于 Altera 和 Xilinx 的 FPGA 验证平台。 图 1-1 数字 IC 设计流程 2 需求分析算法设计架构设计RTL设计仿真验证综合门级验证布局布线(P&R)寄生参数提取版图物理验证Tapeout芯片测试设计流程设计工具Matlab C C++SystemC C C++VHDL VerilogVCS NC-Verilog ModelSimSystemVerilog UVM FPGADesignCompilerBuildGatesFormalityLECPrimeTime Pearl 静态时序分析 Astro ICCEncounterStar-RCXT Assure-RCXCalibre-xRCHerculesDracula Calibre
Goke Microelectronics 1.2 FPGA 验证技术 随着 SoC 设计规模的与日俱增,其功能日趋复杂,芯片的验证阶段占据了 整个芯片开发的大部分时间。为了缩短验证时间,在传统的仿真验证的基础上涌 现了许多新的验证手段,如 SDV(Software Driven verification)、BFM(Bus Function Model)等,以及基于 FPGA 的原型验证技术。因 FPGA 工艺及技术的发展,其速 度、容量和密度都大大增加,功耗和成本在不断的降低,使得基于 FPGA 的原型 验证得到广泛的应用。基于 FPGA 的原型验证可以比软件仿真速度高出 4~6 个 数量级,而且还可以提高流片成功率,并为软件开发提供了硬件平台,加速了软 件的开发速度。 FPGA 原型验证平台的硬件设计应该考虑 FPGA 的逻缉资源、应用资源、扩 展能力、PCB 信号质量、调试难度、组态和成本等方面的因素。本原型验证系 统采用的是基于 Altera 公司 Stratix IV EP4SE820 的开发板,和基于 Xilinx 公司 Vertex-7 XC7V2000T 的开发板,扩展板是根据 SoC 整体验证需求而设计的 PCB 板。 虽然 FPGA 和 ASIC 所用资源和实现方式不同,但在进行原型设计中需要遵 循的一个原则就是“尊重原设计”。在 FPGA 现有资源情况下实现 SoC 时,尽可 能地少改动原 SoC 设计,在此基础上需要对原设计做如下转换: 1. 存储模块。存储单元是必须进行代码转换的,ASIC 中的存储单元通常用 代工厂所提供的 Memory Compiler 来定制。如果直接将 ASIC 代码中的存储单元 作为 FPGA 的输入,通常综合器是综合不出来的,即使能综合出来,也要花费很 长时间,并且资源消耗多、性能不好。而 FPGA 厂商一般提供经过验证并优化的 存储单元,因此存储单元要进行代码转换。在设计里用 FPGA 的 RAM 宏单元来 替换 ESRAM,SoC 芯片里面的 DDR PHY 是模拟的模块,此要替换成 Altera 或 Xilinx 公司的 DDR PHY 的 IP 核。 2. 时钟和门控。数字电路中,时钟是整个电路最重要、最特殊的信号。在 ASIC 中,用布局布线工具来放置时钟树,利用代工厂提供的 PLL 进行时钟设计。 而 FPGA 中通常已经配置一定数量的 PLL 宏单元,并有针对时钟优化的全局时 钟网络,一般是经过 FPGA 的特定全局时钟管脚进入 FPGA 内部,后经过全局时 钟 BUF 适配到全局时钟网络,这样的时钟网络可以保证相同的时钟沿到达芯片 内部每一个触发器的延迟时间差异可以忽略不计,因此时钟单元需要采用 FPGA 的 PLL 宏单元和专门的时钟布线资源来替换。为了减少功耗,SoC 设计中使用 了门控时钟(clockgating),对于 FPGA 来说这种门控时钟容易产生毛刺,导致数 据不正确,所以在 FPGA 设计中要使用时钟使能寄存器代替门控时钟。 1.3 Altera 与 Xilinx 工具对比 3
ASIC 设计-FPGA 原型验证 Altera 和 Xilinx 是最大的两家 FPGA 厂商,Altera 目前的高端器件是 Stratix IV 系列,Xilinx 是 Vertex-7。在 SoC 的验证过程中,我们希望 FPGA 的频率能够达 到和 SoC 一样,但是验证过程中对于超过 400 万门的 SoC,FPGA 的最高运行频 率不超过 200M。 Altera 和 Xilinx 这两家,在高端器件,Xilinx 处于领先地位。现在 FPGA 的 规模越来越大,资源两家的高端器件都能满足一般开发验证,所以使用的瓶颈已 经在软件这个层面。从 EDA 软件来说,Altera 软件要做的好,特别是编译综合 和时序收敛方面,Xilinx 的 v7 资源占用率才 40%左右,就时序很难收敛,然后 要用 SmartXplorer 来跑多个 case,看下有没有能编译通过的,编译同样规模的工 程要比 Quartus 慢很多,而且内存开销很大,route 一个 800 万门的 design 要占用 20G 左右的内存。毕竟对于用户来说,实现 FPGA 工程到成功编译下载的中间过 程越短越好。Xilinx 从 v7 系列开始,使用新的软件 vivado 编译工具,ISE 后面 不在出新的版本,从这个角度也可以看出 Xilinx 自己都认为原来的 ISE 软件太差, vivado 是新的软件架构,编译综合功能还是很差劲,但是布局布线功能改善很大, 同样规模的 design,要比 ISE 快一倍,内存开销少一半,所以一般用 synplify 综合, 用 vivado 布局布线。Quartus 的集成界面易用性做得比 ISE 好,而 ISE 和 vivado 的脚本支持比 Quartus 做得好;因此对初学者来说,Quartus 更容易入门,而对熟 练用户,在大型设计项目的开发中,vivado 则会显得更顺手,因为可以对后端设 计进行更精细的控制和自动化。 关于块 RAM,Xilinx 的双口 RAM 是真的,Altera 的没有双口 RAM,如果 你要实现真正的双口 RAM,只能用两块 RAM 来背靠背地实现,这样你的 RAM 资源就少了一半,如果你的应用对片内双口 RAM 的需求很重要,用 Altera 的就 划不来。 从 RTL 仿真、编译综合、布局布线、下载调试,两家公司都开发了一系列 工具,如表 1-1 所示。 表 1-1 Altera 与 Xilinx 工具对比 Altera 工具 Xilinx 工具 第三方工具 Quartus II Simulator ISim ModelSim VCS NC-Verilog Quartus II Synthesis 静态时序分析 Implementation TimeQuest Quartus II XST/vivado TimeAnalyzer ISE/vivado 开发流程 Simulation Synthesis Debug 系统集成 嵌入式软核 DSP 设计 Programming Synplify PrimeTime SignalTapII ChipScope/Debug Qsys NiosII EDK MicroBlaze DSP Builder System Generator Matlab Programmer iMPACT USB Download 4
Goke Microelectronics 1.4 VHDL 与 Verilog 对比 Verilog HDL 和 VHDL 作为描述硬件电路设计的语言,其共同特点在于:能 形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借 用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证 设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无 关(有关工艺参数可通过语言提供的属性包括进去);易于理解和设计重用。但 是,两者又有着各自的特点: Verilog HDL 和 VHDL 最大的差别在语法上,Verilog HDL 是一种类 C 语言, 而 VHDL 是一种 ADA(Action Data Automation,行动数据自动化)语言。由于 C 语言简单易用且应用广泛,因此也使得 Verilog HDL 语言容易学习;相比之下, VHDL 语句较为晦涩,使用难度较大。VHDL 比较严谨,Verilog 比较自由。 在中国台湾、美国、日本等使用 Verilog 较多,而在欧洲 VHDL 发展得比较 好。国内大多数集成电路设计公司基本都采用 Verilog。Verilog 在其门级描述的 底层,也就是晶体管开关级的描述方面比 VHDL 更强一些,所以即使是 VHDL 的 设计环境,在底层实质上也会由 Verilog 描述的器件库所支持。Verilog 较为适合 算法级、RTL 级、门级和电路开关级的设计,而 VHDL 适合特大型的系统级设 计,也就是在系统级抽象方面比 Verilog 好。这两种语言仍处于不断完善之中, 都在朝着更高级、更强大描述语言的方向前进。其中,经过 IEEE Verilog HDL 2001 标准补充之后,Verilog 的系统级描述性能和可综合性能有了大幅度提高。 学习 HDL 语言的时候有以下几点提示 1. 了解 HDL 的可综合性问题。HDL 有两种用途:系统仿真和硬件实现。如 果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的 程序 是用于硬件实现,那么我们就必须保证程序的可综合(程序的功能可以用 硬件电路实现)。我们应该牢记一点:所有的 HDL 描述都可以用于仿真,但不是 所有的 HDL 描述都能用硬件实现。 2. 用硬件电路设计的思想来编写 HDL。学好 HDL 的关键是充分理解 HDL 语句和硬件电路的关系。编写 HDL,就是在描述一个电路,不能用纯软件的设 计思 路来编写硬件描述语言。Verilog 描述电路的时候,一定要清楚它实现的电 路,很多人只顾学习 Verilog 语言,而不熟悉它实现的电路,这是设计不出好电 路来的。 3. 语法掌握贵在精,不在多。30%的基本 HDL 语句就可以完成 95%以上的 电路设计,很多生僻的语句并不能被所有的综合软件所支持,程序移植或者更换 平台的时,容易产生兼容性问题,也不利于他人阅读和修改。 表 1-2 为 VHDL 相应的功能在 Verilog 中的实现方式,列出来方便不熟悉 VHDL 的人员理解用 VHDL 编写的 IP。 表 1-2 VHDL 与 Verilog 对比 5
分享到:
收藏