微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > FPGA系统设计原则和技巧之:FPGA系统设计的3种常用IP模块

FPGA系统设计原则和技巧之:FPGA系统设计的3种常用IP模块

时间:06-05 来源:互联网 点击:

9.3FPGA系统设计的3种常用IP模块

FPGA的开发工具软件,如QuartusII、ISE等,一般都会提供一些经过验证的IP模块。这些IP模块是芯片厂家提供的,所以只能用于该厂家的FPGA芯片设计中。这些IP主要包括以下几类。

·算术类,如乘法器、加法器、除法器等。

·逻辑门类,如与门、或门、非门等。

·存储器类,如FIFO、RAM、ROM、移位寄存器等。

·I/O类,如双向IO、PLL、LVDS等。

·接口类,如以太网MAC、PCI接口控制器、高速串行收发器(SERDES)等。

·商业IP核,需要付费购买的。

以上的IP中,最常用的3个IP分别是片上存储器(RAM/ROM/FIFO),锁相环(PLL/DLL)和高速串行收发器(SERDES)。灵活使用这些IP,可以提升设计的性能,同时降低设计的复杂度。

IP模块的实现方式主要有3种:使用HDL代码描述、使用综合约束属性例化或类推、使用器件商的IPcore生成器。

典型功能的IPcore都可以通过这3种途径实现。其中前两种方法需要学习综合RAM、ROM、CAM等存储单元的CodingStyle或约束属性,后一种方法非常方便、直接,建议初学者首先要掌握使用器件商IPcore生成器设计RAM、ROM、CAM等存储单元的方法。

下面通过QuartusII工具分别介绍Altera的3种IP模块的使用方法。

9.3.1片上存储器的使用方法

片上存储器由内嵌于FPGA内部的逻辑资源(分布RAM和块RAM)搭建而成。搭建出来的这些片上存储器的调用方法与分立器件基本一致,但却为开发者省去了大量的PCB布线资源。在小容量的存储器设计中有着非常广泛的应用,同时这些片上存储器还常常用作数据缓冲及时钟域转换等工作。

首先来介绍片上FIFO的使用方法。

1.FIFO

(1)打开宏模块向导管理器。

在QuartusII中,IP模块的生成都是通过“MegaWizardPlug-InManager”(宏模块向导管理器)实现的,它可以通过如图9.9的“Tools”菜单打开。

(2)选择新建宏模块。

在宏模块向导管理器的第1页,选择新建一个自定义的宏模块,如图9.10所示。

图9.9宏模块向导管理器调用 图9.10新建宏模块

(3)选择宏模块。

在宏模块向导管理器的第2页,管理器为我们提供了支持的宏模块树形目录。通过在该目录中选择相应的宏模块实现调用。同时在这一页中还可以选择应用的FPGA器件系列和宏模块的描述语言,并使用用户自定义的模块名,如图9.11所示。

图9.11选择宏模块

在本例中,我们选择“LPM_FIFO+模块”进行实现。

(4)设置FIFO宽度和深度。

在宏模块向导管理器(FIFO)的第3页,可以设置FIFO的深度和宽度,同时在本页的左下角会计算出实现这样一个深度和宽度的FIFO所消耗的FPGA资源,如图9.12所示。

图9.12设置FIFO深度和宽度

(5)设置FIFO的控制信号。

在宏模块向导管理器(FIFO)的第4页,可以设置FIFO的控制信号,包括满信号full、空信号empty、使用字节信号组usedw[]、几乎满信号almostfull(可编程)、几乎空信号almostempty(可编程)、异步清零信号和同步清零信号。

通过选择是否打开这些信号来构造一个用户自定义的FIFO,如图9.13所示。

图9.13设置FIFO的控制信号

(6)设置FIFO的模式。

在宏模块向导管理器(FIFO)的第6页,可以设置FIFO的模式。分为Lagacy同步模式和Show-ahead同步模式。区别在于输出数据是在FIFO的读请求信号rdreq发出之前还是之后有效,用户可以根据需要进行选择,如图9.14所示。

(7)设置FIFO的外部属性。

在宏模块向导管理器(FIFO)的第7页,可以设置FIFO的外部属性,包括输出寄存器使用最佳速度策略还是最小面积策略,数据溢出及读空状态下的保护机制,还可以强制只利用逻辑单元来构造FIFO,如图9.15所示。

图9.14设置FIFO的模式

图9.15设置FIFO的外部属性

(8)选择生成的FIFO模块文件。

在宏模块向导管理器(FIFO)的第8页,也就是最后一页,可以选择生成的FIFO模块文件。在QuartusII软件中,宏模块向导管理器可为FIFO生成7个文件,如图9.16所示。

图9.16选择生成的FIFO模块文件图9.17打开工程添加/删除文件对话框

(9)向工程添加FIFO模块文件。

生成FIFO模块的文件后,在工程的目录下生成了选择的文件。要在工程中调用这些模块,首先要将这些文件添加到工程中来。

打开“Project”菜单,选择其中的“Add/RemoveFilesinProject…”选项,如图9.17所示,打开工程添加/删除文件对话框。

在打开的对话框中,选择向工程添加3个文件,如图9.18所示。

图9.18添加FIFO模块文件图 9.19工程浏览器

添加成功后,在工程浏览器中,可以看到器件设计文件中已经包含了这

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top