📄 send_to_dsp.v
字号:
module send_to_dsp(cs,dsp_clk,rst,ad_in_lz,ad_in_zx,ad_in_hx,code_in1,code_in2,pwm_cout,data_out);
input cs;
input dsp_clk;
input rst;
input[23:0] ad_in_lz;
input[23:0] ad_in_zx;
input[23:0] ad_in_hx;
input[31:0] code_in1;
input[31:0] code_in2;
input[31:0] pwm_cout;
output[7:0] data_out;
reg[7:0] data_out;
reg[4:0] now_st;
reg[4:0] next_st;
parameter D1=5'b00000;
parameter D2=5'b00001;
parameter D3=5'b00010;
parameter D4=5'b00011;
parameter D5=5'b00100;
parameter D6=5'b00101;
parameter D7=5'b00110;
parameter D8=5'b00111;
parameter D9=5'b01000;
parameter D10=5'b01001;
parameter D11=5'b01010;
parameter D12=5'b01011;
parameter D13=5'b01100;
parameter D14=5'b01101;
parameter D15=5'b01110;
parameter D16=5'b01111;
parameter D17=5'b10000;
parameter D18=5'b10001;
parameter D19=5'b10010;
parameter D20=5'b10011;
parameter D21=5'b10100;
always @(posedge dsp_clk or negedge rst)
begin
if(!rst)
now_st<=5'b0;
else
now_st<=next_st;
end
always @(cs or now_st)
begin
case(now_st)
D1:if(cs==1'b0)
next_st<=D2;
else
next_st<=D1;
D2:next_st<=D3;
D3:next_st<=D4;
D4:next_st<=D5;
D5:next_st<=D6;
D6:next_st<=D7;
D7:next_st<=D8;
D8:next_st<=D9;
D9:next_st<=D10;
D10:next_st<=D11;
D11:next_st<=D12;
D12:next_st<=D13;
D13:next_st<=D14;
D14:next_st<=D15;
D15:next_st<=D16;
D16:next_st<=D17;
D17:next_st<=D18;
D18:next_st<=D19;
D19:next_st<=D20;
D20:next_st<=D21;
D21:next_st<=D1;
default:next_st<=D1;
endcase
end
always @(posedge dsp_clk or negedge rst)
begin
if(!rst)
data_out<=8'b0;
else if(cs==1'b0)
case(now_st)
D1:data_out<=ad_in_hx[23:16];
D2:data_out<=ad_in_hx[15:8];
D3:data_out<=ad_in_hx[7:0];
D4:data_out<=ad_in_zx[23:16];
D5:data_out<=ad_in_zx[15:8];
D6:data_out<=ad_in_zx[7:0];
D7:data_out<=ad_in_lz[23:16];
D8:data_out<=ad_in_lz[15:8];
D9:data_out<=ad_in_lz[7:0];
D10:data_out<=code_in1[31:24];
D11:data_out<=code_in1[23:16];
D12:data_out<=code_in1[15:8];
D13:data_out<=code_in1[7:0];
D14:data_out<=code_in2[31:24];
D15:data_out<=code_in2[23:16];
D16:data_out<=code_in2[15:8];
D17:data_out<=code_in2[7:0];
D18:data_out<=pwm_cout[31:24];
D19:data_out<=pwm_cout[23:16];
D20:data_out<=pwm_cout[15:8];
D21:data_out<=pwm_cout[7:0];
default:data_out<=8'b0;
endcase
else
data_out<=8'b0;
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -