📄 top.v
字号:
//`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 09:09:21 08/29/2006 // Design Name: // Module Name: top // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module top(clkin, rst, // B, NCS0_n, NWE_n, addr, DataIN, SINE1, SINE2, SINE3, SINE4, SINE5, SINE6, SINE7, SINE8, 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 [7:0]SINE1; //output sin waveoutput [7:0]SINE2;output [7:0]SINE3;output [7:0]SINE4;output [7:0]SINE5;output [7:0]SINE6;output [7:0]SINE7;output [7:0]SINE8;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;reg [7:0]SINE2;reg [7:0]SINE4;reg [7:0]SINE6;reg [7:0]SINE8;wire CLK0;//wire CLK180t;wire CLKDV_OUT;my_dcm1 instance_name ( .LOCKED_OUT(), .CLKIN_IN(clkin), .CLK180_OUT(), .CLKFX_OUT(CLKDV_OUT), .CLK0_OUT(CLK0), .CLKIN_IBUFG_OUT() );reg [15:0] CONTROL;reg [2:0] num;//reg [3:0] num;//reg [7:0] SINE;//reg [15:0] data;parameter wordwidth_data=16,memsize_data=32;reg [wordwidth_data-1:0] ram_data [memsize_data-1:0];wire [27:0] clkdata0;wire clk_x0;assign clkdata0 = 28'd200000000;counter counterclk(rst,CLK0,clk_x0,clkdata0);always @(posedge CLK0) begin SINE2<=8'b11111111; SINE4<=8'b11111111;// SINE6<=8'b11111111;// SINE8<=8'b11111111; end/*always @(posedge clk_x0 or negedge clk_x0) begin if(clk_x0) SINE2<=8'b10000000; else SINE2<=8'b11111111; end always @(posedge clk_x0 or posedge rst) begin if(rst) begin SINE6<=8'b00010000; num<=4'b0000; end else begin if(num==0) begin SINE6<=8'b00010000; num<=num+4'b0001; end else begin SINE6<=SINE6+8'b00010000; num<=num+4'b0001; end end endalways @(posedge clk_x0 or posedge rst) begin if(rst) begin SINE8<=8'b00010000; num<=4'b0000; end else begin if(num==0) begin SINE8<=8'b00010000; num<=num+4'b0001; end else begin SINE8<=SINE8+8'b00010000; num<=num+4'b0001; end end end*/ always @(posedge clk_x0 or posedge rst) begin if(rst) begin SINE6<=8'b00100000; num<=3'b000; end else begin if(num==0) begin num<=num+3'b001; SINE6<=8'b00100000; end else begin SINE6<=SINE6+8'b00001000; num<=num+3'b001; end end endalways @(posedge clk_x0 or posedge rst) begin if(rst) begin SINE8<=8'b00100000; num<=3'b000; end else begin if(num==0) begin num<=num+3'b001; SINE8<=8'b00100000; end else begin SINE8<=SINE8+8'b00100000; num<=num+3'b001; end end endalways @(posedge NWE_n or posedge rst)if(rst)beginram_data[0]<=16'b0000001111110000;//sclr+we//ram_data[1]<=16'b0000100011110111;ram_data[1]<=16'b0000000001000001;ram_data[2]<=16'b0000100011110111; //频率控制字ram_data[3]<=16'b0000001010001111;ram_data[4]<=16'b0000100011110111;ram_data[5]<=16'b0000100011110111;ram_data[6]<=16'b0000100011110111;ram_data[7]<=0;ram_data[8]<=0; //相位控制字ram_data[9]<=0;ram_data[10]<=0;ram_data[11]<=16'b1000000000000000;ram_data[12]<=0;//ram_data[13]<=16'b0000011111111111;ram_data[13]<=16'b0000011111111111;ram_data[14]<=0; //相位步长控制字ram_data[15]<=0;ram_data[16]<=0;ram_data[17]<=0;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]<=0;endelse if(NCS0_n==0) begin //ram_data[1]<=16'b0000010011110111; ram_data[addr]<=DataIN; end else ram_data[addr]<=ram_data[addr]; always @ (posedge CLK0 or posedge rst)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;end//else if(NCS0_n==1)elsebegin CONTROL<=ram_data[0]; 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 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(SINE3), .SINE3(SINE5), .SINE4(SINE7)// .SINE5(SINE5), // .SINE6(SINE6) );assign clk_out=~CLKDV_OUT;/*always @(posedge clk_x0)begin SINE<=data[7:0];end*/endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -