大块头

    1. 谢谢!
    2. 我想观察里面的state寄存器,但是综合完了在chipscope里面只能找到这些,请问应该看哪个: mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd1        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd1        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd2        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd2        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd5        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd5        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd6        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd6        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd8        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd8        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd9        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd9        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd10        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd10        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd14        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd14        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd15        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd15        FDC        FDC mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16        FDP        FDP mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd1-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd1-In1        LUT3        LUT3 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd2-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd2-In        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In34        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In58        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd5-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd5-In1        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd6-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd6-In1        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In23        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd8-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd8-In1        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd9-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd9-In1        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd10-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd10-In55        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In34        LUT3        LUT3 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In43        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In80        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd14-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd14-In        MUXF5        MUXF5 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd15-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd15-In1        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In47        LUT3        LUT3 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In6        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In6        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In16        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In16        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In27        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In27        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In3        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In8        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In19        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In19_f5        MUXF5        MUXF5 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In34        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In34        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In191        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd12-In191        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In25        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In25        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In28        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In28        LUT3        LUT3 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In43        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In43        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In58        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In58        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In313        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In313        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In331        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd13-In331        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In22        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In22        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In36        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd16-In36        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In4        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In4        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In21        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd3-In21        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In7        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In7        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In16        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In16        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In38        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd4-In38        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In6        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In6        LUT3        LUT3 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In13        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd7-In13        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_N6        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd11-In21        LUT4        LUT4 mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_N25        mvdriface/XMINI_MVDRIFACE/ispi/u_spi_sm/state_FSM_FFd10-In210        LUT3        LUT3
    3. 我的代码: //main state machine always @(state or issue_cmd or command or cmd_type or send_byte_done or latch_byte_done or sram_addr_inc1 or spi_n_pulse or spi_p_pulse or wait_cs_done or wait_cs_start or sync_sram_wr or program_end or new_data or out_reg or data_to_spi or addr) begin         spiclk_en = 1;         toggle_cs = 0;         update_outreg = 0;         out_en = 0;         latch_data = 0;         ready=0;         fake_ready = 0;         clear_pe = 0;         data_out = out_reg;         next_state = state;         case(state)                 INIT:                 begin                         if(issue_cmd)                         begin                                 toggle_cs = 1;                                 //spiclk_en = 1;                                 spiclk_en = 0;                                 next_state = TGL_CS;                         end                         else if(~sync_sram_wr)                         begin                                 fake_ready = 1;                         end                         //spiclk_en = 1;                         spiclk_en = 0;                 end                 TGL_CS:                 begin                         if(spi_n_pulse)                         begin                                 data_out = command;                                 update_outreg = 1;                                 next_state = S_CMD;                         end                         else                                 //spiclk_en = 1;                                 spiclk_en = 0;                 end                 S_CMD:                 begin                         if(send_byte_done & spi_p_pulse & (cmd_type == CMD_ONLY))                         begin                                 next_state = EXT_CS;                         end                         else if(send_byte_done & spi_n_pulse)                         begin                                 if((cmd_type == CMD_RDAT)||(cmd_type == FULL_MANUAL_R))                                 begin                                         next_state = SWITCH_POS;                                 end                                 else if((cmd_type == FULL_MANUAL_W)||(cmd_type == CMD_SDAT))                                 begin                                         data_out = data_to_spi[7:0];                                         update_outreg = 1;                                         out_en = 1;                                         next_state = S_DA4;                                 end                                 else                                 begin                                         data_out = addr[23:16];                                         update_outreg = 1;                                         out_en = 1;                                         next_state = S_AD1;                                 end                         end                         else                         begin                                 out_en = 1;                                 next_state = S_CMD;                         end                 end                 S_AD1:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 data_out = addr[15:8];                                 update_outreg = 1;                                 out_en = 1;                                 next_state = S_AD2;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_AD1;                         end                 end                 S_AD2:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 data_out = addr[7:0];                                 update_outreg = 1;                                 out_en = 1;                                 next_state = S_AD3;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_AD2;                         end                 end                 S_AD3:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 if(cmd_type == CMD_PRG)                                 begin                                         data_out = data_to_spi[31:24];                                         update_outreg = 1;                                         out_en = 1;                                         next_state = S_DA1;                                 end                                 else                                 begin                                         next_state = SWITCH_POS;                                 end                         end                         else                         begin                                 out_en = 1;                                 next_state = S_AD3;                         end                 end                 S_DA1:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 data_out = data_to_spi[23:16];                                 update_outreg = 1;                                 out_en = 1;                                 next_state = S_DA2;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_DA1;                         end                 end                 S_DA2:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 data_out = data_to_spi[15:8];                                 update_outreg = 1;                                 out_en = 1;                                 next_state = S_DA3;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_DA2;                         end                 end                 S_DA3:                 begin                         if(send_byte_done & spi_n_pulse)                         begin                                 data_out = data_to_spi[7:0];                                 update_outreg = 1;                                 out_en = 1;                                 next_state = S_DA4;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_DA3;                         end                 end                 S_DA4:                 begin                         if(send_byte_done & spi_p_pulse)                         begin                                 if(cmd_type == CMD_SDAT)                                 begin                                         next_state = EXT_CS;                                 end                                 else                                         next_state = HALT_CLK;                         end                         else                         begin                                 out_en = 1;                                 next_state = S_DA4;                         end                 end                 SWITCH_POS:                 begin                         if(spi_p_pulse)                         begin                                 if((cmd_type == CMD_RDAT)||(cmd_type == FULL_MANUAL_R))                                 begin                                         latch_data = 1;                                         next_state = L_DAT;                                 end                                 else                                 begin                                         latch_data = 1;                                         next_state = DUMMY;                                 end                         end                 end                 DUMMY:                 begin                         if(latch_byte_done & spi_p_pulse)                         begin                                 latch_data = 1;                                 next_state = L_DAT;                         end                         else                         begin                                 latch_data = 1;                                 next_state = DUMMY;                         end                 end                 L_DAT:                 begin                         if(latch_byte_done)                         begin                                 if((cmd_type == FAST_READ) & spi_p_pulse)                                 begin                                         ready=1;                                         latch_data = 1;                                         next_state = CONT_LDAT;                                 end                                 else if((cmd_type == FULL_MANUAL_R) & spi_n_pulse)                                 begin                                         ready = 1;                                         next_state = HALT_CLK;                                 end                                 else if(spi_p_pulse)                                 begin                                         ready=1;                                         next_state = EXT_CS;                                 end                                 else                                 begin                                         latch_data = 1;                                         next_state = L_DAT;                                 end                         end                         else                         begin                                 latch_data = 1;                                 next_state = L_DAT;                         end                 end                 CONT_LDAT:                 begin                         if(sram_addr_inc1)                         begin                                 latch_data = 1;                                 next_state = L_DAT;                         end                         else                         begin                                 toggle_cs = 1;                                 //spiclk_en = 1;                                 spiclk_en = 0;                                 next_state = EXT_CS;                         end                 end                 EXT_CS:                 begin                         if(wait_cs_start & ((cmd_type == CMD_RDAT)|(cmd_type == CMD_SDAT)|(cmd_type == CMD_ONLY)))                                 toggle_cs = 1;                         else if(wait_cs_done)                         begin                                 next_state = INIT;                         end                         if(~sync_sram_wr)                                 fake_ready = 1;                         //spiclk_en = 1;                         spiclk_en = 0;                 end                 HALT_CLK:                 begin                         //spiclk_en = 1;                         spiclk_en = 0;                         if(program_end)                         begin                                 clear_pe = 1;                                 toggle_cs = 1;                                 next_state = EXT_CS;                         end                         else                         begin                                 if(new_data & spi_n_pulse & (cmd_type == CMD_PRG))                                 begin                                         spiclk_en = 1;                                         data_out = data_to_spi[31:24];                                         update_outreg = 1;                                         next_state = S_DA1;                                 end                                 if(new_data & spi_n_pulse & (cmd_type == FULL_MANUAL_W))                                 begin                                         spiclk_en = 1;                                         data_out = data_to_spi[7:0];                                         update_outreg = 1;                                         next_state = S_DA4;                                 end                                 if(new_data & spi_p_pulse & (cmd_type == FULL_MANUAL_R))                                 begin                                         next_state = SWITCH_POS;                                 end                         end                 end                 default:                 begin                         next_state = 'bx;                 end         endcase end //state machine

最近访客

< 1/1 >

统计信息

已有60人来访过

  • 芯积分:--
  • 好友:--
  • 主题:3
  • 回复:3

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言