最近在做的东西,需要把HPS端的SPI、I2C、GPIO等等讯号传到FPGA,从FPGA的IO送出
看了一些官方文件试着做,SPI、I2C等 都正常没有问题,但就唯独GPIO怎么弄FPGA就是没反应
GPIO部分我主要是参考这篇文章
http://wenku.baidu.com/view/5e4004b34028915f804dc2e9?fr=prin
我是希望由HPS控制GPIO62,并把讯号引去FPGA做output
先在QSYS把要使用的GPIO改为LOANIO,接着将讯号EXPORT出来
接着回到TOP层照着文件做以下设定
//宣告inout脚位
inout wire hps_io_LOANIO62,
// 让该IO为 Output
wire [66:0] LOAN_oe;
wire [66:0] LOAN_in;
wire [66:0] LOAN_out;
assign LOAN_oe[62] = 1;
//将讯号引到FPGA
assign FPGA_GPIO= LOAN_out[62];
//和HPS连接的部分
soc_system u0 (
.hps_0_h2f_loan_io_in (LOAN_in),
.hps_0_h2f_loan_io_out (LOAN_out),
.hps_0_h2f_loan_io_oe (LOAN_oe),
.hps_0_hps_io_hps_io_gpio_inst_LOANIO62 (hps_io_LOANIO62),
完成后,重产生preloader,放入后板子,再烧SOF,进Linux,
使用Echo来改变GPIO62的值,却发现value改不动了(QSYS不使用LOANIO,而用GPIO是可以的)
当然FPGA_GPIO这边的值也没有变化。
想请各位有用过这个功能人,上面这样的流程哪边有错误呢?
我是知道要达成上面的功能使用PIO、avalon bus等方式都可以达成,但还是希望能用LOANIO这种最直观的方式
谢谢各位