我是做一个2fsk调制解调器,大概就是输入信号为1时,输出一个频率的波形F1。输入信号为0时,输出另一个频率的波形F2,我之前做过vhdl的verilog hdl基本不会,我思路还是沿袭vhdl 做两个分频器,然后在选择输出,选择输出我不太会请教一下吧里的大神,然后顺便想让大神们帮我看看我之前的代码有问题么
module FSK_modulator(clk,start,x,y);
input clk; //系统时钟
input start; //清零键
input x; //基带信号
output y; //通带信号
reg[1:0] q1; //分频计数器q1
reg[1:0] q2; //分频计数器q2
reg f1; //载波信号f1
reg f2; //载波信号f2
always@(posedge clk)begin //产生载波信号f1
if(start==0)
q1<=0;
else if(q1<=1)begin
f1<=1;
q1<=q1+1;
end
else if(q1==3)begin
f1<=0;
q1<=0;
end
else begin
f1=0;
q1<=q1+1
end
end
always@(posedge clk)begin //产生载波信号f2
if(start==0)
q2<=0;
else if(q2<=5)begin
f2<=1;
q2<=q2+1;
end
else if(q2==11)begin
f2<=0;
q2<=0;
end
else begin
f2=0;
q2<=q2+1;
end
End
module FSK_modulator(clk,start,x,y);
input clk; //系统时钟
input start; //清零键
input x; //基带信号
output y; //通带信号
reg[1:0] q1; //分频计数器q1
reg[1:0] q2; //分频计数器q2
reg f1; //载波信号f1
reg f2; //载波信号f2
always@(posedge clk)begin //产生载波信号f1
if(start==0)
q1<=0;
else if(q1<=1)begin
f1<=1;
q1<=q1+1;
end
else if(q1==3)begin
f1<=0;
q1<=0;
end
else begin
f1=0;
q1<=q1+1
end
end
always@(posedge clk)begin //产生载波信号f2
if(start==0)
q2<=0;
else if(q2<=5)begin
f2<=1;
q2<=q2+1;
end
else if(q2==11)begin
f2<=0;
q2<=0;
end
else begin
f2=0;
q2<=q2+1;
end
End
