基于VerilogHDL的車载DVD位控子程序.docVIP

  • 4
  • 0
  • 约1.33万字
  • 约 10页
  • 2016-11-27 发布于重庆
  • 举报
基于VerilogHDL的車载DVD位控子程序

//异常判断子程序 module ABN_DIFF(CLKIN,DATA,TIME00,ADCABCP2,ADCABCP5, VPA,VPB,VPC,VPD,HPE,HPF,HPG,HPH, MOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2, MOTOR11P5,MOTOR12P5,MOTOR21P5,MOTOR22P5, ERROR0,MOTOR11P4,MOTOR12P4,MOTOR21P4,MOTOR22P4 ); input CLKIN,VPA,VPB,VPC,VPD,HPE,HPF,HPG,HPH; input MOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2; input MOTOR11P5,MOTOR12P5,MOTOR21P5,MOTOR22P5; input [2:0] ADCABCP2,ADCABCP5; input [12:0] TIME00; input [7:0] DATA; output ERROR0; output MOTOR11P4,MOTOR12P4,MOTOR21P4,MOTOR22P4; reg MOTOR11P4,MOTOR12P4,MOTOR21P4,MOTOR22P4; reg ERROR0; reg [7:0] V_POSTION4,H_POSTION4; parameter VA=20,VB=180,VC=210,VD=240,HE=20,HF=180,HG=210,HH=240; always @(posedge CLKIN) begin if(ADCABCP2==3b000 || ADCABCP5==3b000) begin //水平位置 V_POSTION4=DATA ; if((MOTOR11P2==1 || MOTOR12P2==1 || MOTOR11P5==1 || MOTOR12P5==1) TIME00=4000 (V_POSTION4VA V_POSTION4VB)) begin ERROR0=1; //出盒或进盒过程中出错 MOTOR11P4=0; MOTOR12P4=0; end if((MOTOR11P2==1 || MOTOR12P2==1 || MOTOR11P5==1 || MOTOR12P5==1) TIME00=2666 (VPB==0 VPC==0 VPD==0)) begin ERROR0=1; //水平位置调节时出错 MOTOR11P4=0; MOTOR12P4=0; end end if(ADCABCP2==3b001 || ADCABCP5==3b001) begin H_POSTION4=DATA ; if(((MOTOR21P2==1 || MOTOR22P2==1) || (MOTOR21P5==1 || MOTOR22P5==1)) TIME00=4000 (H_POSTION4HE H_POSTION4HF)) begin ERROR0=1; //大角度翻转时出错 MOTOR21P4=0; MOTOR22P4=0; end if(((MOTOR21P2==1 || MOTOR22P2==1) || (MOTOR21P5==1 || MOTOR22P5==1)) TIME00=2666 (HPF==0 HPG==0 HPH==0)) begin ERROR0=1; //角度调节时出错 MOTOR21P4=0; MOTOR22P4=0; end end if(ERROR0==1 TIME00=4000) begin ERROR0=0; end end Endmodule //DIVIDER FREQUENCY 分频子进程 module DIV_COUNT(CLKIN,TIME_S,ADIVDER,TIME00); input CLKIN,TIME_S; output ADIVDER; output [12:0] TIME00; reg [23:0] COUNT; reg [12:0] TIME00;

文档评论(0)

1亿VIP精品文档

相关文档