写了个AM调制的代码,载波和调制波都做了幅度控制(搞复杂了)
记录1:
说明:carrier_wave2为 wire signed [9:0] modulate_wave2;
modulate_wave2为wire signed [9:0] modulate_wave2;
wave2_out也是有符号的wire signed [19:0] wave2_out;
这条语句
assign wave2_out=carrier_wave2*(modulate_wave2+256); //好用
换成:
wire [15:0] mod_halfamp3=256;
assign wave2_out=carrier_wave2*(modulate_wave2+mod_halfamp3);
这个写法就输出波形不对!
后来修正一下mod_halfamp3为signed就可以了 ,即:wire signed [15:0] mod_halfamp3=256;
看来quartus ii 默认做的是有符号数的运算,原因有待进一步测试。
记录2:
wire signed [9:0] carrier_wave0;
wire [9:0] modulate_wave0;
wire signed [19:0] wave0_out;
语句assign wave0_out=carrier_wave0*$signed(modulate_wave0);好用
波形为正弦波
换成assign wave0_out=carrier_wave0*modulate_wave0;
波形就变为nunununununu形状的那种
我是真的真的不明白~~~