欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
DDS的AM調幅信號實現 語言為verilog
[打印本頁]
作者:
supercodeman
時間:
2018-7-6 15:20
標題:
DDS的AM調幅信號實現 語言為verilog
詳情見附件,所用語言為verilog。
源碼
module AM_Sine
(
input clk,
input [15:0]Usine_1k,
input [15:0]Sine_Range,
input [15:0] M, //調制度0.1~1,設為0~65536,最后除以65536 用位移來操作2^16次方
output [15:0]AM_OUT,
output [15:0]AM_Tiaozhi,
output [15:0]Reg_Zai
);
wire [15:0]Sine_sign=Sine_Range+16'h8000;//有符號數
wire [15:0]Zaibo;
reg [2:0]zero=0;
//assign Zaibo[15:0]=zero[0]+Sine_Range[14:0];
assign Zaibo=Sine_Range>>1;
reg [15:0]Reg_Zaibo=0;
always @(clk)
begin
if(Sine_Range[15])begin
Reg_Zaibo=Zaibo;
end
else begin
Reg_Zaibo=32768-Zaibo; //最高位為0時是正數
end
end
assign Reg_Zai=Reg_Zaibo;
wire [15:0]Sine_1k;
assign Sine_1k=Usine_1k>>1;
wire [31:0]Ma_Tiaozhi;
wire [15:0]TiaoZhi;
wire [15:0]M_1=65535-M;
wire [15:0]constant=32768;
wire [31:0]result1;
wire [31:0]result2;
wire [31:0]RMa_Tiaozhi;
assign Ma_Tiaozhi=result1+result2;
assign RMa_Tiaozhi=Ma_Tiaozhi>>16;
//assign TiaoZhi[15:0]=RMa_Tiaozhi[15:0];
assign TiaoZhi[15:0]=Ma_Tiaozhi[31:16];//加一個偏移
assign AM_Tiaozhi=TiaoZhi;
wire [31:0]AM_OUT32;
wire [31:0]AM_OUT16;
assign AM_OUT16=AM_OUT32>>16;
wire [15:0]UAM_OUT;
assign {UAM_OUT[15:0]}=Sine_Range[15]+AM_OUT16[14:0];
//assign {UAM_OUT[15:0]}=AM_OUT32[31:16];
//assign AM_OUT=UAM_OUT+16'h8000;
//assign AM_OUT=UAM_OUT;
//always @(clk)begin
//RMa_Tiaozhi=Ma_Tiaozhi>>16;
//end
Mult16_16_clk Mult1 (
.clock ( clk),
.dataa ( Usine_1k), //Usine_1k--->Sine_1k
.datab ( M),
.result ( result1 )
);
Mult16_16_clk Mult2 (
.clock ( clk ),
.dataa ( constant),
.datab ( M_1 ),
.result ( result12)
);
Mult16_16_clk Mult3 (
.clock ( clk ),
.dataa ( Reg_Zaibo), //Zaibo->Reg_Zaibo
.datab ( TiaoZhi),//Tiaozhi->Usine_1k
.result ( AM_OUT32)
);
Mult_Sign Mult4 (
.clock ( clk ),
.dataa ( test ),
.datab ( Sine_sign ),
.result ( result_sig )
);
wire [16:0]Tiaozhi_17=RMa_Tiaozhi[16:0];
//assign Tiaozhi_17=RMa_Tiaozhi[;
wire [32:0]result_sig;
wire [32:0]result_sign;
assign result_sign=result_sig-33'h100000000;
assign {AM_OUT[15:0]}=result_sign[32:17];
wire [31:0]tiao=((Usine_1k*M)+(16'h8000*M_1))>>16;
wire [16:0]test=tiao[16:0];
endmodule
復制代碼
AM_Sine.rar
2018-7-6 15:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
927 Bytes, 下載次數: 22, 下載積分: 黑幣 -5
產生調幅信號
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1