仓库管理系统网站建设,个人证书查询网全国联网,劳务输送网站建设方案,广州铁路投资建设集团网站名称#xff1a;通用FIFO设计深度8宽度64#xff0c;verilog仿真
软件#xff1a;Quartus
语言#xff1a;verilog
本代码为FIFO通用代码#xff0c;其他深度和位宽可简单修改以下参数得到
reg [63:0] ram [7:0];//RAM。深度8#xff0c;宽度64
代码功能#xff1a…名称通用FIFO设计深度8宽度64verilog仿真
软件Quartus
语言verilog
本代码为FIFO通用代码其他深度和位宽可简单修改以下参数得到
reg [63:0] ram [7:0];//RAM。深度8宽度64
代码功能
使用verilog编写FIFO
要求
FIFO为先入先出队列
FIFO深度为8数据宽度为64
FIFO具有clkrst_n(异步复位)wr_enrd_en,data_in[63:0], data_out[63:0], empty, full信号
写数据下拍生效读数据当拍生效
空满信号下拍生效
用verilog编写简单Testbench对实验1的FIFO进行验证随机生成读写信号满足空满要求写数据等通过看波形以及打印判断读数据正确性 演示视频http://www.hdlcode.com/index.php?mhomecViewaindexaid207 FPGA代码资源下载网hdlcode.com
代码下载
FIFO设计深度8宽度64verilog仿真代码在文末付费下载软件Quartus语言verilog代码功能使用verilog编写FIFO要求FIFO为先入先出队列FIFO深度为8数据宽度为64FIFO具有clkrst_n(异步复位)wr_enrd_en,data_in[63:0], data_out[63:0], empty, full信号写数据下拍生效读数据当拍生效空名称FIFO设计深度8宽度64verilog仿真代码在文末付费下载软件Quartus语言verilog代码功能使用verilog编写FIFO要求FIFO为先入先出队列FIFO深度为8数据宽度为64FIFO具有clkrst_n(异步复位)wr_enrd_en,data_in[63:0], data_out[63:0], empty, full信号写数据下拍生效读数据当拍生效空http://www.hdlcode.com/index.php?mhomecViewaindexaid207
部分代码展示
//FIFO深度为8数据宽度为64
module a_fifo
(
input clk,//时钟
input rst_n,//复位
input [63:0] data_in,//fifo写数据
input wr_en,//写使能
input rd_en,//读使能
output [63:0] data_out,//读数据
output empty,//空信号
output full//满信号
);
reg [63:0] ram [7:0];//RAM。深度8宽度64
reg [3:0] count4d0;
reg [3:0] rp4d0;
reg [3:0] wp4d0;
integer i;
always(posedge clk or negedge rst_n)
if(!rst_n)begin//复位
wp4d0;
rp4d0;
count4d0;
for(i0;i8;ii1)
ram[i]64b0;//清零
end
else
case({rd_en,wr_en})
2b00:countcount;
2b01://单写FIFO
if(~full)begin//未满
ram[wp]data_in;//存入fifo
if(wp4d7)
wp4d0;//写地址循环累加
else
wpwp4d1;
countcount4d1;
rprp;
end
2b10://单读FIFO
if(~empty)begin//未空
if(rp4d7)
rp4d0;//读地址循环累加
else
rprp4d1;
countcount-4d1;
end
2b11://同时读写FIFO
if(empty)begin//FIFO为空只能写
ram[wp]data_in;
if(wp4d7)
wp4d0;设计文档
设计文档.doc
1. 工程文件 2. 程序文件 3. 程序编译 4. Testebnch 5. 仿真图
仿真图依次仿真了如下功能 具体功能1/2/3对应如下
1.写FIFO 4次再读4次FIFO读空 2.写FIFO 5次然后同时读写5次最后读5次FIFO读空 3.连续写FIFO 8次FIFO写满 打印信息