自定义fifo接口控制器

上传人:工**** 文档编号:482069799 上传时间:2023-09-05 格式:DOCX 页数:21 大小:379.25KB
返回 下载 相关 举报
自定义fifo接口控制器_第1页
第1页 / 共21页
自定义fifo接口控制器_第2页
第2页 / 共21页
自定义fifo接口控制器_第3页
第3页 / 共21页
自定义fifo接口控制器_第4页
第4页 / 共21页
自定义fifo接口控制器_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《自定义fifo接口控制器》由会员分享,可在线阅读,更多相关《自定义fifo接口控制器(21页珍藏版)》请在金锄头文库上搜索。

1、自定义fifo接口控制器目的:以自定义组件的形式添加到 sopc 中,用于 nios ii 读写 fifo 实现:verilog,读写分开设计。一、fifo读写操作接口控制器的设计1、fifo写操作接口控制器的设计1) 采用基本写传输。data fifo 输入数据2) 有三个与 fifo 连接的信号: full fifo 满标志 。wrreq fifo 写请求(3) data的位数可调,范围132bit之间。(4) 因为需要有参数可调,因此设计为一个top模块加上一个avalon模块的形式。代码清单:fifo_write_top.v 代码如下timescale 1ps/1ps说明: 1、该模块

2、是自定义的fifo写操作控制器的顶层文件2、采用基本写传输,每次操作时仅维持一个时钟周期3、fifo数据格式可调,默认是16bit4、从设计时序上看,从端口收到write信号到fifo接收到数据间存在两个时钟周期作者:tzj时间:2011-09-30版本;V1.0module fifo write top#(/ parameters parameter bits_of_data = 16 / 可调参数)(/ avalon clock interface signals input elk,总线时钟input reset_n,/ 总线复位/ signals for avalon-mm slave

3、 port/地址线/数据字节使能/写数据input chipselect, / 片选 input 1:0 address, input 3:0 byteenable, input write,/ 写请求 input 31:0 writedata,/ fifo interface signals input full,/ fifo 满标志output bits_of_data-1:0 data, / 写入 fifo 数据 output wrreq/ fifo 写请求);defparam i1.bits_of_data = bits_of_data; 调整 data 位数fifo_write_av

4、alon i1(/ avalon clock interface signals .clk( clk ),.reset_n( reset_n ),/ signals for avalon-mm slave port .chipselect( chipselect ),.address( address ),.byteenable( byteenable ), .write( write ),.writedata( writedata ),/ fifo interface signals.data( data ),.full( full ),.wrreq( wrreq ); endmodulef

5、ifo_write_avalon.v 代码如下timescale lps/lps说明:1、该模块是自定义的fifo写操作控制器的核心文件2、avalon总线信号,每次操作时仅维持一个时钟周期3、fifo数据格式可调,默认是16bit4、从设计时序上看,从端口收到write信号到fifo接收到数据间存在两个时钟周期作者: 时间: 版本:tzj2011-09-30V1.0module fifo_write_avalon (/ avalon clock interface signalselk,reset_n,/ signals for avalon-mm slave port chipselect

6、,address,byteenable,write,writedata,/ fifo interface signalsdata,full,wrreq);/ parametersparameter bits_of_data = 16; / 对应 nios ii 下可修改的参数/=/端口声明/ avalon clock interface signalsinput clk;总线时钟input reset_n;/ 总线复位/ signals for avalon-mm slave portinput chipselect; / 片选 input 1:0 address; input 3:0 byt

7、eenable; input write;/ 写请求 input 31:0 writedata;/地址线/数据字节使能/写数据/ fifo满标志output bits_of_data-1:0 output wrreq;reg wrreq;/=data; /写入fifo数据/写fifo请求/ fifo interface signals input full;/寄存器reg 31:0 write_data_reg; / 写数据寄存器reg write_data_reg_sel; /写数据寄存器使能/=/对控制寄存器地址进行译码always ( address )beginwrite_data_r

8、eg_sel = 1b0;case ( address )2b00 :write_data_reg_sel = 1b1;default:write_data_reg_sel = 1b0;endcaseend/=/写入fifo数据寄存器always ( posedge elk or negedge reset_n ) / 上升沿时获取数据 if ( !reset_n )write_data_reg = 32b0;else if ( write & chipselect & write_data_reg_sel & !full ) beginif ( byteenable0)write_data_

9、reg 7:0 = writedata 7:0 ;if ( byteenable1)write_data_reg 15:8 = writedata 15:8 ;if ( byteenable2)write_data_reg 23:16 = writedata 23:16 ; if ( byteenable3)write_data_reg 31:24 = writedata 31:24 ;end/=/写fifo请求always ( posedge elk or negedge reset_n )if ( !reset_n ) wrreq = 1bO;else if ( write & chips

10、elect & write_data_reg_sel & !full ) / 非满 wrreq = 1b1;elsewrreq = 1b0;/=/写数据assign data = write_data_regbits_of_data-1:0;endmodule2、fifo 读操作接口控制器的设计采用带两个等待周期的读传输。1)采用带 2 个等待周期的读传输。2)有四个与 fifo 连接的信号q fifo输出数据 empty fifo 空标志 usedw fifo 数据状态 rdreq fifo 读请求(3) q的位数可调,范围132bit之间;usedw的位数可调,根据fifo的usedw位数

11、而设定。(4) 因为需要有参数可调,因此设计为一个top模块加上一个avalon模块的形式。代码清单:fifo_read_top.v 代码如下timescale 1ps/1ps说明: 1、该模块是自定义的fifo读操作控制器2、avalon总线信号,每次操作时仅维持一个时钟周期3、读操作有两个时钟的等待4、状态读的是fifo的usedw,位数可调,默认6bit5、fifo外设的数据位数可调,默认16bit作者: tzj & cj时间:2011-09-30版本:V1.0 module fifo_read_top#(/ parametersparameter bits_of_q = 16, par

12、ameter bits_of_usedw = 6)(/ avalon elk interface signalsinput elk,input reset_n,/ signals for avalon-mm slave portinput ehipseleet,input 1:0 address,input read, output 31:0 readdata, / fifo interface signals input bits_of_q-1:0 q,input empty,input bits_of_usedw-1:0 usedw, output rdreq);defparam 订.bi

13、ts_of_q = bits_of_q; defparam 订.bits_of_usedw = bits_of_usedw;fifo_read_avalon i1(/ avalon elk interface signals.elk( elk ),.reset_n( reset_n ),/ signals for avalon-mm slave port .chipselect( ehipseleet ), .address( address ),.read( read ),.readdata( readdata ),/ fifo interface signalsq( q ),.empty(empty),.usedw( usedw ),.rdreq( rdreq );endmodulefifo_read_avalon.v 代码如下timescale lps/lps说明: 1、该模块是自定义的fifo读操作控制器2、avalon总线信号,每次操作时仅维持一个时钟周期3、读操作有两个时钟的等待4、状态读的是fifo的usedw,位数可调,默认6bit5、fifo外设的数据位数可调,默认16bit作者: tzj & cj时间:2011-09-30版本:V1.0 module fifo_read_avalon (/ avalon elk interface signals e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号