module audio_2_iq(clk,pulse44,pulse88,audio_data,i,q); input clk; input pulse44; input pulse88; input [15:0] audio_data; output [15:0] i; output [15:0] q; reg [9:0] cnt; reg [15:0] latch_audio_data; reg signed[15:0] i; reg signed[15:0] q; always@(posedge clk)begin if(cnt==99 && pulse44==1) cnt <= 0; else if(pulse44==1) cnt <= cnt + 1'b1; else cnt <= cnt; end always@(posedge clk)begin if(pulse44==1) latch_audio_data <= audio_data; else latch_audio_data <= latch_audio_data; end always@(posedge clk)begin if(pulse44==1 && cnt==99) i <= 32766; else if(pulse88==1 && cnt==99) i <= 0; else if(pulse44==1) i <= 16384-latch_audio_data[3:0]*2048; else if(pulse88==1) i <= 16384-latch_audio_data[7:4]*2048; else i <= i; end always@(posedge clk)begin if(pulse44==1 && cnt==99) q <= 0; else if(pulse88==1 && cnt==99) q <= 0; else if(pulse44==1) q <= 16384-latch_audio_data[11:8]*2048; else if(pulse88==1) q <= 16384-latch_audio_data[15:12]*2048; else q <= q; end endmodule