⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_cpld_to_dsp.v

📁 基于ATEREAL EPM1270T144C5N CPLD 压力传感器数据采集源码 开发软件 Quartus II
💻 V
字号:
module test_cpld_to_dsp(cs,dsp_clk,rst,ad_in_hx,ad_in_lz,code11_in,code22_in,ad_in_zx,data_out,test_dd,position,limit_da);
input       cs;
input       dsp_clk;
input       rst;
input[24:0] ad_in_hx;
input[23:0] ad_in_zx;
input[23:0] ad_in_lz;
input[31:0] position;
input[31:0] code11_in;
input[31:0] code22_in;
input[7:0]  limit_da;
output[7:0] data_out;
output      test_dd;
reg         test_dd;
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;
parameter   D22=5'b10101;

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<=D22;
     D22: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<=position[31:24];
      D5:data_out<=position[23:16];
      D6:data_out<=position[15:8];
      D7:data_out<=position[7:0];
      D8:data_out<=ad_in_zx[23:16];
      D9:data_out<=ad_in_zx[15:8];
      D10:data_out<=ad_in_zx[7:0];
      D11:data_out<=code11_in[31:24];
      D12:data_out<=code11_in[23:16];
      D13:data_out<=code11_in[15:8];
      D14:data_out<=code11_in[7:0];
      D15:data_out<=code22_in[31:24];
      D16:data_out<=code22_in[23:16];
      D17:data_out<=code22_in[15:8];
      D18:data_out<=code22_in[7:0];
      D19:data_out<=limit_da;
      D20:data_out<=ad_in_lz[23:16];
      D21:data_out<=ad_in_lz[15:8];
      D22:data_out<=ad_in_lz[7:0];
  default:data_out<=8'b0;
 endcase 
else
  data_out<=8'b0;
end

always @(ad_in_hx[24])
begin
test_dd<=ad_in_hx[24];
end

//always @(position[32])
//begin
//test_dr<=position[32];
//end

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -