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

📄 dds1.v

📁 Verilog编程
💻 V
字号:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date:    08:51:50 04/04/2007 // Design Name: // Module Name:    DDS1 // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module DDS1(   DATA_FRE,	DATA_PHA,
	PHA_ACC,   WE,   CLK,   SCLR,	rst,	   SINE   );    input [15 : 0] DATA_FRE,DATA_PHA,PHA_ACC;   input WE;   input CLK;   input SCLR;	input rst;	   output [10 : 0] SINE;reg [1:0]flag;	reg [15 : 0] acc;reg [15 : 0] acc_t;reg [15 : 0] DATA_FRE_t;				 //允许频率改变控制字reg [15 : 0] DATA_PHA_t;			    //允许相位改变控制字
reg [15 : 0] PHA_ACC_t;              //允许相位步长改变控制字
reg [15 : 0] PHA_ACC_t1;			    //相位累加

wire[9:0]SINE_T;
//reg [25:0] count;	always @ (posedge CLK or posedge rst)if(rst)beginacc<=0;acc_t<=0;DATA_FRE_t<=0;DATA_PHA_t<=0;
PHA_ACC_t<=0;
flag<=0;
endelsebeginif(WE)beginDATA_FRE_t<=DATA_FRE;DATA_PHA_t<=DATA_PHA;
PHA_ACC_t<=PHA_ACC;endelsebeginDATA_FRE_t<=DATA_FRE_t;DATA_PHA_t<=DATA_PHA_t;endacc_t<=acc_t+DATA_FRE_t;acc<=acc_t+DATA_PHA_t+PHA_ACC_t1;   //

if(acc[15]==0)
	begin
flag<=2;
end
else
	begin
flag<=0;
end
end
wire [25:0] clkdata;
wire clk_x;
assign clkdata = 26'd50000000;

counter counterclk(rst,CLK,clk_x,clkdata);	//	分频

always @ (posedge clk_x or posedge rst)

if(rst)
PHA_ACC_t1<=0;
else
PHA_ACC_t1<=PHA_ACC_t1+PHA_ACC_t;

	rom1 rom(	.addr(acc[15:5]),	.clk(CLK),	.dout(SINE_T),	.en(~SCLR)	);
 assign SINE=SINE_T*(flag-1)+11'b10000000000;endmodule

⌨️ 快捷键说明

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