基于“ ping pang buffer”的数据流设计Verilog代码Quartus仿真

名称:基于“ ping pang buffer”的数据流设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

基于“ ping pang buffer”的数据流设计

内容

  在数据流控制中,ping-pang    buffer是一种典型的设计思想,具体流程框图如图1所示。其中“ Traffic Generator”为流量生成器,生成的数据流通过“ Input Data Mux”模块等时写入FIFO0与FIFO1两个异步FIFO中.“ Output Data Mux”模块等时地从两个FIFO中读取数据,输送至“ Accumulator”模块进行累加。通过“ Input Data Mux”模块与“ Out put

Data Mux”模块按节拍,相互配合的切换,经过缓冲的数据流无停顿地送到“ Accumulato模块进行处理,从外部来看数据流的输入输出均为不间断的,因此乒乓操作非常适合对数据流进行流水线式处理。

要求.png

设计细节

  每一个时钟周期, Traffic Generator都生成32bit随机数据din[31:0]与伴随数据的lbit数据有效信号wren。在第一个时钟周期, Input Data Mux模块将 Traffic Generator与FIF0O相连,将数据写入FIFO0,此时FIFO1处于空闲状态。当FIFO0写满后, Input Data

Mux模块立即将Traffic    Generator与FIF01相连,将数据写入FIFOI,此时OutputDatMux选中FIF00,将数据从 FIFOO中读出。当 FIFOL写满后, Input Data Mux模块立即将

TrafficGenerator与FIF00相连,将数据写入FIF00,此时    utputDataMux选中FIF01

将数据从FIFO1中读出。之后数据读写均按此规则来

  从 Output Data Mux输出的数据均送至 Accumulator模块进行累加,累加的数据存至dout[63:0]寄存器中。比较累加结束后dout的值与实际输出数值之和是否一致

提示:

(1)系统时钟频率为200Mhz:

(2)FIFO为同步时钟FIFO,深度为42,使用 Verilog进行编写

(3)TrafficGenerator至少生成20000组数据。

(4)仿真时需将波形截图,并配有文字说明

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

部分代码展示:

//乒乓FIFO控制
module fifo_ctrl(
input clk,
input rst,
input [31:0] data,//输入数据
input wr_en_0,
input wr_en_1,
output full_0,//fifo0满
output full_1,//fifo1满
output rd_en_0,//fifo0读使能
output rd_en_1,//fifo1读使能
output [31:0] dout_0,//FIFO0 输出
output [31:0] dout_1//FIFO1 输出
);
assign rd_en_0=!wr_en_0;
assign rd_en_1=!wr_en_1;
//FIFO 0
a_fifo FIFO0
(
.clk  (clk),//200M
.rst  (rst),
.din  (data),//fifo写数据
.wr_en(wr_en_0),//写使能
.rd_en(rd_en_0),//读使能
.dout (dout_0),//读数据
.empty(empty_0),//空信号
.full (full_0)//满信号
);
//FIFO 1
a_fifo FIFO1
(
.clk  (clk),//200M
.rst  (rst),
.din  (data),//fifo写数据
.wr_en(wr_en_1),//写使能
.rd_en(rd_en_1),//读使能
.dout (dout_1),//读数据
.empty(empty_1),//空信号
.full (full_1)//满信号
);
endmodule
源代码

 扫描文章末尾的公众号二维码

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值