|
就这个破程序调了两天了,一点没发现错误在哪,调用了3次DDS IP Core,4次乘法器IP Core,还有一个自己写的乘法器,编译能够通过,modelsim库文件也已经加载,但用modelsim仿真时,dds产生的信号一直全是高阻...请各位大侠帮忙看看问题出在哪,谢谢!
module result_derive(clk,data_tone,data_wc,data_sita,da1_sampling,da2_sampling,result,we,a
);
input clk,we,a;
input [11:0] da1_sampling;
input [11:0] da2_sampling;
input [26:0] data_tone;
input [26:0] data_wc;
input [26:0] data_sita;
output [48:0] result;
wire [48:0] result_buf;
wire [11:0] Va_tone;
wire [11:0] cos_wc;
wire [11:0] cos_sita;
wire [11:0] sin_sita;
wire [23:0] i_sita_sample;
wire [23:0] i_sita_sample_buf;
wire [23:0] q_sita_sample;
wire [23:0] q_sita_sample_buf;
wire [24:0] i_q_sum;
wire [24:0] i_q_sum_buf;
wire [23:0] tone_wc_mul;
wire [23:0] tone_wc_mul_buf;
assign i_sita_sample = i_sita_sample_buf;
assign q_sita_sample = q_sita_sample_buf;
assign i_q_sum = i_q_sum_buf;
assign tone_wc_mul = tone_wc_mul_buf;
assign result = result_buf;
mydds dds_tone (
.DATA(data_tone),
.WE(we),
.A(a),
.CLK(clk),
.SINE(),
.COSINE(Va_tone)
);
mydds dds_wc(
.DATA(data_wc),
.WE(we),
.A(a),
.CLK(clk),
.SINE(),
.COSINE(cos_wc)
);
mydds dds_sita(
.DATA(data_sita),
.WE(we),
.A(a),
.CLK(clk),
.SINE(sin_sita),
.COSINE(cos_sita)
);
mul mul1(
.clk(clk),
.a(sin_sita),
.b(da1_sampling),
.p(i_sita_sample_buf)
);
mul mul2(
.clk(clk),
.a(cos_sita),
.b(da2_sampling),
.p(q_sita_sample_buf)
);
mul mul3(
.clk(clk),
.a(Va_tone),
.b(cos_wc),
.p(tone_wc_mul_buf)
);
add add(
.clk(clk),
.add_a(i_sita_sample),
.add_b(q_sita_sample),
.sum(i_q_sum_buf)
);
mul mul4(
.clk(clk),
.a(tone_wc_mul),
.b(i_q_sum),
.p(result_buf)
);
endmodule
以上为具体代码。加法器乘法器还有DDS就不用往上贴了,应该也都对,我检查了好多遍了。
我以前做过一次实验,如下所示,也都能通过,modelsim仿能得到结果:
module ddstest(data,
data_tone,
data_tone1,
data_tone2,
we,a,
clk,
cosine,
cosine_tone,
cosine_tone1,
cosine_tone2
);
input [29 : 0] data;
input [29 : 0] data_tone;
input [29 : 0] data_tone1;
input [29 : 0] data_tone2;
input we;
input [4 : 0] a;
input clk;
output [13 : 0] cosine;
output [13 : 0] cosine_tone;
output [13 : 0] cosine_tone1;
output [13 : 0] cosine_tone2;
mydds ddsmy(
.DATA(data),
.WE(we),
.A(a),
.CLK(clk),
.COSINE(cosine)
);
mydds ddsmy_tone(
.DATA(data_tone),
.WE(we),
.A(a),
.CLK(clk),
.COSINE(cosine_tone)
);
mydds ddsmy_tone1(
.DATA(data_tone1),
.WE(we),
.A(a),
.CLK(clk),
.COSINE(cosine_tone1)
);
mydds ddsmy_tone2(
.DATA(data_tone2),
.WE(we),
.A(a),
.CLK(clk),
.COSINE(cosine_tone2)
);
//assign final_result = final_cosine + final_cosine;
endmodule
请各位比较一下,看问题是出错在哪 谢谢谢谢!!!! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|