http://blog.sina.com.cn/s/blog_6db275da01016xan.html
m4k就是一个存储单元,具体点就是以4kbits,4k为一块
RAM fifo ROM等可以由M4K等块存储单元组成也可以用LUT组成,按设计需要选择相应的组成方式;
CYCLONE II系列器件的一个M4K最多可以配置36bit的位宽,如果再大了,那么就会占用其它的M4K块。
CYCLONE II系列器件中的M4K配置
CYCLONE II系列器件中的M4K配置为以下模式:单口RAM模式、移位寄存器模式、只读存储器(ROM)模式和先入先出(fifo)模式。方法如下:
一、 单口RAM模式
单口RAM模式是最简单的工作模式,在单口RAM模式下,存储器不能同时进行读写操作,一个M4K存储块在单口模式下可以被配置为以下规格:4K×1、2K×2、1K×4、512×8、512×9、256×16、256×18、128×32、128×36。单口RAM配置接口定义与描述如下表:
信号名称 | 方向 | 描述 |
clk | input | 时钟信号 |
ram_wr | input | RAM写入使能信号,高表示写入 |
ram_addr[11:0] | input | RAM地址总线(不一定是12位) |
ram_din[7:0] | input | 8位RAM写入数据总线 |
ram_dout[7:0] | output | 8位RAM读出数据总线 |
配置步骤 假设已在Quartus II9.0建好一工程m4k_ram,选择Tools—>megawizard—>next,出现下图,在which device family will you be using?选项中选择所有器件的家族系列;在which type of output file do you want to create?选择输出文件的描述语言;在what name do you want for the output file?填上输出文件的文件名;在左边memory compiler下选择RAM:1-PORT,点击NEXT,弹出megawizard plug-in manager-RAM进行单口RAM的详细配置。
图1
图2
二、 只读存储器(ROM)模式
利用CYCLONE II系列器件中的M4K生成单口ROM,配置步骤如下:
步骤1 先生成一个 .mif原始数据文件,用于配置ROM时引用,初始化ROM。假设已建好一个工程,在Quartus II选择File—>new—>memory initialization file,如图3所示,单击OK,在弹出的对话框里words填上数据个数,size填上数据的位宽,单击OK,弹出如图4所示,将数据依次填充到文件中,保存并命名为XX.Mif。
步骤2 进入megawizard界面,如图5所示,选择ROM:1-PORT,在which type of output file do you want to create?选择输出文件的描述语言;在what name do you want for the output file?填上输出文件的文件名,单击NEXT。
步骤3 弹出新的对话框如图6所示,进行详细的配置。
图3
图4
图5
图6
三、 先入先出(fifo)模式
先入先出(fifo)存储器在各种数字系统中被普遍的应用,经常用做数据缓冲、时钟域变换、多路数据对齐等。先入先出(fifo)存储器分为单时钟和双时钟,单时钟指的是读写使用相同的时钟,因而又称同步FIFO,双时钟指的是读写采用不同的时钟,又称为异步FIFO。
同步FIFO的端口列表
端口名称 | 输入/输出 | 说明 |
data | input | 写入数据,位宽可设定 |
wrreq | input | 写使能 |
rdreq | input | 读请求/读应答 |
clock | input | 时钟信号 |
sclr | input | 同步复位 |
aclr | input | 异步复位 |
q | output | 读出数据,位宽可设定 |
full | output | 满标志 |
almost-full | output | 接近满标志 |
empty | output | 空标志 |
almost-empty | output | 接近空标志 |
usedw | output | 使用量 |
异步FIFO的端口列表
端口名称 | 输入/输出 | 说明 |
wrclock | input | 写入时钟 |
wrreq | input | 写使能,高有效 |
data | input | 数据输入,位宽可设定 |
wrfull | output | FIFO满标志,和写时钟同步,高电平有效 |
wrempty | output | FIFO空标志,和写时钟同步,高电平有效 |
wrusedw | output | FIFO使用量,和写时钟同步 |
rdclock | input | 读时钟 |
rdreq | input | 读请求/读应答,高电平有效 |
q | output | 数据输出,位宽可设定 |
rdfull | output | FIFO满标志,和读时钟同步,高电平有效 |
rdempty | output | FIFO空标志,和读时钟同步,高电平有效 |
rdusedw | output | FIFO使用量,和读时钟同步 |
aclr | input | 异步复位信号,高有效 |
配置步骤 进入megawizard界面,如图7所示,选择FIFO,在which type of output file do you want to create?选择输出文件的描述语言;在what name do you want for the output file?填上输出文件的文件名,单击NEXT。弹出新的对话框如图8所示,进行详细的配置。
图7
图8
四、 移位寄存器模式
CYCLONE II的m4k可以配置的移位寄存器参数不多,包括:一个位宽为W的移们输入数据和相同位宽的移位输出数据;一个输入时钟信号作为数据移入或者移出的锁存信号、可选的时钟使能输入信号和异步清除输入信号;还有一个寄存器深度taps,它可以是一组信号,也可以是好多个小信号。
简单配置步骤如下:
图9
图10