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

📄 dds.v

📁 FPGA中实现基于查找表方式(LUT)的DDS实现
💻 V
字号:
module dds(clk,           reset,           k,           initial_phase,		     data_out           );input   clk,        reset;input[9:0]  k,		      initial_phase;output[7:0] data_out;// Address accumulatorreg [9:0]   addr_acc;wire[7:0]	  rom_data;wire[7:0]   rom_addr;						// Length of a sine data in a period is 10 bit, 																// but the length of ROM is 8 bit because 																// it only need to store previous 1/4 of a period																																								always @(posedge clk or negedge reset)if(~reset)	addr_acc <= initial_phase;else	addr_acc <= addr_acc+k;	// Address and data convertor of romassign rom_addr = (addr_acc[8])?(~addr_acc[7:0]):(addr_acc[7:0]);		// When Address in [pi/2,pi],[pi*3/2,pi*2], convert address to ROMassign data_out = (addr_acc[9])?({~rom_data[7:0]+1}):(rom_data);    // When Address in [0,pi/2], [pi,pi*3/2], convert the polar of data from ROM																																		// This method only for sine wave		rom rom(.clock(clk),        .aclr(~reset),        .address(rom_addr),        .q(rom_data)        );	endmodule

⌨️ 快捷键说明

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