异步FIFO 伪随机序列 伽罗华域GF(q)乘法器 积分梳状滤波器(CIC)等Verilog实例程序代码合集(9例):
CORDIC数字计算机的设计
RS(204,188)译码器的设计
伪随机序列应用设计
伽罗华域GF(q)乘法器设计
常用乘法器设计
常用加法器设计
异步FIFO设计
积分梳状滤波器(CIC)设计
除法器设计
// FIFO顶层模块
module async_fifo (rdata, wfull, rempty, wdata,
wreq, wclk, wrst_n, rreq, rclk, rrst_n);
parameter DATA_WIDTH = 8; // FIFO数据位宽
parameter ADDR_WIDTH = 4; // FIFO地址位宽
output [DATA_WIDTH-1:0] rdata;
output wfull;
output rempty;
input [DATA_WIDTH-1:0] wdata;
input wreq, wclk, wrst_n;
input rreq, rclk, rrst_n;
wire [ADDR_WIDTH-1:0] wptr, rptr;
wire [ADDR_WIDTH-1:0] waddr, raddr;
wire aempty_n, afull_n;
dp_ram dp_ram(.rdata(rdata), // 双端口RAM
.wdata(wdata),
.waddr(wptr),
.raddr(rptr),
.wclken(wreq),
.wclk(wclk));
defparam dp_ram.DATA_WIDTH = DATA_WIDTH,
dp_ram.ADDR_WIDTH = ADDR_WIDTH;
async_cmp async_cmp(.aempty_n(aempty_n), // 异步读/写地址指针比较器
.afull_n(afull_n),
.wptr(wptr),
.rptr(rptr),
.wrst_n(wrst_n));
defparam async_cmp.ADDR_WIDTH = ADDR_WIDTH;
rptr_empty rptr_empty(.rempty(rempty), // 读地址指针与"空"标志控制逻辑
.rptr(rptr),
.aempty_n(aempty_n),
.rreq(rreq),
.rclk(rclk),
.rrst_n(rrst_n));
defparam rptr_empty.ADDR_WIDTH = ADDR_WIDTH;
wptr_full wptr_full(.wfull(wfull), // 写地址指针与"满"标志控制逻辑
.wptr(wptr),
.afull_n(afull_n),
.wreq(wreq),
.wclk(wclk),
.wrst_n(wrst_n));
defparam wptr_full.ADDR_WIDTH = ADDR_WIDTH;
endmodule