📄 sin_2.txt
字号:
module w3(clk,dout);
input clk;
output[11:0] dout;
reg fp_cp,sin_cp,a;
reg[4:0] sin_st,fp;
reg[7:0] dxl;
reg[8:0] f,f_;
reg[11:0] d,dout;
reg[16:0] dd;
//assign dout=d;
always @(posedge clk) //25分频
begin
fp=(fp!=24)?fp+1:0;
fp_cp=(fp==24)?1:0;
end
always @(posedge fp_cp)
begin
f_=f+1;
if(f_>499) begin f=f_-500;sin_cp=1;end //500分频
else begin f=f_;sin_cp=0;end
dd=f*dxl;
dout=a?d-dd[16:8]:d+dd[16:8];
end
always @(posedge sin_cp)
begin
sin_st=sin_st+1;
case(sin_st)
0:begin d=2000;dxl=200;a=0;end
1:begin d=2390;dxl=192;a=0;end
2:begin d=2765;dxl=178;a=0;end
3:begin d=3111;dxl=155;a=0;end
4:begin d=3414;dxl=127;a=0;end
5:begin d=3663;dxl= 94;a=0;end
6:begin d=3848;dxl= 59;a=0;end
7:begin d=3962;dxl= 20;a=0;end
8:begin d=4000;dxl= 20;a=1;end
9:begin d=3962;dxl= 59;a=1;end
10:begin d=3848;dxl= 94;a=1;end
11:begin d=3663;dxl=127;a=1;end
12:begin d=3414;dxl=155;a=1;end
13:begin d=3111;dxl=178;a=1;end
14:begin d=2765;dxl=192;a=1;end
15:begin d=2390;dxl=200;a=1;end
16:begin d=2000;dxl=200;a=1;end
17:begin d=1610;dxl=192;a=1;end
18:begin d=1235;dxl=178;a=1;end
19:begin d= 889;dxl=155;a=1;end
20:begin d= 586;dxl=127;a=1;end
21:begin d= 337;dxl= 94;a=1;end
22:begin d= 152;dxl= 59;a=1;end
23:begin d= 38;dxl= 20;a=1;end
24:begin d= 0;dxl= 20;a=0;end
25:begin d= 38;dxl= 59;a=0;end
26:begin d= 152;dxl= 94;a=0;end
27:begin d= 337;dxl=127;a=0;end
28:begin d= 586;dxl=155;a=0;end
29:begin d= 889;dxl=178;a=0;end
30:begin d=1235;dxl=192;a=0;end
31:begin d=1610;dxl=200;a=0;end
endcase
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -