PLL的输出频率由下式给出:
f?fINm。
n?c其中,c分别为c0、c1和c2三个计数器的设定值。 6、嵌入式存储器
Cyclone II系列FPGA的存储器由多列M4K RAM块组成。M4K RAM可以灵活地配置成各种工作模式,如真双口RAM、简单双口RAM、单口RAM、ROM或者FIFO,可以带校验位,也可以不带校验位。EP2C35有105个M4K RAM块,共483840位。M4K RAM的特性如表2.5所示。
表2.5 M4K RAM的特性 最大性能 250MHz 包含校验位在内的4608 总RAM位 支持的配置 4K?l;2K?2;1K?4;512?8;512?9;256?16;256?18;128?32(真双口模式下无效);128?36(真双口模式下无效) 校验位 每个字节一个校验位,以保证数据的完整性 字节使能 当写端口数据宽度为1、2、4、8、9、16、18、32或36位时,M4K RAM块支持字节写入。字节使能将输入数据屏蔽为特定的字节宽度,未被写入的字节则保持原有内容不变 打包模式 如果两个单口存储器块的尺寸都小于或等于M4K RAM块尺寸的一半且都配置成为单时钟模式,则这两个单口存储器块可以打包成一个M4K RAM块 地址时钟使能 M4K RAM块支持时钟使能,在时钟使能信号有效之前,可以一直保持之前的地址值,这种特性可以用来处理缓冲应用中的数据丢失 存储器初始化文件当M4K RAM块被配置成RAM或ROM时,可以使用存储器初(.mif) 始化文件初始化存储器的内容 加电条件 加电时M4K RAM块输出自动清除 寄存器清除 只有输出寄存器可以清除 写入时同端口读 新数据在时钟上升沿有效 写入时混合端口读 旧数据在时钟上升沿有效 可以把M4K RAM块配置成各种模式的存储器,如表2.6所示。M4K RAM块支持4种时钟模式,表2.7列出了不同的时钟模式。表2.8列出了不同存储器模式下能够使用的时钟模式。
表2.6 M4K RAM块的存储器模式 存储器模式 说明 单口存储器 当不需要同时读/写时,M4K RAM块可以配置成单口存储器模式 简单双口存储简单双口存储器模式支持对存储器的同时读/写 器 真双口存储器 真双口存储器模式支持任何形式的双口存储器操作:同时进行两个读、两个写或工作在不同时钟频率的一个读一个写操作 混合宽度的简单双口存储器 混合宽度的真双口存储器 嵌入式移位寄存器 ROM FIFO缓冲器 时钟模式 独立时钟模式 输入/输出时钟模式 读/写时可以有两个时钟,写时钟控制数据输入、wraddress和wren读时钟钟模式 控制数据输出、rdaddress和rden 单时钟模用一个时钟和一个时钟使能来控制所有的寄存器,这种模式不支持式 异步清除 表2.8 M4K RAM块在不同存储器模式下可以使用的时钟模式 时钟模式 真双口模式 简单双口模式 单口模式 独立时钟模式 √ 输入/输出时钟模√ √ √ 式 读/写时钟模式 √ 单时钟模式 √ √ √ 来自相邻LAB块的直接互连、R4互连和C4互连都可以驱动M4K RAM的本地互连,最多可达16根线的M4K RAM块的数据输出可以直接驱动R4互连、C4互连以及左右相邻的LAB直接互连。LAB行时钟提供M4K RAM块的时钟,M4K RAM块的本地互连将来自M4K相邻的LAB块的直接互连、R4互连和C4互连的信号转换为地址信号与数据输入信号。图2.17所示为M4K RAM块的布线。
混合宽度的真双口存储器模式是允许读/写端口宽度不同的简单双口存储器 混合宽度的简单双口存储器模式是允许读/写端口宽度不同的真双口存储器 用M4K RAM块实现移位寄存器,每个时钟的下降沿写入,上升沿读出 M4K RAM块支持ROM模式,ROM中的内容由.mif文件初始化 用M4K RAM块可以实现单时钟或双时钟的FIFO,但不允许对空FIFO进行同时读/写 表2.7 M4K RAM块的时钟模式 说明 这种模式下,M4K RAM块的A口和B口分别采用不同的时钟,时钟A控制A口所有的寄存器,时钟B控制B口的所有寄存器 两个时钟,一个控制所有的控制输入寄存器,包括输入数据、wren以及地址;而另外一个控制M4K RAM块的所有控制输出寄存器
图2.17 M4K RAM块的布线
7、嵌入式乘法器
嵌入式乘法器为Cyclone II系列FPGA提供了数字信号处理(Digital Signal Processing,DSP)的能力,可以用来实现快速傅里叶变换(FFT)、离散余弦变换(DCT)及有限脉冲响应(FIR)等数字信号处理,使Cyclone II系列FPGA可以高效地用于音频/视频信号处理。Cyclone II系列FPGA的嵌入式乘法器可以配置成9x9或18x18的乘法器进行工作,在这两种工作模式下,如果同时使用输入/输出寄存器,则最高性能可达到250MHz。各种器件的乘法器资源见表2.9。
表2.9 Cyclone II系列乘法器资源 器件 嵌入式乘嵌入式乘可以使用的9x9的嵌可以使用的18x18的嵌法器列 法器数量 入式乘法器数量 入式乘法器数量 EP2C5 1 13 26 13 EP2C8 1 18 36 18 EP2C20 1 26 52 26 EP2C35 1 35 70 35 EP2C50 2 86 172 86 EP2C70 3 150 300 150 嵌入式乘法器由两个输入寄存器、一个乘法单元、一个输出寄存器以及相关的控制信号组成,其内部结构如图2.18所示。如表2.9所示,嵌入式乘法器按列排列,根据器件的不同,可以是1?3列。嵌入式乘法器的高度与LAB行的高度一样。嵌入式乘法器在Cyclone II系列FPGA中的位置如图2.19所示。
图2.18嵌入式乘法器的结构
图2.19嵌入式乘法器在Cyclone II中的位置
乘法器的接口布线如图2.20所示。来自相邻LAB块的直接互连、R4互连和C4互连都可以驱动乘法器的行接口互连,乘法器可以通过行接口互连与左右相邻的LAB通信。左右LAB块最多可以各有16根信号线与乘法器的行接口互连连接。乘法器的行接口互连提供乘法器的输入,乘法器可以直接输出到R4互连、C4互连或左右LAB的本地互连。
图2.20乘法器的接口布线
乘法器有两种工作模式:9x9模式和18x18模式。图2.21是乘法器的18位工作模式,此时乘法器配置成一个18x18的乘法器。这种模式下的两个输入操作数最多可以是18位,它们可以是符号数,也可以是无符号数,输入/输出都可以寄存。
9x9模式下,一个嵌入式乘法器块可以配置成两个9x9的乘法器,这种模式下每个乘法器的两个输入操作数最多可以是9位,可以是符号数,也可以是无符号数,输入/输出都可以寄存。每个乘法器只有一个signa和一个signb,当一个乘法器用作两个9x9的乘法器时,输入数据A的两个输入符号必须相同,输入数据B的两个输入也必须具有相同的符号表示。图2.22是嵌入式乘法器的9位工作模式。