verilog实现4个fifo调度
module fifo_4 (clk, rst, din, wr_en, rd_en, dout);
input clk; //时钟信号
input rst; //复位信号
input [7:0] din; //数据输入端口
input wr_en; //写使能端口
input rd_en; //读使能端口
output [7:0] dout; //数据输出端口
//定义fifo的存储器空间为8个字节,每个字节8位,一共64位。
reg [63:0] mem[7:0];
//当前读地址,从0开始到7结束,写的时候不动;
reg [2:0] curr_rd = 0;
//当前写地址,从0开始到7结束;
reg [2:0] curr_wr = 0;
always@(posedge clk or posedge rst) begin
if(rst) begin
curr_rd <= 0 ;
curr_wr <= 0 ;
end else begin
if(wr_en) begin
mem[curr_wr] <= din ;
curr_wr <= (curr_wr == 7)? 0 : (curr_wr + 1'b1);
end
if(rd_en) begin
dout <= mem[curr
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!