起因是想将蜂鸟E203的 sirv_flash_qspi_top模块 的icb接口改成axi接口,去套用到别的axi接口的核上去读写flash,因此写了一个axi2icb的桥接模块。为了验证axi2icb的桥接模块是否正确,我又写一个flash_icb2axi模块,将蜂鸟E203对flash的操作由icb总线,转为axi总线。大致的改动如下:
因为sirv_flash_qspi_top模块分为qspi0_icb_cmd写和qspi0_ro_icb_cmd读两套总线,所以我例化了两套flash_icb2axi和axi2icb模块,上图只展示了一套。目前的问题是flash可以读,可以看到从串口打印的信息:
但用NucleiStudio烧写程序会出现:
并且使用flash和LIM两种下载方式形式都不行。网上的资料都说是因为把错误的C程序烧写进了flash里,每次上电复位MCU都卡在这个程序里,导致新的程序烧写不进去。但目前flash里面的程序是我用之前跑通过的核烧进去的hello world的代码,应该是正确的c程序,并且我也将dut_io_pads_bootrom_n_i_ival设为了低电平,程序会从ram启动。
板子的布线如图:
恳求指点