异步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