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

📄 fpga_port.v

📁 基于FPGA的频率相位可调DDS信号发生器
💻 V
字号:
module FPGA_BUS_PORT(clk,cs,wr,rd,data,add,reg1_out,reg2_out,
					clk_out,cs1,wave_out1,DA_clk_out,DA_sleep_out);
input clk,cs,wr,rd;
inout[15:0] data;
input[7:0] add;
output[15:0] reg1_out,reg2_out;
output clk_out;
input cs1;
reg[15:0] data;
output[11:0] wave_out1;
output DA_clk_out,DA_sleep_out;
assign DA_sleep_out=1'b0;
///////////////////////////
reg[15:0] reg0,reg1,reg2;
parameter reg1_add=8'ha5;//寄存器1地址映射到0x30014a00
parameter reg2_add=8'ha6;//寄存器2地址映射到0x30014c00
assign reg1_out=reg1;
assign reg2_out=reg2;
///////////////////////////
wire inter_clk;
clkpll pll1(
	.inclk0(clk),
	.c0(inter_clk));
assign clk_out=clk;
assign DA_clk_out=inter_clk;
///////////////////////////
///////////////////////////方波发生部分
parameter fre_factor_hi_add=8'ha7;
parameter fre_factor_low_add=8'ha8;
reg[15:0] fre_factor_hi;//频率控制字寄存器高位,映射地址0x30014e00
reg[15:0] fre_factor_low;//频率控制字存器低位,映射地址0x30015000
wave_gen_new wave_gen(
		.clk(inter_clk),
		.fre_factor_hi(16'h028f),
		.fre_factor_low(16'h5c29),
		.out1(wave_out1),
		);
///////////////////////////
	

always @(posedge clk)
begin
	if(~cs)
	begin
		case(add)
		reg1_add:
		begin
			if(~wr)
				reg1<=data;
			if(~rd)
				data<=reg1;
		end
		
		reg2_add:
		begin
			if(~wr)
				reg2<=data;
			if(~rd)
				data<=reg2;
		end
		
		fre_factor_hi_add:
		begin
			if(~wr)
				fre_factor_hi<=data;
			if(~rd)
				data<=fre_factor_hi;
		end
		
		fre_factor_low_add:
		begin
			if(~wr)
				fre_factor_low<=data;
			if(~rd)
				data<=fre_factor_low;
		end
		
		default:
			data<=16'hzzzz;
		endcase
	end
	else
		data<=16'hzzzz;
end		

endmodule

⌨️ 快捷键说明

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