@@ -39,8 +39,9 @@ module ad_dds #(
39
39
40
40
// data path disable
41
41
42
- parameter DISABLE = 0 ) (
43
-
42
+ parameter DISABLE = 0 ,
43
+ parameter DDS_TYPE = 1 ,
44
+ parameter CORDIC_DW = 14 ) (
44
45
// interface
45
46
46
47
input clk,
@@ -65,35 +66,49 @@ module ad_dds #(
65
66
66
67
// disable
67
68
68
- assign dds_data = (DISABLE == 1 ) ? 16'd0 : dds_data_out;
69
-
70
- // dds channel output
71
-
72
- always @(posedge clk) begin
73
- dds_data_int <= dds_data_0_s + dds_data_1_s;
74
- dds_data_out[15 :15 ] <= dds_data_int[15 ] ^ dds_format;
75
- dds_data_out[14 : 0 ] <= dds_data_int[14 :0 ];
76
- end
77
-
78
- always @(posedge clk) begin
79
- dds_scale_0_d <= dds_scale_0;
80
- dds_scale_1_d <= dds_scale_1;
81
- end
82
- // dds-1
83
-
84
- ad_dds_1 i_dds_1_0 (
85
- .clk (clk),
86
- .angle (dds_phase_0),
87
- .scale (dds_scale_0_d),
88
- .dds_data (dds_data_0_s));
89
-
90
- // dds-2
91
-
92
- ad_dds_1 i_dds_1_1 (
93
- .clk (clk),
94
- .angle (dds_phase_1),
95
- .scale (dds_scale_1_d),
96
- .dds_data (dds_data_1_s));
69
+ generate
70
+ if (DISABLE == 1 ) begin
71
+ assign dds_data = 16'd0 ;
72
+ end else begin
73
+
74
+ assign dds_data = dds_data_out;
75
+
76
+ // dds channel output
77
+
78
+ always @(posedge clk) begin
79
+ dds_data_int <= dds_data_0_s + dds_data_1_s;
80
+ dds_data_out[15 :15 ] <= dds_data_int[15 ] ^ dds_format;
81
+ dds_data_out[14 : 0 ] <= dds_data_int[14 :0 ];
82
+ end
83
+
84
+ always @(posedge clk) begin
85
+ dds_scale_0_d <= dds_scale_0;
86
+ dds_scale_1_d <= dds_scale_1;
87
+ end
88
+
89
+ // dds-1
90
+
91
+ ad_dds_1 #(
92
+ .CORDIC_DW(CORDIC_DW),
93
+ .DDS_TYPE(DDS_TYPE))
94
+ i_dds_1_0 (
95
+ .clk (clk),
96
+ .angle (dds_phase_0),
97
+ .scale (dds_scale_0_d),
98
+ .dds_data (dds_data_0_s));
99
+
100
+ // dds-2
101
+
102
+ ad_dds_1 #(
103
+ .CORDIC_DW(CORDIC_DW),
104
+ .DDS_TYPE(DDS_TYPE))
105
+ i_dds_1_1 (
106
+ .clk (clk),
107
+ .angle (dds_phase_1),
108
+ .scale (dds_scale_1_d),
109
+ .dds_data (dds_data_1_s));
110
+ end
111
+ endgenerate
97
112
98
113
endmodule
99
114
0 commit comments