1、第四章 Altera 的IP工具主要内容: 1 IP的概念、Altera的IP 2 使用Altera的基本宏功能 3 使用Altera的IP核4.1 IP核的概念IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中,如FIR滤波器、SDRAM控制器、PCI接口设计做成一个“黑盒”或者是可修改参数的模块,供使用。 从IP核的提供方式上,通常将其分为软核、固核和硬核这3类。从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高 软核在EDA 设计
2、领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、表和帮助文档等。 软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许自配置;缺点是对模块的预测性,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP 核应用最广泛的形式。 软核固核在EDA 设计领域指的是带有平面规划信息的网表;具体在FPGA 设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固
3、核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP 核的主流形式之一。固核 硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。硬核功能模块AMPP 是ALTERA宏功能模块、IP内核开发伙伴的组织。通过这个联盟,AMPP的所有厂商提供基于ALTERA器件优化的宏功能模块、I
4、P内核。 Altera和第三方IP合作伙伴提供的可用功能模块:基本宏功能(megafunctions /LPM)(Megacore)AMPP IP核是复杂或高级构建模块,可以在Quartus II 设计文件中与门和触发器基本单元一起使用。这些模块的功能一般都是通用的,比如counter、FIFO、RAM等altera提供的可参数化LPM宏功能模块和LPM函数均为altera器件结构做了优化,而且必须使用宏功能模块才可以使用一些altera特定器件的功能宏功能模块IP知识产权模块是某一领域内的实现某一算法或功能的参数化模块。这些功能由Altera和AMPP开发, 专门针对Altera 特定器件经
5、严格的测试和优化,可以使用这些知识产权的参数化块减少设计和测试时间。一般需要用户购买才能使用。 这些宏功能模块包括应用于通信、数字信号处理 (DSP)、PCI和其它总线接口以及存储器控制器中的宏功能模块。IP知识产权模块4.2 Altera 提供的IP核一、基本宏功能(Megafunction/LPM)基本宏功能(Megafunctions)包括两类,一类是Altera专有的宏功能,以ALT开头进行标注,另一类则是参数化的模块库。 何时应用宏功能块 对于一些简单的功能模块,如加/减、简单的多路器等,通常建议使用通用的HDL来描述,这样的逻辑功能用HDL描述起来非常简洁,而且综合工具可以把这些基
6、本功能放在整个设计中进行优化,使得系统达到最优。如果使用altera的基本宏功能,由于综合工具的算法无法对宏功能模块进行优化操作,反而会影响设计的结构;而对一些相对比较复杂的设计,例如,一个同步可载入的计数器,使用altera的基本宏功能会得到较好的结果。 另外,在设计代码中过多地使用基本宏功能,也会降低代码的可移植性。 使用基本宏功能设计方法不一定总给设计带来显著的性能提升和面积节省,需自己实践。二、Altera的IP与AMPP IP(Megacore)Altera除提供基本的宏功能外,还提供功能复杂的功能模块,如PCI接口、DDRSRAM等等。大致分为四类:三 AMPPIP核 AMPP I
7、P核是第三方及Altera合作伙伴向Altera用户提供的基于Altera器件优化的IP核。所有AMPP IP核具有统一的界面,用来定制、生成IP文件。Altera的IP工具MegaWizard管理器MegaWizard管理器可以帮助用户建立或修改包含自定义宏功能模块变量的设计文件,而后可以在用户自己的设计文件中对这些IP模块文件实例化。通常这些自定义宏功能模块变量基于Altera提供的基本宏功能、MegaCore以及AMPP IP核。通过运行向导,MegaWizard管理器能帮助用户方便的为自定义宏功能模块变量指定选项,产生所需功能。缺省状态下,MegaWizard输出HDL 封装文件,同时
8、还提供HDL实例化模块、VHDL元件声明(CMP)、Quartus II符号(BSF)及Verilog黑盒子等不同选择。1.下载所要MegaCore的安装程序并安装 2.通过MegaWizard的界面打开IP核的统一界面IP Toolbench 3.根据用户的需要订制要生成IP的参数 4.产生IP的封装和网表文件,以及功能仿真模型;5.用户对IP的RTL仿真模型做功能方针 6.用户把IP的封装文件和网表文件放在设计工程中,并实现设计 7.如果IP支持OpenCorePlus,用户可以把设计下载到器件中做验证和调试 8.如果确认IP使用没有问题,既可以向Altera或第三方IP供应商购买许可证一
9、般一般的开的开发步发步骤骤4.2 使用Altera的基本宏功能1 通过Megawizard 管理器定制基本宏功能参数,生成一个封装文件,然后在设计代码中调用该封装文件2 用户可以在设计代码中对宏功能模块直接进行参数化调用3 Quartus 集成的综合器或第三方综合器可以根据代码中的HDL语言描述,自动推断出一些基本宏功能,如计数器、乘法器和RAM等一 定制基本宏功能方法:1 运行管理器 TOOLS/Megawizard Plug-in Wizard命令2 在原理图编辑页面双击空白处,从快捷菜单中选择insert/symbol命令,然后从弹出的窗口中选TOOLS/Megawizard Plug-
10、in maneger即可3 选择开始/运行命令,输入qmegawiz命令例 FIFO1 调用MegaWizard 管理器Tools MegaWizard Plug-In Manager2 宏功能模块选择可供选择的宏功能输出语言的选择输出文件路径和文件名白盒模式用户库3 FIFO参数设置4 仿真库选择5 输出文件选择MegaWizardMegaWizard输出的文件类型输出的文件类型 .bsf .bsf : Block EditorBlock Editor中使用的宏功能模块的符号(元件)中使用的宏功能模块的符号(元件) .cmp .cmp : 组件申明文件。组件申明文件。 .inc .inc :
11、 宏功能模块包装文件中模块的宏功能模块包装文件中模块的AHDLAHDL包含文件。包含文件。 .tdf .tdf : 要在要在AHDLAHDL设计中实例化的宏功能模块包装文件。设计中实例化的宏功能模块包装文件。 .vhd .vhd : 要在要在VHDLVHDL设计中实例化的宏功能模块包装文件。设计中实例化的宏功能模块包装文件。 .v .v :要在要在VerilogHDLVerilogHDL设计中实例化的宏功能模块包装文件设计中实例化的宏功能模块包装文件 _bb.v _bb.v :VerilogHDLVerilogHDL设计所用宏功能模块包装文件中模块的设计所用宏功能模块包装文件中模块的空体或空体
12、或black-boxblack-box申明,用于在使用申明,用于在使用EDA EDA 综合工具时指定端口方向。综合工具时指定端口方向。 _inst.tdf _inst.tdf : 宏功能模块包装文件中子设计的宏功能模块包装文件中子设计的AHDLAHDL例化示例例化示例 _inst.vhd _inst.vhd : 宏功能模块包装文件中实体的宏功能模块包装文件中实体的VHDLVHDL例化示例。例化示例。 _inst.v _inst.v : 宏功能模块包装文件中模块的宏功能模块包装文件中模块的VerilogHDLVerilogHDL例化例化示例。示例。 4.3 实现基本宏功能步骤:1 建立一个Pro
13、ject2使用MegaWizard管理器定制宏功能模块3 在设计中实例化定制的宏功能模块4 继续完成设计的其它部分5对设计进行RTL功能仿真6 逻辑综合7布局布线8时序分析。设计代码中例化例化代码分为两部分:端口映射和参数映射。以下面一个例化代码分为两部分:端口映射和参数映射。以下面一个lpm_counterlpm_counter为例为例 端口映射部分:端口映射部分: lpm_counter lpm_counter_component (lpm_counter lpm_counter_component ( .clock (clock), .clock (clock), .q (q), .q
14、(q), .aclr (1b0), .aclr (1b0), .aload (1b0), .aload (1b0), .aset (1b0), .aset (1b0), .cin (1b1), .cin (1b1), .clk_en (1b1), .clk_en (1b1), .cnt_en (1b1), .cnt_en (1b1), .cout (), .cout (), .data (81b0), .data (81b0), .eq (), .eq (), .sclr (1b0), .sclr (1b0), .sload (1b0), .sload (1b0), .sset (1b0),
15、.sset (1b0), .updown (1b1); .updown (1b1);参数映射部分: defparam lpm_counter_component.lpm_direction = UP, lpm_counter_component.lpm_port_updown = PORT_UNUSED, lpm_counter_component.lpm_type = LPM_COUNTER, lpm_counter_component.lpm_width = 8; 代码中直接例化的好处代码中直接例化的好处 在在HDLHDL代码中直接例化代码中直接例化MegafunctionMegafunc
16、tion的好处有以下两点:的好处有以下两点: 1. 1. 可以在代码中直接修改配置参数和端口使用情况。不需可以在代码中直接修改配置参数和端口使用情况。不需要每次修改参数都启动要每次修改参数都启动MegaWizard Plug-in ManagerMegaWizard Plug-in Manager。 2. 2. 由于在代码中直接例化源由于在代码中直接例化源MegafunctionMegafunction模块,不需要在模块,不需要在包含文件列表中包括包含文件列表中包括MegaWizard Plug-in ManagerMegaWizard Plug-in Manager生成的文生成的文件。工程文
17、件列表简明清晰。件。工程文件列表简明清晰。 从上面的代码可以看出,从上面的代码可以看出,MegafunctionMegafunction的端口和参数都是的端口和参数都是很复杂的,很难全凭记忆完整的列出;对于一些比较特殊的很复杂的,很难全凭记忆完整的列出;对于一些比较特殊的参数内容(比如参数内容(比如stringstring类型的参数),如果不熟悉的话,很类型的参数),如果不熟悉的话,很容易写错甚至不知道该写哪些内容。容易写错甚至不知道该写哪些内容。 解决这一问题的方法是,先采用解决这一问题的方法是,先采用MegaWizard Plug-in MegaWizard Plug-in Manager
18、Manager生成用户订制生成用户订制MegafunctionMegafunction文件,然后参考该文件文件,然后参考该文件例化和配置例化和配置MegafunctionMegafunction的方法,在自己的设计文件中直接的方法,在自己的设计文件中直接例化例化MegafunctionMegafunction。 专用硬件资源的使用专用硬件资源的使用 锁相环是芯片中最常用的时钟产生形式,可以对参考晶振信号进行分频、倍频、占空比调整、相位调整等操作,精确地产生所预期的时钟信号。锁相环集成方便,频率精度高。随着系统复杂度的不断提高,内部逻辑实现时往往需要多个频率和相位的时钟,因此在 FPGA内部出现
19、了时钟管理单元,而最具有代表性的即为锁相环(PLL)和延迟锁定环(DLL)Altera在FPGA芯片中内嵌模拟锁相环(PLL),PLL通过反馈路径消除时钟分布路径的延时,可以用作频率综合(如:分频、倍频)、去抖动、调整占空比及移相等。PLL在FPGA中,片内存储器是十分重要的资源。利用片内存储器,可以在FPGA中实现RAM、ROM、CAM等存储单元。存储单元的设计有其自身的规律和特点:RAM是根据地址读、写数据的存储单元;在FPGA中没有专用的ROM硬件资源,实现ROM的方法是:对RAM赋初值,并保持该初值;CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。CAM的应用非常广泛,如
20、在路由器中的地址表等。片内存储器有三类:块RAM、查找表、寄存器。块RAM是FPGA中内嵌的存储单元,可以配置为单口/双口RAM、ROM、CAM及FIFO等。绝大多数 FPGA都是基于触发器(FF)和查找表(LUT)结构的,这两种基本资源都可以综合为RAM等存储单元。相对较小、速度较高的存储结构可以用寄存器资源实现;相对大一些,时序余量宽松的存储单元可以用LUT实现。目前很多综合工具支持类推RAM、ROM、CAM等存储单元使用块RAM、寄存器或LUT资源。FPGA中与存储单元相关的资源1直接在HDL代码中描述:直接用HDL代码描述存储单元的模型,而后由综合器综合类推。其缺点在于综合结果不确定,
21、或者需要直接调用器件商提供的与这些存储单元相关的硬件原语。2使用综合约束属性指导综合器类推RAM等存储单元,这要求设计者必须熟悉器件结构和综合软件的约束属性。3使用EDA软件提供的IP Core实现,该方法简单、高效,推荐采用。存储单元的三种基本生成方法:有三种:M512:每块容量为512bit;M4K:每块容量为4kbit;MRAM:每块容量为512kbit。Altera片内块RAM的端口方式:单端口RAM:一个端口进行读写操作;简单双端口RAM:两个端口,一个只读,一个只写;真正双端口RAM:两个端口,均可读写;多端口RAM,比如一个端口写,两个端口读等;FIFO:先进先出队列;ROM:只
22、读存储器;移位寄存器等。在Altera Quartus II中,要实现单端口、双端口等RAM,需要在MegaWizard中的Storage部分选择ALTSYNCRAM的Megafunction功能块。要使用RAM实现移位寄存器,则需在MegaWizard中调ALTSHIFT TAPSAltera FPGA中的块RAM随着数据接口速度和带宽的不断提高,许多接口逐渐摒弃了传统的LVTTL/LVCMOS电平,转而采用一些速度更高、抗干扰性能更好的差分接口电平(如图8所示),如LVDS、HyperTransport等,从而减少PCB走线,提高传输带宽。在实际设计中,要实现LVDS发送器和接收器,只需在
23、MegaWizard中调用ALTLVDS并进行定制即可。高速差分接口FPGA中的DSP资源,包括:硬件乘法器、乘加器及专用的DSP逻辑片。利用这些资源,系统设计者可将精力集中在设计上,而无须关心底层模块的细节。FPGA可以生成定制硬件设计,从而控制逻辑在硬件中的实现。通过裁减硬件架构,FPGA可以提供额外的性能。当速度是最重要的考量因素时,可以在FPGA中设计完全并行的算法处理方案,以资源换取速度。Altera高端FPGA中均嵌入DSP块,用来实现高速的、并行的数字信号处理。Altera DSP块包括:输入寄存器、乘法器、流水线寄存器、加/减/累加单元、求总和单元、输出多路选择器及输出寄存器等DSPDSP块块举例:LPM_RAM模块的设置一 初始化文件生成 : 1建立建立.mif格式文件格式文件 file-new-memery file (1)直接编辑法)直接编辑法 (2)文件编辑法)文件编辑法 (3)C、Matlab等软件生成等软件生成 编译后,编译后,dos下执行下执行romgensin_rom.mif(4)专用)专用mif文件生成器文件生成器 2建立建立.hex格式文件格式文件 2 LPM_RAM设置和调用设置和调用
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。