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

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

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

。可以设置DPRAM的容量单位为位或者是字节。同时在本页的左下角会计算出实现这样一个DPRAM所消耗的FPGA资源,如图9.21所示。

图9.21选择宏模块

(4)设置DPRAM数据宽度及容量。

在宏模块向导管理器(DPRAM)的第4页,可以设置DPRAM的数据宽度及容量,同时可以设置输入输出端口为不同的宽度实现串并或并串转换,如图9.22所示。

(5)设置DPRAM时钟及使能。

在宏模块向导管理器(DPRAM)的第5页,可以设置DPRAM的时钟及使能信号,可以将DPRAM设置为单时钟(输入输出使用同一个时钟),也可以使用独立的时钟。另外还可以为DPRAM增加读使能信号rden,如图9.23所示。

图9.22设置DPRAM数据宽度及容量

图9.23设置DPRAM时钟及使能

(6)设置DPRAM端口寄存器及清零信号。

在宏模块向导管理器(DPRAM)的第7页,可以设置DPRAM的端口寄存器及清零信号,可以选择是否增加端口的寄存器,如图9.24所示。

图9.24设置DPRAM端口寄存器及清零信号

(7)设置DPRAM初始化值。

在宏模块向导管理器(DPRAM)的第9页,可以设置DPRAM的初始化值。通过选择MIF文件或者HEX文件可以使用文件中的值对DPRAM进行初始化,如图9.25所示。

图9.25设置DPRAM初始化值

(8)生成DPRAM模块文件。

设置完成所有的参数,来到宏模块向导管理器(DPRAM)的最后一页。可以选择生成的DPRAM模块文件,共有6个文件可以生成,如图9.26所示。

图9.26生成DPRAM模块文件

DPRAM的调用方式与FIFO的类似,其构建方式及模块的声明结构可以参看DPRAM模块的dpram_test.v和dpram_test_bb.v文件。

3.ROM

这里主要介绍ROM模块的生成方法,模块的构造方法及调用方法与FIFO模块类似,就不详细介绍了。

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

具体方法参见FIFO的方法。

(2)选择宏模块。

在本例中,我们选择LPM_ROM模块进行实现,如图9.27所示。

(3)设置ROM宽度、深度及时钟控制方式。

在宏模块向导管理器(DPRAM)的第3页,可以设置DPRAM的宽度、深度及时钟控制方式。ROM宽度指的是存储器数据位宽,深度指的是具有该宽度的存储单元个数。宏模块向导管理器会根据设计者的选择自动生成ROM的地址总线,同时也会在左下角显示消耗的FPGA逻辑资源情况。

图9.27选择宏模块

ROM的时钟控制方式分为两种,一种为单时钟,另一种将输入时钟和输出时钟分离。ROM的输入输出使用的是同一个数据端口,时钟的分离实际上也是对同一个数据端口作控制,如图9.28所示。

图9.28设置ROM宽度、深度及时钟控制方式

(4)设置端口寄存器及清零信号。

这个步骤与RAM中的第(6)步类似,不再详述,如图9.29所示。

(5)设置ROM初始化值。

同样可以参看RAM使用方法的第(7)步,如图9.30所示。

图9.29设置端口寄存器及清零信号

图9.30设置ROM初始化值

(6)选择生成ROM模块文件。

设置完成所有的参数,来到宏模块向导管理器(ROM)的最后一页。可以选择生成的ROM模块文件,同样有6个文件可以生成,如图9.31所示。

图9.31生成ROM模块文件

ROM的调用方式与FIFO的类似,其构建方式及模块的声明结构可以参看ROM模块的ROM_test.v和ROM_test_bb.v文件。

9.3.2锁相环的使用方法

锁相环在数字系统中的应用非常广泛,在Altera的FPGA产品中集成的锁相环是PLL模块,在Xilinx的FPGA产品中集成的锁相环是DLL模块。两者采用的技术不同,但是实现的基本功能大致相同,但也各有特点。

锁相环的原理及在FPGA内部的构造这里将不做介绍,只以Altera的CycloneFPGA的PLL为例讲解其使用方法。

CyclonePLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TCO)和建立(TSU)时间。

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

具体方法参见FIFO的方法。

(2)选择宏模块。

在本例中,我们选择ALTPLL模块进行实现,如图9.32所示。

图9.32选择宏模块

(3)设置时钟源,PLL类型及工作模式。

在宏模块向导管理器(PLL)的第3页,设计者可以设置一些PLL基本属性,如器件族、速度级别及基准频率,还可以设置PLL的类型及工作模式。

值得注意的是,这里的基准频率并不一定是最终设计者向PLL输入的时钟。最终的PLL是通过比例值来对输入频率进行综合,所以PLL的关键参数是比例值,即图9.33中PLL_test框图中的Ratio值。

例如Ratio值为5/2(通过后面几个步骤实现),而基准频率为40MHz,则PLL的c0输出为100MHz。在调用这个PLL时,若设计者使用20MHz的频率输入,则输出的频率为50

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

网站地图

Top