📄 gpsnavidatagen_4ch.v
字号:
begin if (Sat1_status == IDLE) Sat1_status <= Sat1_nextstatus; else if (NB1) Sat1_status <= Sat1_nextstatus; if (Sat2_status == IDLE) Sat2_status <= Sat2_nextstatus; else if (NB2) Sat2_status <= Sat2_nextstatus; if (Sat3_status == IDLE) Sat3_status <= Sat3_nextstatus; else if (NB3) Sat3_status <= Sat3_nextstatus; if (Sat4_status == IDLE) Sat4_status <= Sat4_nextstatus; else if (NB4) Sat4_status <= Sat4_nextstatus; end// Statuse Mechine; Satellite 1always @ (Sat1_status or Sat1_NavBit_Cnt or Sat1_Word_Cnt) begin case (Sat1_status) IDLE: Sat1_nextstatus <= TLMWORD; TLMWORD: if (Sat1_NavBit_Cnt<23) Sat1_nextstatus <= TLMWORD; else Sat1_nextstatus <= PARITY; PARITY: if (Sat1_NavBit_Cnt == 29) begin Sat1_nextstatus <= IDLE; if (Sat1_Word_Cnt == 9) Sat1_nextstatus <= TLMWORD; if (Sat1_Word_Cnt == 0) Sat1_nextstatus <= HOWWORD; if ((Sat1_Word_Cnt>0)&&(Sat1_Word_Cnt<9)) Sat1_nextstatus <= NAVIDATAWORD; end else Sat1_nextstatus <= PARITY; HOWWORD: if (Sat1_NavBit_Cnt<23) Sat1_nextstatus <= HOWWORD; else Sat1_nextstatus <= PARITY; NAVIDATAWORD: if (Sat1_NavBit_Cnt<23) Sat1_nextstatus <= NAVIDATAWORD; else Sat1_nextstatus <= PARITY; default: Sat1_nextstatus <= IDLE; endcase end// Statuse Mechine; Satellite 2always @ (Sat2_status or Sat2_NavBit_Cnt or Sat2_Word_Cnt) begin case (Sat2_status) IDLE: Sat2_nextstatus <= TLMWORD; TLMWORD: if (Sat2_NavBit_Cnt<23) Sat2_nextstatus <= TLMWORD; else Sat2_nextstatus <= PARITY; PARITY: if (Sat2_NavBit_Cnt == 29) begin Sat2_nextstatus <= IDLE; if (Sat2_Word_Cnt == 9) Sat2_nextstatus <= TLMWORD; if (Sat2_Word_Cnt == 0) Sat2_nextstatus <= HOWWORD; if ((Sat2_Word_Cnt>0)&&(Sat2_Word_Cnt<9)) Sat2_nextstatus <= NAVIDATAWORD; end else Sat2_nextstatus <= PARITY; HOWWORD: if (Sat2_NavBit_Cnt<23) Sat2_nextstatus <= HOWWORD; else Sat2_nextstatus <= PARITY; NAVIDATAWORD: if (Sat2_NavBit_Cnt<23) Sat2_nextstatus <= NAVIDATAWORD; else Sat2_nextstatus <= PARITY; default: Sat2_nextstatus <= IDLE; endcase end// Statuse Mechine; Satellite 3always @ (Sat3_status or Sat3_NavBit_Cnt or Sat3_Word_Cnt) begin case (Sat3_status) IDLE: Sat3_nextstatus <= TLMWORD; TLMWORD: if (Sat3_NavBit_Cnt<23) Sat3_nextstatus <= TLMWORD; else Sat3_nextstatus <= PARITY; PARITY: if (Sat3_NavBit_Cnt == 29) begin Sat3_nextstatus <= IDLE; if (Sat3_Word_Cnt == 9) Sat3_nextstatus <= TLMWORD; if (Sat3_Word_Cnt == 0) Sat3_nextstatus <= HOWWORD; if ((Sat3_Word_Cnt>0)&&(Sat3_Word_Cnt<9)) Sat3_nextstatus <= NAVIDATAWORD; end else Sat3_nextstatus <= PARITY; HOWWORD: if (Sat3_NavBit_Cnt<23) Sat3_nextstatus <= HOWWORD; else Sat3_nextstatus <= PARITY; NAVIDATAWORD: if (Sat3_NavBit_Cnt<23) Sat3_nextstatus <= NAVIDATAWORD; else Sat3_nextstatus <= PARITY; default: Sat3_nextstatus <= IDLE; endcase end// Statuse Mechine; Satellite 4always @ (Sat4_status or Sat4_NavBit_Cnt or Sat4_Word_Cnt) begin case (Sat4_status) IDLE: Sat4_nextstatus <= TLMWORD; TLMWORD: if (Sat4_NavBit_Cnt<23) Sat4_nextstatus <= TLMWORD; else Sat4_nextstatus <= PARITY; PARITY: if (Sat4_NavBit_Cnt == 29) begin Sat4_nextstatus <= IDLE; if (Sat4_Word_Cnt == 9) Sat4_nextstatus <= TLMWORD; if (Sat4_Word_Cnt == 0) Sat4_nextstatus <= HOWWORD; if ((Sat4_Word_Cnt>0)&&(Sat4_Word_Cnt<9)) Sat4_nextstatus <= NAVIDATAWORD; end else Sat4_nextstatus <= PARITY; HOWWORD: if (Sat4_NavBit_Cnt<23) Sat4_nextstatus <= HOWWORD; else Sat4_nextstatus <= PARITY; NAVIDATAWORD: if (Sat4_NavBit_Cnt<23) Sat4_nextstatus <= NAVIDATAWORD; else Sat4_nextstatus <= PARITY; default: Sat4_nextstatus <= IDLE; endcase end// Generate the navigation data for satellite 1always @(posedge in_clk or negedge in_Resetn) begin if (!in_Resetn) NaviData1 <= 1; else case (Sat1_status) TLMWORD: case (Sat1_NavBit_Cnt) 0, 4, 6, 7: NaviData1 <=1; 1, 2, 3, 5: NaviData1 <=0; default: if(NB1) NaviData1 <= ~NaviData1; //NaviData1 <= 0; endcase PARITY: case (Sat1_NavBit_Cnt) 24: NaviData1 <= Sat1_PrtW[0]; 25: NaviData1 <= Sat1_PrtW[1]; 26: NaviData1 <= Sat1_PrtW[2]; 27: NaviData1 <= Sat1_PrtW[3]; 28: begin if (Sat1_Word_Cnt == 9) NaviData1 <= 0; else NaviData1 <= Sat1_PrtW[4]; end 29: begin if (Sat1_Word_Cnt == 9) NaviData1 <= 0; else NaviData1 <= Sat1_PrtW[5]; end endcase HOWWORD:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -