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

📄 sinewave.v

📁 6通道正弦波发生器
💻 V
字号:

module top(clkin,			  rst,			  			 // B,			 			            NCS0_n,			  NWE_n,			  addr,			  DataIN,						  			  SINE1,			  SINE2,			  SINE3,			  SINE4,
			  SINE5,			  SINE6,			  clk_out			  		            	);input clkin;              //50M clock;input rst;//input B;//input CE;      //input SCLR;					  //asynchronism clear//input MCK;            //input NCS0_n;input NWE_n;            //input [4:0] addr;input [15:0] DataIN;                       output [10:0]SINE1; 		  //output sin waveoutput [10:0]SINE2;output [10:0]SINE3;output [10:0]SINE4;
output [10:0]SINE5;output [10:0]SINE6;output clk_out;             //D/A clkreg [15:0] DATA_FRE1,DATA_PHA1,PHA_ACC1;	 //频率控制字、相位控制字、相位步长reg [15:0] DATA_FRE2,DATA_PHA2,PHA_ACC2;reg [15:0] DATA_FRE3,DATA_PHA3,PHA_ACC3;reg [15:0] DATA_FRE4,DATA_PHA4,PHA_ACC4;
reg [15:0] DATA_FRE5,DATA_PHA5,PHA_ACC5;reg [15:0] DATA_FRE6,DATA_PHA6,PHA_ACC6;wire CLK0;//wire CLK180t;wire CLKDV_OUT;

my_dcm1 instance_name (
    .LOCKED_OUT(), 
    .CLKIN_IN(clkin), 
    .CLK180_OUT(), 
    .CLKFX_OUT(CLKDV_OUT), 			// 输入时钟50M,输出50M
    .CLK0_OUT(CLK0), 
    .CLKIN_IBUFG_OUT()
    );reg [15:0] CONTROL;	  //控制通道开关

reg [15:0] trig;   //触发开关

parameter wordwidth_data=16,memsize_data=32;reg [wordwidth_data-1:0] ram_data [memsize_data-1:0];always @(posedge NWE_n  or posedge rst)if(rst)beginram_data[0]<=16'b0000001111110000;
ram_data[1]<=16'b0000100011110110;ram_data[2]<=16'b0000100011110110; // 频率控制字ram_data[3]<=16'b0000100011110110;ram_data[4]<=16'b0000100011110110;ram_data[5]<=16'b0000100011110110;ram_data[6]<=16'b0000100011110110;
ram_data[7]<=0;								//相位控制字ram_data[8]<=0;ram_data[9]<=0;ram_data[10]<=0;ram_data[11]<=0;ram_data[12]<=0;
ram_data[13]<=0;ram_data[14]<=0;							//相位步长控制字ram_data[15]<=0;
ram_data[16]<=0;ram_data[17]<=0;
//ram_data[17]<=16'b0000011111111111;ram_data[18]<=0;
ram_data[19]<=0;	  ram_data[20]<=0;ram_data[21]<=0;ram_data[22]<=0;ram_data[23]<=0;ram_data[24]<=0;


ram_data[25]<=0;ram_data[26]<=0;ram_data[27]<=0;ram_data[28]<=0;ram_data[29]<=0;
ram_data[30]<=0;ram_data[31]<=1;	  //31用于存放触发字endelse if(NCS0_n==0)
      begin
		//ram_data[1]<=16'b0000010011110111;  
		      ram_data[addr]<=DataIN;
      end     else
	  begin      ram_data[addr]<=ram_data[addr];
		end    

always @ (posedge CLK0 or posedge rst)
if(rst)
trig<=1;
else
trig<=ram_data[31];
always @ (posedge CLK0 or posedge rst)			  //50M时钟if(rst)beginCONTROL<=0;
DATA_FRE1<=0;DATA_FRE2<=0;DATA_FRE3<=0;DATA_FRE4<=0;
DATA_FRE5<=0;DATA_FRE6<=0;
DATA_PHA1<=0;DATA_PHA2<=0;DATA_PHA3<=0;DATA_PHA4<=0;
DATA_PHA5<=0;DATA_PHA6<=0;

PHA_ACC1<=0;
PHA_ACC2<=0;
PHA_ACC3<=0;				 //控制字初始化
PHA_ACC4<=0;
PHA_ACC5<=0;
PHA_ACC6<=0;end//else if(NCS0_n==1)else if(trig==1)begin CONTROL<=ram_data[0];
 //trig<= ram_data[31]  DATA_FRE1<=ram_data[1];
 //DATA_FRE1<=16'b0000010011110111;
 DATA_FRE2<=ram_data[2]; DATA_FRE3<=ram_data[3];		  // 频率控制字 DATA_FRE4<=ram_data[4];
 DATA_FRE5<=ram_data[5]; DATA_FRE6<=ram_data[6];  DATA_PHA1<=ram_data[7]; DATA_PHA2<=ram_data[8];				//相位控制字 DATA_PHA3<=ram_data[9]; DATA_PHA4<=ram_data[10];
 DATA_PHA5<=ram_data[11]; DATA_PHA6<=ram_data[12];
 
 PHA_ACC1<=ram_data[13];
 PHA_ACC2<=ram_data[14];
 PHA_ACC3<=ram_data[15];				 //相位步长控制字
 PHA_ACC4<=ram_data[16];
 PHA_ACC5<=ram_data[17];
 PHA_ACC6<=ram_data[18];
 end 
else
begin CONTROL<=CONTROL;
 //trig<= ram_data[31]  DATA_FRE1<=DATA_FRE1;
 //DATA_FRE1<=16'b0000010011110111;
 DATA_FRE2<=DATA_FRE2; DATA_FRE3<=DATA_FRE3;		  // 频率控制字 DATA_FRE4<=DATA_FRE4;
 DATA_FRE5<=DATA_FRE5; DATA_FRE6<=DATA_FRE6;  DATA_PHA1<=DATA_PHA1; DATA_PHA2<=DATA_PHA2;				//相位控制字 DATA_PHA3<=DATA_PHA3; DATA_PHA4<=DATA_PHA4;
 DATA_PHA5<=DATA_PHA5; DATA_PHA6<=DATA_PHA6;
 
 PHA_ACC1<= PHA_ACC1;
 PHA_ACC2<= PHA_ACC2;
 PHA_ACC3<= PHA_ACC3;				 //相位步长控制字
 PHA_ACC4<= PHA_ACC4;
 PHA_ACC5<= PHA_ACC5;
 PHA_ACC6<= PHA_ACC6;
 end 


dds4 my_dds4(    .DATA_FRE1(DATA_FRE1),     .DATA_FRE2(DATA_FRE2),     .DATA_FRE3(DATA_FRE3),     .DATA_FRE4(DATA_FRE4),
    .DATA_FRE5(DATA_FRE5),     .DATA_FRE6(DATA_FRE6),
    	     .DATA_PHA1(DATA_PHA1),     .DATA_PHA2(DATA_PHA2),     .DATA_PHA3(DATA_PHA3),     .DATA_PHA4(DATA_PHA4),
    .DATA_PHA5(DATA_PHA5),     .DATA_PHA6(DATA_PHA6),
	 
	 .PHA_ACC1(PHA_ACC1),
	 .PHA_ACC2(PHA_ACC2),
	 .PHA_ACC3(PHA_ACC3),
	 .PHA_ACC4(PHA_ACC4),
	 .PHA_ACC5(PHA_ACC5),
	 .PHA_ACC6(PHA_ACC6),
	     .CONTROL(CONTROL),     //.BUTTON(B),     .RST(rst),     .CLK0(CLKDV_OUT), 
	     .SINE1(SINE1),     .SINE2(SINE2),     .SINE3(SINE3),     .SINE4(SINE4),
    .SINE5(SINE5),     .SINE6(SINE6)    );assign clk_out=~CLKDV_OUT;endmodule

⌨️ 快捷键说明

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