⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interleaver.v

📁 无线通信FPGA设计-FPGA源码
💻 V
字号:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    17:15:32 08/12/2007 
// Design Name: 
// Module Name:    interleaver 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module interleaver(clk, reset, x, y);
input clk; //clk和x同频同相 
input reset;
input [15:0] x;
output [15:0] y;

reg [7:0] addra, addrb; //RAM的控制地址
wire [7:0] addrat, addrbt;
reg [3:0] cnt,addr0;
always @(posedge clk) begin
	if(!reset) begin
		addra <= 0;
		addrb <= 0;
		cnt <= 0;
	end
	else begin
	   if(addra == 191) //顺序依次将x写入BLOCK RAM
			addra <= 0;
      else
	      addra <= addra + 1; 
		if (addrb > 175) begin
		    addrb <= addr0;
		    if(cnt == 11)
			   cnt <= 0;
			 else
			   cnt <= cnt + 1;
		end
      else begin
         cnt <= cnt;	
			addrb <= addrb + 16;
		end
	end
end

always @(cnt) begin
		case (cnt)         4'b0000: addr0 <= 0;         4'b0001: addr0 <= 1;         4'b0010: addr0 <= 2;         4'b0011: addr0 <= 3;         4'b0100: addr0 <= 4;         4'b0101: addr0 <= 5;         4'b0110: addr0 <= 6;         4'b0111: addr0 <= 7;         4'b1000: addr0 <= 8;         4'b1001: addr0 <= 9;         4'b1010: addr0 <= 10;    			4'b1011: addr0 <= 11;	         default: addr0 <= 0;			      endcase	
end		

block_ram block_ram(	.addra(addra),	.addrb(addrb),	.clka(clk),	.clkb(clk),	.dina(x),	.doutb(y),	.wea(reset));
	
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -